From cd87d4f9d368e0e90d4809c6a87c02ef62a40636 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Wed, 8 Apr 2026 12:25:02 -0500 Subject: [PATCH 001/151] test: update webfetch test (#21398) Co-authored-by: opencode-agent[bot] --- packages/opencode/test/tool/webfetch.test.ts | 87 ++++---------------- 1 file changed, 15 insertions(+), 72 deletions(-) diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index 5233f1081..00e9dcc96 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -17,58 +17,25 @@ const ctx = { ask: async () => {}, } -type TimerID = ReturnType - -async function withFetch( - mockFetch: (input: string | URL | Request, init?: RequestInit) => Promise, - fn: () => Promise, -) { - const originalFetch = globalThis.fetch - globalThis.fetch = mockFetch as unknown as typeof fetch - try { - await fn() - } finally { - globalThis.fetch = originalFetch - } -} - -async function withTimers(fn: (state: { ids: TimerID[]; cleared: TimerID[] }) => Promise) { - const set = globalThis.setTimeout - const clear = globalThis.clearTimeout - const ids: TimerID[] = [] - const cleared: TimerID[] = [] - - globalThis.setTimeout = ((...args: Parameters) => { - const id = set(...args) - ids.push(id) - return id - }) as typeof setTimeout - - globalThis.clearTimeout = ((id?: TimerID) => { - if (id !== undefined) cleared.push(id) - return clear(id) - }) as typeof clearTimeout - - try { - await fn({ ids, cleared }) - } finally { - ids.forEach(clear) - globalThis.setTimeout = set - globalThis.clearTimeout = clear - } +async function withFetch(fetch: (req: Request) => Response | Promise, fn: (url: URL) => Promise) { + using server = Bun.serve({ port: 0, fetch }) + await fn(server.url) } describe("tool.webfetch", () => { test("returns image responses as file attachments", async () => { const bytes = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]) await withFetch( - async () => new Response(bytes, { status: 200, headers: { "content-type": "IMAGE/PNG; charset=binary" } }), - async () => { + () => new Response(bytes, { status: 200, headers: { "content-type": "IMAGE/PNG; charset=binary" } }), + async (url) => { await Instance.provide({ directory: projectRoot, fn: async () => { const webfetch = await WebFetchTool.init() - const result = await webfetch.execute({ url: "https://example.com/image.png", format: "markdown" }, ctx) + const result = await webfetch.execute( + { url: new URL("/image.png", url).toString(), format: "markdown" }, + ctx, + ) expect(result.output).toBe("Image fetched successfully") expect(result.attachments).toBeDefined() expect(result.attachments?.length).toBe(1) @@ -87,17 +54,17 @@ describe("tool.webfetch", () => { test("keeps svg as text output", async () => { const svg = 'hello' await withFetch( - async () => + () => new Response(svg, { status: 200, headers: { "content-type": "image/svg+xml; charset=UTF-8" }, }), - async () => { + async (url) => { await Instance.provide({ directory: projectRoot, fn: async () => { const webfetch = await WebFetchTool.init() - const result = await webfetch.execute({ url: "https://example.com/image.svg", format: "html" }, ctx) + const result = await webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx) expect(result.output).toContain(" { test("keeps text responses as text output", async () => { await withFetch( - async () => + () => new Response("hello from webfetch", { status: 200, headers: { "content-type": "text/plain; charset=utf-8" }, }), - async () => { + async (url) => { await Instance.provide({ directory: projectRoot, fn: async () => { const webfetch = await WebFetchTool.init() - const result = await webfetch.execute({ url: "https://example.com/file.txt", format: "text" }, ctx) + const result = await webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx) expect(result.output).toBe("hello from webfetch") expect(result.attachments).toBeUndefined() }, @@ -126,28 +93,4 @@ describe("tool.webfetch", () => { }, ) }) - - test("clears timeout when fetch rejects", async () => { - await withTimers(async ({ ids, cleared }) => { - await withFetch( - async () => { - throw new Error("boom") - }, - async () => { - await Instance.provide({ - directory: projectRoot, - fn: async () => { - const webfetch = await WebFetchTool.init() - await expect( - webfetch.execute({ url: "https://example.com/file.txt", format: "text" }, ctx), - ).rejects.toThrow("boom") - }, - }) - }, - ) - - expect(ids).toHaveLength(1) - expect(cleared).toContain(ids[0]) - }) - }) }) From 039c60170dca165ad3323c3bb39b7e448fe1c7c4 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Wed, 8 Apr 2026 12:56:15 -0500 Subject: [PATCH 002/151] fix: ensure that /providers list and shell endpoints are correctly typed in sdk and openapi schema (#21543) --- .../opencode/src/server/routes/provider.ts | 2 +- .../opencode/src/server/routes/session.ts | 2 +- packages/sdk/js/src/v2/gen/types.gen.ts | 68 +----- packages/sdk/openapi.json | 220 ++---------------- 4 files changed, 21 insertions(+), 271 deletions(-) diff --git a/packages/opencode/src/server/routes/provider.ts b/packages/opencode/src/server/routes/provider.ts index 64fe34f45..59a4a686b 100644 --- a/packages/opencode/src/server/routes/provider.ts +++ b/packages/opencode/src/server/routes/provider.ts @@ -28,7 +28,7 @@ export const ProviderRoutes = lazy(() => "application/json": { schema: resolver( z.object({ - all: ModelsDev.Provider.array(), + all: Provider.Info.array(), default: z.record(z.string(), z.string()), connected: z.array(z.string()), }), diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index c33c5e989..b4c13bca0 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -906,7 +906,7 @@ export const SessionRoutes = lazy(() => description: "Created message", content: { "application/json": { - schema: resolver(MessageV2.Assistant), + schema: resolver(MessageV2.WithParts), }, }, }, diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 0a9aa4358..e21e093c6 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -3936,7 +3936,10 @@ export type SessionShellResponses = { /** * Created message */ - 200: AssistantMessage + 200: { + info: Message + parts: Array + } } export type SessionShellResponse = SessionShellResponses[keyof SessionShellResponses] @@ -4212,68 +4215,7 @@ export type ProviderListResponses = { * List of providers */ 200: { - all: Array<{ - api?: string - name: string - env: Array - id: string - npm?: string - models: { - [key: string]: { - id: string - name: string - family?: string - release_date: string - attachment: boolean - reasoning: boolean - temperature: boolean - tool_call: boolean - interleaved?: - | true - | { - field: "reasoning_content" | "reasoning_details" - } - cost?: { - input: number - output: number - cache_read?: number - cache_write?: number - context_over_200k?: { - input: number - output: number - cache_read?: number - cache_write?: number - } - } - limit: { - context: number - input?: number - output: number - } - modalities?: { - input: Array<"text" | "audio" | "image" | "video" | "pdf"> - output: Array<"text" | "audio" | "image" | "video" | "pdf"> - } - experimental?: boolean - status?: "alpha" | "beta" | "deprecated" - options: { - [key: string]: unknown - } - headers?: { - [key: string]: string - } - provider?: { - npm?: string - api?: string - } - variants?: { - [key: string]: { - [key: string]: unknown - } - } - } - } - }> + all: Array default: { [key: string]: string } diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 207b400a7..0f3b2c397 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -4098,7 +4098,19 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AssistantMessage" + "type": "object", + "properties": { + "info": { + "$ref": "#/components/schemas/Message" + }, + "parts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Part" + } + } + }, + "required": ["info", "parts"] } } } @@ -4790,211 +4802,7 @@ "all": { "type": "array", "items": { - "type": "object", - "properties": { - "api": { - "type": "string" - }, - "name": { - "type": "string" - }, - "env": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "npm": { - "type": "string" - }, - "models": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "family": { - "type": "string" - }, - "release_date": { - "type": "string" - }, - "attachment": { - "type": "boolean" - }, - "reasoning": { - "type": "boolean" - }, - "temperature": { - "type": "boolean" - }, - "tool_call": { - "type": "boolean" - }, - "interleaved": { - "anyOf": [ - { - "type": "boolean", - "const": true - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "enum": ["reasoning_content", "reasoning_details"] - } - }, - "required": ["field"], - "additionalProperties": false - } - ] - }, - "cost": { - "type": "object", - "properties": { - "input": { - "type": "number" - }, - "output": { - "type": "number" - }, - "cache_read": { - "type": "number" - }, - "cache_write": { - "type": "number" - }, - "context_over_200k": { - "type": "object", - "properties": { - "input": { - "type": "number" - }, - "output": { - "type": "number" - }, - "cache_read": { - "type": "number" - }, - "cache_write": { - "type": "number" - } - }, - "required": ["input", "output"] - } - }, - "required": ["input", "output"] - }, - "limit": { - "type": "object", - "properties": { - "context": { - "type": "number" - }, - "input": { - "type": "number" - }, - "output": { - "type": "number" - } - }, - "required": ["context", "output"] - }, - "modalities": { - "type": "object", - "properties": { - "input": { - "type": "array", - "items": { - "type": "string", - "enum": ["text", "audio", "image", "video", "pdf"] - } - }, - "output": { - "type": "array", - "items": { - "type": "string", - "enum": ["text", "audio", "image", "video", "pdf"] - } - } - }, - "required": ["input", "output"] - }, - "experimental": { - "type": "boolean" - }, - "status": { - "type": "string", - "enum": ["alpha", "beta", "deprecated"] - }, - "options": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - }, - "headers": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "type": "string" - } - }, - "provider": { - "type": "object", - "properties": { - "npm": { - "type": "string" - }, - "api": { - "type": "string" - } - } - }, - "variants": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - } - }, - "required": [ - "id", - "name", - "release_date", - "attachment", - "reasoning", - "temperature", - "tool_call", - "limit", - "options" - ] - } - } - }, - "required": ["name", "env", "id", "models"] + "$ref": "#/components/schemas/Provider" } }, "default": { From d98be39344b8a39d16b62ce927be71a2c6a61a53 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 8 Apr 2026 13:49:04 -0500 Subject: [PATCH 003/151] fix(app): patch tool diff rendering --- .../src/components/apply-patch-file.test.ts | 43 ++++++++++ .../ui/src/components/apply-patch-file.ts | 78 +++++++++++++++++++ packages/ui/src/components/message-part.tsx | 29 +------ 3 files changed, 125 insertions(+), 25 deletions(-) create mode 100644 packages/ui/src/components/apply-patch-file.test.ts create mode 100644 packages/ui/src/components/apply-patch-file.ts diff --git a/packages/ui/src/components/apply-patch-file.test.ts b/packages/ui/src/components/apply-patch-file.test.ts new file mode 100644 index 000000000..6c5858156 --- /dev/null +++ b/packages/ui/src/components/apply-patch-file.test.ts @@ -0,0 +1,43 @@ +import { describe, expect, test } from "bun:test" +import { patchFiles } from "./apply-patch-file" +import { text } from "./session-diff" + +describe("apply patch file", () => { + test("parses patch metadata from the server", () => { + const file = patchFiles([ + { + filePath: "/tmp/a.ts", + relativePath: "a.ts", + type: "update", + patch: + "Index: a.ts\n===================================================================\n--- a.ts\t\n+++ a.ts\t\n@@ -1,2 +1,2 @@\n one\n-two\n+three\n", + additions: 1, + deletions: 1, + }, + ])[0] + + expect(file).toBeDefined() + expect(file?.view.fileDiff.name).toBe("a.ts") + expect(text(file!.view, "deletions")).toBe("one\ntwo\n") + expect(text(file!.view, "additions")).toBe("one\nthree\n") + }) + + test("keeps legacy before and after payloads working", () => { + const file = patchFiles([ + { + filePath: "/tmp/a.ts", + relativePath: "a.ts", + type: "update", + before: "one\n", + after: "two\n", + additions: 1, + deletions: 1, + }, + ])[0] + + expect(file).toBeDefined() + expect(file?.view.patch).toContain("@@ -1,1 +1,1 @@") + expect(text(file!.view, "deletions")).toBe("one\n") + expect(text(file!.view, "additions")).toBe("two\n") + }) +}) diff --git a/packages/ui/src/components/apply-patch-file.ts b/packages/ui/src/components/apply-patch-file.ts new file mode 100644 index 000000000..8e0c54082 --- /dev/null +++ b/packages/ui/src/components/apply-patch-file.ts @@ -0,0 +1,78 @@ +import { normalize, type ViewDiff } from "./session-diff" + +type Kind = "add" | "update" | "delete" | "move" + +type Raw = { + filePath?: string + relativePath?: string + type?: Kind + patch?: string + diff?: string + before?: string + after?: string + additions?: number + deletions?: number + movePath?: string +} + +export type ApplyPatchFile = { + filePath: string + relativePath: string + type: Kind + additions: number + deletions: number + movePath?: string + view: ViewDiff +} + +function kind(value: unknown) { + if (value === "add" || value === "update" || value === "delete" || value === "move") return value +} + +function status(type: Kind): "added" | "deleted" | "modified" { + if (type === "add") return "added" + if (type === "delete") return "deleted" + return "modified" +} + +export function patchFile(raw: unknown): ApplyPatchFile | undefined { + if (!raw || typeof raw !== "object") return + + const value = raw as Raw + const type = kind(value.type) + const filePath = typeof value.filePath === "string" ? value.filePath : undefined + const relativePath = typeof value.relativePath === "string" ? value.relativePath : filePath + const patch = typeof value.patch === "string" ? value.patch : typeof value.diff === "string" ? value.diff : undefined + const before = typeof value.before === "string" ? value.before : undefined + const after = typeof value.after === "string" ? value.after : undefined + + if (!type || !filePath || !relativePath) return + if (!patch && before === undefined && after === undefined) return + + const additions = typeof value.additions === "number" ? value.additions : 0 + const deletions = typeof value.deletions === "number" ? value.deletions : 0 + const movePath = typeof value.movePath === "string" ? value.movePath : undefined + + return { + filePath, + relativePath, + type, + additions, + deletions, + movePath, + view: normalize({ + file: relativePath, + patch, + before, + after, + additions, + deletions, + status: status(type), + }), + } +} + +export function patchFiles(raw: unknown) { + if (!Array.isArray(raw)) return [] + return raw.map(patchFile).filter((file): file is ApplyPatchFile => !!file) +} diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 3627eca40..02bd80ac9 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -54,6 +54,7 @@ import { Spinner } from "./spinner" import { TextShimmer } from "./text-shimmer" import { AnimatedCountList } from "./tool-count-summary" import { ToolStatusTitle } from "./tool-status-title" +import { patchFiles } from "./apply-patch-file" import { animate } from "motion" import { useLocation } from "@solidjs/router" import { attached, inline, kind } from "./message-file" @@ -2014,24 +2015,12 @@ ToolRegistry.register({ }, }) -interface ApplyPatchFile { - filePath: string - relativePath: string - type: "add" | "update" | "delete" | "move" - diff: string - before: string - after: string - additions: number - deletions: number - movePath?: string -} - ToolRegistry.register({ name: "apply_patch", render(props) { const i18n = useI18n() const fileComponent = useFileComponent() - const files = createMemo(() => (props.metadata.files ?? []) as ApplyPatchFile[]) + const files = createMemo(() => patchFiles(props.metadata.files)) const pending = createMemo(() => props.status === "pending" || props.status === "running") const single = createMemo(() => { const list = files() @@ -2137,12 +2126,7 @@ ToolRegistry.register({
- +
@@ -2212,12 +2196,7 @@ ToolRegistry.register({ } >
- +
From 689b1a4b3ab3c33aecc76b84c579b2efce444d6c Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 8 Apr 2026 14:02:23 -0500 Subject: [PATCH 004/151] fix(app): diff list normalization --- .../src/context/global-sync/event-reducer.ts | 5 +- packages/app/src/context/sync.tsx | 5 +- packages/app/src/pages/session.tsx | 17 ++--- packages/app/src/utils/diffs.test.ts | 74 +++++++++++++++++++ packages/app/src/utils/diffs.ts | 49 ++++++++++++ packages/ui/src/components/session-review.tsx | 24 +++++- 6 files changed, 159 insertions(+), 15 deletions(-) create mode 100644 packages/app/src/utils/diffs.test.ts create mode 100644 packages/app/src/utils/diffs.ts diff --git a/packages/app/src/context/global-sync/event-reducer.ts b/packages/app/src/context/global-sync/event-reducer.ts index 01248e20e..500013c1d 100644 --- a/packages/app/src/context/global-sync/event-reducer.ts +++ b/packages/app/src/context/global-sync/event-reducer.ts @@ -14,6 +14,7 @@ import type { import type { State, VcsCache } from "./types" import { trimSessions } from "./session-trim" import { dropSessionCaches } from "./session-cache" +import { diffs as list, message as clean } from "@/utils/diffs" const SKIP_PARTS = new Set(["patch", "step-start", "step-finish"]) @@ -162,7 +163,7 @@ export function applyDirectoryEvent(input: { } case "session.diff": { const props = event.properties as { sessionID: string; diff: SnapshotFileDiff[] } - input.setStore("session_diff", props.sessionID, reconcile(props.diff, { key: "file" })) + input.setStore("session_diff", props.sessionID, reconcile(list(props.diff), { key: "file" })) break } case "todo.updated": { @@ -177,7 +178,7 @@ export function applyDirectoryEvent(input: { break } case "message.updated": { - const info = (event.properties as { info: Message }).info + const info = clean((event.properties as { info: Message }).info) const messages = input.store.message[info.sessionID] if (!messages) { input.setStore("message", info.sessionID, [info]) diff --git a/packages/app/src/context/sync.tsx b/packages/app/src/context/sync.tsx index b023e8ddc..fb02a2d2d 100644 --- a/packages/app/src/context/sync.tsx +++ b/packages/app/src/context/sync.tsx @@ -13,6 +13,7 @@ import { useGlobalSync } from "./global-sync" import { useSDK } from "./sdk" import type { Message, Part } from "@opencode-ai/sdk/v2/client" import { SESSION_CACHE_LIMIT, dropSessionCaches, pickSessionCacheEvictions } from "./global-sync/session-cache" +import { diffs as list, message as clean } from "@/utils/diffs" const SKIP_PARTS = new Set(["patch", "step-start", "step-finish"]) @@ -300,7 +301,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ input.client.session.messages({ sessionID: input.sessionID, limit: input.limit, before: input.before }), ) const items = (messages.data ?? []).filter((x) => !!x?.info?.id) - const session = items.map((x) => x.info).sort((a, b) => cmp(a.id, b.id)) + const session = items.map((x) => clean(x.info)).sort((a, b) => cmp(a.id, b.id)) const part = items.map((message) => ({ id: message.info.id, part: sortParts(message.parts) })) const cursor = messages.response.headers.get("x-next-cursor") ?? undefined return { @@ -509,7 +510,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ return runInflight(inflightDiff, key, () => retry(() => client.session.diff({ sessionID })).then((diff) => { if (!tracked(directory, sessionID)) return - setStore("session_diff", sessionID, reconcile(diff.data ?? [], { key: "file" })) + setStore("session_diff", sessionID, reconcile(list(diff.data), { key: "file" })) }), ) }, diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index cf50fbe90..eb6a49411 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -58,6 +58,7 @@ import { TerminalPanel } from "@/pages/session/terminal-panel" import { useSessionCommands } from "@/pages/session/use-session-commands" import { useSessionHashScroll } from "@/pages/session/use-session-hash-scroll" import { Identifier } from "@/utils/id" +import { diffs as list } from "@/utils/diffs" import { Persist, persisted } from "@/utils/persist" import { extractPromptFromParts } from "@/utils/prompt" import { same } from "@/utils/same" @@ -430,7 +431,7 @@ export default function Page() { const info = createMemo(() => (params.id ? sync.session.get(params.id) : undefined)) const isChildSession = createMemo(() => !!info()?.parentID) - const diffs = createMemo(() => (params.id ? (sync.data.session_diff[params.id] ?? []) : [])) + const diffs = createMemo(() => (params.id ? list(sync.data.session_diff[params.id]) : [])) const sessionCount = createMemo(() => Math.max(info()?.summary?.files ?? 0, diffs().length)) const hasSessionReview = createMemo(() => sessionCount() > 0) const canReview = createMemo(() => !!sync.project) @@ -611,7 +612,7 @@ export default function Page() { .diff({ mode }) .then((result) => { if (vcsRun.get(mode) !== run) return - setVcs("diff", mode, result.data ?? []) + setVcs("diff", mode, list(result.data)) setVcs("ready", mode, true) }) .catch((error) => { @@ -649,7 +650,7 @@ export default function Page() { return open }, desktopReviewOpen()) - const turnDiffs = createMemo(() => lastUserMessage()?.summary?.diffs ?? []) + const turnDiffs = createMemo(() => list(lastUserMessage()?.summary?.diffs)) const nogit = createMemo(() => !!sync.project && sync.project.vcs !== "git") const changesOptions = createMemo(() => { const list: ChangeMode[] = [] @@ -669,15 +670,11 @@ export default function Page() { if (store.changes === "git" || store.changes === "branch") return store.changes }) const reviewDiffs = createMemo(() => { - if (store.changes === "git") return vcs.diff.git - if (store.changes === "branch") return vcs.diff.branch + if (store.changes === "git") return list(vcs.diff.git) + if (store.changes === "branch") return list(vcs.diff.branch) return turnDiffs() }) - const reviewCount = createMemo(() => { - if (store.changes === "git") return vcs.diff.git.length - if (store.changes === "branch") return vcs.diff.branch.length - return turnDiffs().length - }) + const reviewCount = createMemo(() => reviewDiffs().length) const hasReview = createMemo(() => reviewCount() > 0) const reviewReady = createMemo(() => { if (store.changes === "git") return vcs.ready.git diff --git a/packages/app/src/utils/diffs.test.ts b/packages/app/src/utils/diffs.test.ts new file mode 100644 index 000000000..5fbca469b --- /dev/null +++ b/packages/app/src/utils/diffs.test.ts @@ -0,0 +1,74 @@ +import { describe, expect, test } from "bun:test" +import type { SnapshotFileDiff } from "@opencode-ai/sdk/v2" +import type { Message } from "@opencode-ai/sdk/v2/client" +import { diffs, message } from "./diffs" + +const item = { + file: "src/app.ts", + patch: "@@ -1 +1 @@\n-old\n+new\n", + additions: 1, + deletions: 1, + status: "modified", +} satisfies SnapshotFileDiff + +describe("diffs", () => { + test("keeps valid arrays", () => { + expect(diffs([item])).toEqual([item]) + }) + + test("wraps a single diff object", () => { + expect(diffs(item)).toEqual([item]) + }) + + test("reads keyed diff objects", () => { + expect(diffs({ a: item })).toEqual([item]) + }) + + test("drops invalid entries", () => { + expect( + diffs([ + item, + { file: "src/bad.ts", additions: 1, deletions: 1 }, + { patch: item.patch, additions: 1, deletions: 1 }, + ]), + ).toEqual([item]) + }) +}) + +describe("message", () => { + test("normalizes user summaries with object diffs", () => { + const input = { + id: "msg_1", + sessionID: "ses_1", + role: "user", + time: { created: 1 }, + agent: "build", + model: { providerID: "openai", modelID: "gpt-5" }, + summary: { + title: "Edit", + diffs: { a: item }, + }, + } as unknown as Message + + expect(message(input)).toMatchObject({ + summary: { + title: "Edit", + diffs: [item], + }, + }) + }) + + test("drops invalid user summaries", () => { + const input = { + id: "msg_1", + sessionID: "ses_1", + role: "user", + time: { created: 1 }, + agent: "build", + model: { providerID: "openai", modelID: "gpt-5" }, + summary: true, + } as unknown as Message + + expect(message(input)).toMatchObject({ summary: undefined }) + }) +}) diff --git a/packages/app/src/utils/diffs.ts b/packages/app/src/utils/diffs.ts new file mode 100644 index 000000000..0cb2504fb --- /dev/null +++ b/packages/app/src/utils/diffs.ts @@ -0,0 +1,49 @@ +import type { SnapshotFileDiff, VcsFileDiff } from "@opencode-ai/sdk/v2" +import type { Message } from "@opencode-ai/sdk/v2/client" + +type Diff = SnapshotFileDiff | VcsFileDiff + +function diff(value: unknown): value is Diff { + if (!value || typeof value !== "object" || Array.isArray(value)) return false + if (!("file" in value) || typeof value.file !== "string") return false + if (!("patch" in value) || typeof value.patch !== "string") return false + if (!("additions" in value) || typeof value.additions !== "number") return false + if (!("deletions" in value) || typeof value.deletions !== "number") return false + if (!("status" in value) || value.status === undefined) return true + return value.status === "added" || value.status === "deleted" || value.status === "modified" +} + +function object(value: unknown): value is Record { + return !!value && typeof value === "object" && !Array.isArray(value) +} + +export function diffs(value: unknown): Diff[] { + if (Array.isArray(value) && value.every(diff)) return value + if (Array.isArray(value)) return value.filter(diff) + if (diff(value)) return [value] + if (!object(value)) return [] + return Object.values(value).filter(diff) +} + +export function message(value: Message): Message { + if (value.role !== "user") return value + + const raw = value.summary as unknown + if (raw === undefined) return value + if (!object(raw)) return { ...value, summary: undefined } + + const title = typeof raw.title === "string" ? raw.title : undefined + const body = typeof raw.body === "string" ? raw.body : undefined + const next = diffs(raw.diffs) + + if (title === raw.title && body === raw.body && next === raw.diffs) return value + + return { + ...value, + summary: { + ...(title === undefined ? {} : { title }), + ...(body === undefined ? {} : { body }), + diffs: next, + }, + } +} diff --git a/packages/ui/src/components/session-review.tsx b/packages/ui/src/components/session-review.tsx index 90da853ef..4a7205a5d 100644 --- a/packages/ui/src/components/session-review.tsx +++ b/packages/ui/src/components/session-review.tsx @@ -65,6 +65,26 @@ export type SessionReviewFocus = { file: string; id: string } type ReviewDiff = (SnapshotFileDiff | VcsFileDiff) & { preloaded?: PreloadMultiFileDiffResult } type Item = ViewDiff & { preloaded?: PreloadMultiFileDiffResult } +function diff(value: unknown): value is ReviewDiff { + if (!value || typeof value !== "object" || Array.isArray(value)) return false + if (!("file" in value) || typeof value.file !== "string") return false + if (!("additions" in value) || typeof value.additions !== "number") return false + if (!("deletions" in value) || typeof value.deletions !== "number") return false + if ("patch" in value && value.patch !== undefined && typeof value.patch !== "string") return false + if ("before" in value && value.before !== undefined && typeof value.before !== "string") return false + if ("after" in value && value.after !== undefined && typeof value.after !== "string") return false + if (!("status" in value) || value.status === undefined) return true + return value.status === "added" || value.status === "deleted" || value.status === "modified" +} + +function list(value: unknown): ReviewDiff[] { + if (Array.isArray(value) && value.every(diff)) return value + if (Array.isArray(value)) return value.filter(diff) + if (diff(value)) return [value] + if (!value || typeof value !== "object") return [] + return Object.values(value).filter(diff) +} + export interface SessionReviewProps { title?: JSX.Element empty?: JSX.Element @@ -157,7 +177,9 @@ export const SessionReview = (props: SessionReviewProps) => { const opened = () => store.opened const open = () => props.open ?? store.open - const items = createMemo(() => props.diffs.map((diff) => ({ ...normalize(diff), preloaded: diff.preloaded }))) + const items = createMemo(() => + list(props.diffs).map((diff) => ({ ...normalize(diff), preloaded: diff.preloaded })), + ) const files = createMemo(() => items().map((diff) => diff.file)) const grouped = createMemo(() => { const next = new Map() From 00cb8839ae71a1aae0a9bac92a1f53c61ef70bf9 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Wed, 8 Apr 2026 14:52:34 -0500 Subject: [PATCH 005/151] fix: dont show invalid variants for BP (#21555) --- packages/opencode/src/provider/transform.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index f536e04bf..111832099 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -376,7 +376,8 @@ export namespace ProviderTransform { id.includes("mistral") || id.includes("kimi") || id.includes("k2p5") || - id.includes("qwen") + id.includes("qwen") || + id.includes("big-pickle") ) return {} From 4961d72c0fa23ee23bca9ea59b86a2b13bcf4427 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:55:14 -0500 Subject: [PATCH 006/151] tweak: separate ModelsDev.Model and Config model schemas (#21561) --- packages/opencode/src/config/config.ts | 94 ++++++++++++--- packages/opencode/src/provider/models.ts | 3 - packages/opencode/src/provider/provider.ts | 4 +- packages/sdk/js/src/v2/gen/types.gen.ts | 54 ++++----- packages/sdk/openapi.json | 130 ++++++++++----------- 5 files changed, 169 insertions(+), 116 deletions(-) diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index efae2ca55..1952e3b57 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -786,28 +786,81 @@ export namespace Config { }) export type Layout = z.infer - export const Provider = ModelsDev.Provider.partial() - .extend({ - whitelist: z.array(z.string()).optional(), - blacklist: z.array(z.string()).optional(), - models: z + export const Model = z + .object({ + id: z.string(), + name: z.string(), + family: z.string().optional(), + release_date: z.string(), + attachment: z.boolean(), + reasoning: z.boolean(), + temperature: z.boolean(), + tool_call: z.boolean(), + interleaved: z + .union([ + z.literal(true), + z + .object({ + field: z.enum(["reasoning_content", "reasoning_details"]), + }) + .strict(), + ]) + .optional(), + cost: z + .object({ + input: z.number(), + output: z.number(), + cache_read: z.number().optional(), + cache_write: z.number().optional(), + context_over_200k: z + .object({ + input: z.number(), + output: z.number(), + cache_read: z.number().optional(), + cache_write: z.number().optional(), + }) + .optional(), + }) + .optional(), + limit: z.object({ + context: z.number(), + input: z.number().optional(), + output: z.number(), + }), + modalities: z + .object({ + input: z.array(z.enum(["text", "audio", "image", "video", "pdf"])), + output: z.array(z.enum(["text", "audio", "image", "video", "pdf"])), + }) + .optional(), + experimental: z.boolean().optional(), + status: z.enum(["alpha", "beta", "deprecated"]).optional(), + provider: z.object({ npm: z.string().optional(), api: z.string().optional() }).optional(), + options: z.record(z.string(), z.any()), + headers: z.record(z.string(), z.string()).optional(), + variants: z .record( z.string(), - ModelsDev.Model.partial().extend({ - variants: z - .record( - z.string(), - z - .object({ - disabled: z.boolean().optional().describe("Disable this variant for the model"), - }) - .catchall(z.any()), - ) - .optional() - .describe("Variant-specific configuration"), - }), + z + .object({ + disabled: z.boolean().optional().describe("Disable this variant for the model"), + }) + .catchall(z.any()), ) - .optional(), + .optional() + .describe("Variant-specific configuration"), + }) + .partial() + + export const Provider = z + .object({ + api: z.string().optional(), + name: z.string(), + env: z.array(z.string()), + id: z.string(), + npm: z.string().optional(), + whitelist: z.array(z.string()).optional(), + blacklist: z.array(z.string()).optional(), options: z .object({ apiKey: z.string().optional(), @@ -840,11 +893,14 @@ export namespace Config { }) .catchall(z.any()) .optional(), + models: z.record(z.string(), Model).optional(), }) + .partial() .strict() .meta({ ref: "ProviderConfig", }) + export type Provider = z.infer export const Info = z diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index c6ab5d836..23f61d804 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -70,10 +70,7 @@ export namespace ModelsDev { .optional(), experimental: z.boolean().optional(), status: z.enum(["alpha", "beta", "deprecated"]).optional(), - options: z.record(z.string(), z.any()), - headers: z.record(z.string(), z.string()).optional(), provider: z.object({ npm: z.string().optional(), api: z.string().optional() }).optional(), - variants: z.record(z.string(), z.record(z.string(), z.any())).optional(), }) export type Model = z.infer diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 9ca49bf8f..9febf634f 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -937,8 +937,8 @@ export namespace Provider { npm: model.provider?.npm ?? provider.npm ?? "@ai-sdk/openai-compatible", }, status: model.status ?? "active", - headers: model.headers ?? {}, - options: model.options ?? {}, + headers: {}, + options: {}, cost: { input: model.cost?.input ?? 0, output: model.cost?.output ?? 0, diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index e21e093c6..4f226e60c 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1250,6 +1250,29 @@ export type ProviderConfig = { env?: Array id?: string npm?: string + whitelist?: Array + blacklist?: Array + options?: { + apiKey?: string + baseURL?: string + /** + * GitHub Enterprise URL for copilot authentication + */ + enterpriseUrl?: string + /** + * Enable promptCacheKey for this provider (default false) + */ + setCacheKey?: boolean + /** + * Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout. + */ + timeout?: number | false + /** + * Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted. + */ + chunkTimeout?: number + [key: string]: unknown | string | boolean | number | false | number | undefined + } models?: { [key: string]: { id?: string @@ -1288,16 +1311,16 @@ export type ProviderConfig = { } experimental?: boolean status?: "alpha" | "beta" | "deprecated" + provider?: { + npm?: string + api?: string + } options?: { [key: string]: unknown } headers?: { [key: string]: string } - provider?: { - npm?: string - api?: string - } /** * Variant-specific configuration */ @@ -1312,29 +1335,6 @@ export type ProviderConfig = { } } } - whitelist?: Array - blacklist?: Array - options?: { - apiKey?: string - baseURL?: string - /** - * GitHub Enterprise URL for copilot authentication - */ - enterpriseUrl?: string - /** - * Enable promptCacheKey for this provider (default false) - */ - setCacheKey?: boolean - /** - * Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout. - */ - timeout?: number | false - /** - * Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted. - */ - chunkTimeout?: number - [key: string]: unknown | string | boolean | number | false | number | undefined - } } export type McpLocalConfig = { diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 0f3b2c397..a0672df2d 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -10596,6 +10596,60 @@ "npm": { "type": "string" }, + "whitelist": { + "type": "array", + "items": { + "type": "string" + } + }, + "blacklist": { + "type": "array", + "items": { + "type": "string" + } + }, + "options": { + "type": "object", + "properties": { + "apiKey": { + "type": "string" + }, + "baseURL": { + "type": "string" + }, + "enterpriseUrl": { + "description": "GitHub Enterprise URL for copilot authentication", + "type": "string" + }, + "setCacheKey": { + "description": "Enable promptCacheKey for this provider (default false)", + "type": "boolean" + }, + "timeout": { + "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.", + "anyOf": [ + { + "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + { + "description": "Disable timeout for this provider entirely.", + "type": "boolean", + "const": false + } + ] + }, + "chunkTimeout": { + "description": "Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted.", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "additionalProperties": {} + }, "models": { "type": "object", "propertyNames": { @@ -10725,6 +10779,17 @@ "type": "string", "enum": ["alpha", "beta", "deprecated"] }, + "provider": { + "type": "object", + "properties": { + "npm": { + "type": "string" + }, + "api": { + "type": "string" + } + } + }, "options": { "type": "object", "propertyNames": { @@ -10741,17 +10806,6 @@ "type": "string" } }, - "provider": { - "type": "object", - "properties": { - "npm": { - "type": "string" - }, - "api": { - "type": "string" - } - } - }, "variants": { "description": "Variant-specific configuration", "type": "object", @@ -10771,60 +10825,6 @@ } } } - }, - "whitelist": { - "type": "array", - "items": { - "type": "string" - } - }, - "blacklist": { - "type": "array", - "items": { - "type": "string" - } - }, - "options": { - "type": "object", - "properties": { - "apiKey": { - "type": "string" - }, - "baseURL": { - "type": "string" - }, - "enterpriseUrl": { - "description": "GitHub Enterprise URL for copilot authentication", - "type": "string" - }, - "setCacheKey": { - "description": "Enable promptCacheKey for this provider (default false)", - "type": "boolean" - }, - "timeout": { - "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.", - "anyOf": [ - { - "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.", - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 9007199254740991 - }, - { - "description": "Disable timeout for this provider entirely.", - "type": "boolean", - "const": false - } - ] - }, - "chunkTimeout": { - "description": "Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted.", - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 9007199254740991 - } - }, - "additionalProperties": {} } }, "additionalProperties": false From 38f8714c09d72993534ce33a998955e40e83c74f Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 8 Apr 2026 19:02:19 -0400 Subject: [PATCH 007/151] refactor(effect): build task tool from agent services (#21017) --- packages/opencode/src/session/prompt.ts | 8 +- packages/opencode/src/tool/registry.ts | 83 ++-- packages/opencode/src/tool/task.ts | 269 ++++++----- packages/opencode/src/tool/tool.ts | 19 +- .../test/session/prompt-effect.test.ts | 13 +- packages/opencode/test/tool/task.test.ts | 432 ++++++++++++++++-- 6 files changed, 620 insertions(+), 204 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index c29733999..3c9988ea3 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -600,7 +600,11 @@ NOTE: At any point in time through this workflow you should feel free to ask the subagent_type: task.agent, command: task.command, } - yield* plugin.trigger("tool.execute.before", { tool: "task", sessionID, callID: part.id }, { args: taskArgs }) + yield* plugin.trigger( + "tool.execute.before", + { tool: TaskTool.id, sessionID, callID: part.id }, + { args: taskArgs }, + ) const taskAgent = yield* agents.get(task.agent) if (!taskAgent) { @@ -679,7 +683,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the yield* plugin.trigger( "tool.execute.after", - { tool: "task", sessionID, callID: part.id, args: taskArgs }, + { tool: TaskTool.id, sessionID, callID: part.id, args: taskArgs }, result, ) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 72911051e..63e1a97ea 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -50,6 +50,10 @@ export namespace ToolRegistry { export interface Interface { readonly ids: () => Effect.Effect readonly all: () => Effect.Effect + readonly named: { + task: Tool.Info + read: Tool.Info + } readonly tools: (model: { providerID: ProviderID modelID: ModelID @@ -67,6 +71,7 @@ export namespace ToolRegistry { | Plugin.Service | Question.Service | Todo.Service + | Agent.Service | LSP.Service | FileTime.Service | Instruction.Service @@ -77,8 +82,10 @@ export namespace ToolRegistry { const config = yield* Config.Service const plugin = yield* Plugin.Service - const build = (tool: T | Effect.Effect) => - Effect.isEffect(tool) ? tool.pipe(Effect.flatMap(Tool.init)) : Tool.init(tool) + const task = yield* TaskTool + const read = yield* ReadTool + const question = yield* QuestionTool + const todo = yield* TodoWriteTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -90,11 +97,11 @@ export namespace ToolRegistry { parameters: z.object(def.args), description: def.description, execute: async (args, toolCtx) => { - const pluginCtx = { + const pluginCtx: PluginToolContext = { ...toolCtx, directory: ctx.directory, worktree: ctx.worktree, - } as unknown as PluginToolContext + } const result = await def.execute(args as any, pluginCtx) const out = await Truncate.output(result, {}, await Agent.get(toolCtx.agent)) return { @@ -132,34 +139,50 @@ export namespace ToolRegistry { } const cfg = yield* config.get() - const question = + const questionEnabled = ["app", "cli", "desktop"].includes(Flag.OPENCODE_CLIENT) || Flag.OPENCODE_ENABLE_QUESTION_TOOL + const tool = yield* Effect.all({ + invalid: Tool.init(InvalidTool), + bash: Tool.init(BashTool), + read: Tool.init(read), + glob: Tool.init(GlobTool), + grep: Tool.init(GrepTool), + edit: Tool.init(EditTool), + write: Tool.init(WriteTool), + task: Tool.init(task), + fetch: Tool.init(WebFetchTool), + todo: Tool.init(todo), + search: Tool.init(WebSearchTool), + code: Tool.init(CodeSearchTool), + skill: Tool.init(SkillTool), + patch: Tool.init(ApplyPatchTool), + question: Tool.init(question), + lsp: Tool.init(LspTool), + plan: Tool.init(PlanExitTool), + }) + return { custom, - builtin: yield* Effect.forEach( - [ - InvalidTool, - BashTool, - ReadTool, - GlobTool, - GrepTool, - EditTool, - WriteTool, - TaskTool, - WebFetchTool, - TodoWriteTool, - WebSearchTool, - CodeSearchTool, - SkillTool, - ApplyPatchTool, - ...(question ? [QuestionTool] : []), - ...(Flag.OPENCODE_EXPERIMENTAL_LSP_TOOL ? [LspTool] : []), - ...(Flag.OPENCODE_EXPERIMENTAL_PLAN_MODE && Flag.OPENCODE_CLIENT === "cli" ? [PlanExitTool] : []), - ], - build, - { concurrency: "unbounded" }, - ), + builtin: [ + tool.invalid, + ...(questionEnabled ? [tool.question] : []), + tool.bash, + tool.read, + tool.glob, + tool.grep, + tool.edit, + tool.write, + tool.task, + tool.fetch, + tool.todo, + tool.search, + tool.code, + tool.skill, + tool.patch, + ...(Flag.OPENCODE_EXPERIMENTAL_LSP_TOOL ? [tool.lsp] : []), + ...(Flag.OPENCODE_EXPERIMENTAL_PLAN_MODE && Flag.OPENCODE_CLIENT === "cli" ? [tool.plan] : []), + ], } }), ) @@ -208,7 +231,6 @@ export namespace ToolRegistry { id: tool.id, description: [ output.description, - // TODO: remove this hack tool.id === TaskTool.id ? yield* TaskDescription(input.agent) : undefined, tool.id === SkillTool.id ? yield* SkillDescription(input.agent) : undefined, ] @@ -223,7 +245,7 @@ export namespace ToolRegistry { ) }) - return Service.of({ ids, tools, all, fromID }) + return Service.of({ ids, all, named: { task, read }, tools, fromID }) }), ) @@ -234,6 +256,7 @@ export namespace ToolRegistry { Layer.provide(Plugin.defaultLayer), Layer.provide(Question.defaultLayer), Layer.provide(Todo.defaultLayer), + Layer.provide(Agent.defaultLayer), Layer.provide(LSP.defaultLayer), Layer.provide(FileTime.defaultLayer), Layer.provide(Instruction.defaultLayer), diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 07e779f5b..73b55a2fb 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -6,96 +6,101 @@ import { SessionID, MessageID } from "../session/schema" import { MessageV2 } from "../session/message-v2" import { Agent } from "../agent/agent" import { SessionPrompt } from "../session/prompt" -import { iife } from "@/util/iife" -import { defer } from "@/util/defer" import { Config } from "../config/config" import { Permission } from "@/permission" import { Effect } from "effect" -export const TaskTool = Tool.define("task", async () => { - const agents = await Agent.list().then((x) => x.filter((a) => a.mode !== "primary")) - const list = agents.toSorted((a, b) => a.name.localeCompare(b.name)) - const agentList = list - .map((a) => `- ${a.name}: ${a.description ?? "This subagent should only be called manually by the user."}`) - .join("\n") - const description = [`Available agent types and the tools they have access to:`, agentList].join("\n") +const id = "task" - return { - description, - parameters: z.object({ - description: z.string().describe("A short (3-5 words) description of the task"), - prompt: z.string().describe("The task for the agent to perform"), - subagent_type: z.string().describe("The type of specialized agent to use for this task"), - task_id: z - .string() - .describe( - "This should only be set if you mean to resume a previous task (you can pass a prior task_id and the task will continue the same subagent session as before instead of creating a fresh one)", - ) - .optional(), - command: z.string().describe("The command that triggered this task").optional(), - }), - async execute(params, ctx) { - const config = await Config.get() +const parameters = z.object({ + description: z.string().describe("A short (3-5 words) description of the task"), + prompt: z.string().describe("The task for the agent to perform"), + subagent_type: z.string().describe("The type of specialized agent to use for this task"), + task_id: z + .string() + .describe( + "This should only be set if you mean to resume a previous task (you can pass a prior task_id and the task will continue the same subagent session as before instead of creating a fresh one)", + ) + .optional(), + command: z.string().describe("The command that triggered this task").optional(), +}) + +export const TaskTool = Tool.defineEffect( + id, + Effect.gen(function* () { + const agent = yield* Agent.Service + const config = yield* Config.Service + + const run = Effect.fn("TaskTool.execute")(function* (params: z.infer, ctx: Tool.Context) { + const cfg = yield* config.get() - // Skip permission check when user explicitly invoked via @ or command subtask if (!ctx.extra?.bypassAgentCheck) { - await ctx.ask({ - permission: "task", - patterns: [params.subagent_type], - always: ["*"], - metadata: { - description: params.description, - subagent_type: params.subagent_type, - }, - }) + yield* Effect.promise(() => + ctx.ask({ + permission: id, + patterns: [params.subagent_type], + always: ["*"], + metadata: { + description: params.description, + subagent_type: params.subagent_type, + }, + }), + ) } - const agent = await Agent.get(params.subagent_type) - if (!agent) throw new Error(`Unknown agent type: ${params.subagent_type} is not a valid agent type`) + const next = yield* agent.get(params.subagent_type) + if (!next) { + return yield* Effect.fail(new Error(`Unknown agent type: ${params.subagent_type} is not a valid agent type`)) + } - const hasTaskPermission = agent.permission.some((rule) => rule.permission === "task") - const hasTodoWritePermission = agent.permission.some((rule) => rule.permission === "todowrite") + const canTask = next.permission.some((rule) => rule.permission === id) + const canTodo = next.permission.some((rule) => rule.permission === "todowrite") - const session = await iife(async () => { - if (params.task_id) { - const found = await Session.get(SessionID.make(params.task_id)).catch(() => {}) - if (found) return found - } + const taskID = params.task_id + const session = taskID + ? yield* Effect.promise(() => { + const id = SessionID.make(taskID) + return Session.get(id).catch(() => undefined) + }) + : undefined + const nextSession = + session ?? + (yield* Effect.promise(() => + Session.create({ + parentID: ctx.sessionID, + title: params.description + ` (@${next.name} subagent)`, + permission: [ + ...(canTodo + ? [] + : [ + { + permission: "todowrite" as const, + pattern: "*" as const, + action: "deny" as const, + }, + ]), + ...(canTask + ? [] + : [ + { + permission: id, + pattern: "*" as const, + action: "deny" as const, + }, + ]), + ...(cfg.experimental?.primary_tools?.map((item) => ({ + pattern: "*", + action: "allow" as const, + permission: item, + })) ?? []), + ], + }), + )) - return await Session.create({ - parentID: ctx.sessionID, - title: params.description + ` (@${agent.name} subagent)`, - permission: [ - ...(hasTodoWritePermission - ? [] - : [ - { - permission: "todowrite" as const, - pattern: "*" as const, - action: "deny" as const, - }, - ]), - ...(hasTaskPermission - ? [] - : [ - { - permission: "task" as const, - pattern: "*" as const, - action: "deny" as const, - }, - ]), - ...(config.experimental?.primary_tools?.map((t) => ({ - pattern: "*", - action: "allow" as const, - permission: t, - })) ?? []), - ], - }) - }) - const msg = await MessageV2.get({ sessionID: ctx.sessionID, messageID: ctx.messageID }) - if (msg.info.role !== "assistant") throw new Error("Not an assistant message") + const msg = yield* Effect.sync(() => MessageV2.get({ sessionID: ctx.sessionID, messageID: ctx.messageID })) + if (msg.info.role !== "assistant") return yield* Effect.fail(new Error("Not an assistant message")) - const model = agent.model ?? { + const model = next.model ?? { modelID: msg.info.modelID, providerID: msg.info.providerID, } @@ -103,7 +108,7 @@ export const TaskTool = Tool.define("task", async () => { ctx.metadata({ title: params.description, metadata: { - sessionId: session.id, + sessionId: nextSession.id, model, }, }) @@ -111,59 +116,77 @@ export const TaskTool = Tool.define("task", async () => { const messageID = MessageID.ascending() function cancel() { - SessionPrompt.cancel(session.id) + SessionPrompt.cancel(nextSession.id) } - ctx.abort.addEventListener("abort", cancel) - using _ = defer(() => ctx.abort.removeEventListener("abort", cancel)) - const promptParts = await SessionPrompt.resolvePromptParts(params.prompt) - const result = await SessionPrompt.prompt({ - messageID, - sessionID: session.id, - model: { - modelID: model.modelID, - providerID: model.providerID, - }, - agent: agent.name, - tools: { - ...(hasTodoWritePermission ? {} : { todowrite: false }), - ...(hasTaskPermission ? {} : { task: false }), - ...Object.fromEntries((config.experimental?.primary_tools ?? []).map((t) => [t, false])), - }, - parts: promptParts, - }) + return yield* Effect.acquireUseRelease( + Effect.sync(() => { + ctx.abort.addEventListener("abort", cancel) + }), + () => + Effect.gen(function* () { + const parts = yield* Effect.promise(() => SessionPrompt.resolvePromptParts(params.prompt)) + const result = yield* Effect.promise(() => + SessionPrompt.prompt({ + messageID, + sessionID: nextSession.id, + model: { + modelID: model.modelID, + providerID: model.providerID, + }, + agent: next.name, + tools: { + ...(canTodo ? {} : { todowrite: false }), + ...(canTask ? {} : { task: false }), + ...Object.fromEntries((cfg.experimental?.primary_tools ?? []).map((item) => [item, false])), + }, + parts, + }), + ) - const text = result.parts.findLast((x) => x.type === "text")?.text ?? "" + return { + title: params.description, + metadata: { + sessionId: nextSession.id, + model, + }, + output: [ + `task_id: ${nextSession.id} (for resuming to continue this task if needed)`, + "", + "", + result.parts.findLast((item) => item.type === "text")?.text ?? "", + "", + ].join("\n"), + } + }), + () => + Effect.sync(() => { + ctx.abort.removeEventListener("abort", cancel) + }), + ) + }) - const output = [ - `task_id: ${session.id} (for resuming to continue this task if needed)`, - "", - "", - text, - "", - ].join("\n") - - return { - title: params.description, - metadata: { - sessionId: session.id, - model, - }, - output, - } - }, - } -}) + return { + description: DESCRIPTION, + parameters, + async execute(params: z.infer, ctx) { + return Effect.runPromise(run(params, ctx)) + }, + } + }), +) export const TaskDescription: Tool.DynamicDescription = (agent) => Effect.gen(function* () { - const agents = yield* Effect.promise(() => Agent.list().then((x) => x.filter((a) => a.mode !== "primary"))) - const accessibleAgents = agents.filter( - (a) => Permission.evaluate("task", a.name, agent.permission).action !== "deny", + const items = yield* Effect.promise(() => + Agent.list().then((items) => items.filter((item) => item.mode !== "primary")), ) - const list = accessibleAgents.toSorted((a, b) => a.name.localeCompare(b.name)) + const filtered = items.filter((item) => Permission.evaluate(id, item.name, agent.permission).action !== "deny") + const list = filtered.toSorted((a, b) => a.name.localeCompare(b.name)) const description = list - .map((a) => `- ${a.name}: ${a.description ?? "This subagent should only be called manually by the user."}`) + .map( + (item) => `- ${item.name}: ${item.description ?? "This subagent should only be called manually by the user."}`, + ) .join("\n") - return [`Available agent types and the tools they have access to:`, description].join("\n") + return ["Available agent types and the tools they have access to:", description].join("\n") }) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 6d129f427..66e1b8e78 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -98,24 +98,27 @@ export namespace Tool { } } - export function define( - id: string, + export function define( + id: ID, init: (() => Promise>) | DefWithoutID, - ): Info { + ): Info & { id: ID } { return { id, init: wrap(id, init), } } - export function defineEffect( - id: string, + export function defineEffect( + id: ID, init: Effect.Effect<(() => Promise>) | DefWithoutID, never, R>, - ): Effect.Effect, never, R> { - return Effect.map(init, (next) => ({ id, init: wrap(id, next) })) + ): Effect.Effect, never, R> & { id: ID } { + return Object.assign( + Effect.map(init, (next) => ({ id, init: wrap(id, next) })), + { id }, + ) } - export function init(info: Info): Effect.Effect { + export function init(info: Info): Effect.Effect { return Effect.gen(function* () { const init = yield* Effect.promise(() => info.init()) return { diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index 17689cf27..5693e139d 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -1,5 +1,5 @@ import { NodeFileSystem } from "@effect/platform-node" -import { expect, spyOn } from "bun:test" +import { expect } from "bun:test" import { Cause, Effect, Exit, Fiber, Layer } from "effect" import path from "path" import z from "zod" @@ -29,7 +29,6 @@ import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { Shell } from "../../src/shell/shell" import { Snapshot } from "../../src/snapshot" -import { TaskTool } from "../../src/tool/task" import { ToolRegistry } from "../../src/tool/registry" import { Truncate } from "../../src/tool/truncate" import { Log } from "../../src/util/log" @@ -627,11 +626,13 @@ it.live( "cancel finalizes subtask tool state", () => provideTmpdirInstance( - (dir) => + () => Effect.gen(function* () { const ready = defer() const aborted = defer() - const init = spyOn(TaskTool, "init").mockImplementation(async () => ({ + const registry = yield* ToolRegistry.Service + const init = registry.named.task.init + registry.named.task.init = async () => ({ description: "task", parameters: z.object({ description: z.string(), @@ -653,8 +654,8 @@ it.live( output: "", } }, - })) - yield* Effect.addFinalizer(() => Effect.sync(() => init.mockRestore())) + }) + yield* Effect.addFinalizer(() => Effect.sync(() => void (registry.named.task.init = init))) const { prompt, chat } = yield* boot() const msg = yield* user(chat.id, "hello") diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index fe936a242..8ebfa59d2 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -1,50 +1,412 @@ -import { Effect } from "effect" -import { afterEach, describe, expect, test } from "bun:test" +import { afterEach, describe, expect } from "bun:test" +import { Effect, Layer } from "effect" import { Agent } from "../../src/agent/agent" +import { Config } from "../../src/config/config" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Instance } from "../../src/project/instance" -import { TaskDescription } from "../../src/tool/task" -import { tmpdir } from "../fixture/fixture" +import { Session } from "../../src/session" +import { MessageV2 } from "../../src/session/message-v2" +import { SessionPrompt } from "../../src/session/prompt" +import { MessageID, PartID } from "../../src/session/schema" +import { ModelID, ProviderID } from "../../src/provider/schema" +import { TaskDescription, TaskTool } from "../../src/tool/task" +import { provideTmpdirInstance } from "../fixture/fixture" +import { testEffect } from "../lib/effect" afterEach(async () => { await Instance.disposeAll() }) +const ref = { + providerID: ProviderID.make("test"), + modelID: ModelID.make("test-model"), +} + +const it = testEffect( + Layer.mergeAll(Agent.defaultLayer, Config.defaultLayer, CrossSpawnSpawner.defaultLayer, Session.defaultLayer), +) + +const seed = Effect.fn("TaskToolTest.seed")(function* (title = "Pinned") { + const session = yield* Session.Service + const chat = yield* session.create({ title }) + const user = yield* session.updateMessage({ + id: MessageID.ascending(), + role: "user", + sessionID: chat.id, + agent: "build", + model: ref, + time: { created: Date.now() }, + }) + const assistant: MessageV2.Assistant = { + id: MessageID.ascending(), + role: "assistant", + parentID: user.id, + sessionID: chat.id, + mode: "build", + agent: "build", + cost: 0, + path: { cwd: "/tmp", root: "/tmp" }, + tokens: { input: 0, output: 0, reasoning: 0, cache: { read: 0, write: 0 } }, + modelID: ref.modelID, + providerID: ref.providerID, + time: { created: Date.now() }, + } + yield* session.updateMessage(assistant) + return { chat, assistant } +}) + +function reply(input: Parameters[0], text: string): MessageV2.WithParts { + const id = MessageID.ascending() + return { + info: { + id, + role: "assistant", + parentID: input.messageID ?? MessageID.ascending(), + sessionID: input.sessionID, + mode: input.agent ?? "general", + agent: input.agent ?? "general", + cost: 0, + path: { cwd: "/tmp", root: "/tmp" }, + tokens: { input: 0, output: 0, reasoning: 0, cache: { read: 0, write: 0 } }, + modelID: input.model?.modelID ?? ref.modelID, + providerID: input.model?.providerID ?? ref.providerID, + time: { created: Date.now() }, + finish: "stop", + }, + parts: [ + { + id: PartID.ascending(), + messageID: id, + sessionID: input.sessionID, + type: "text", + text, + }, + ], + } +} + describe("tool.task", () => { - test("description sorts subagents by name and is stable across calls", async () => { - await using tmp = await tmpdir({ - config: { - agent: { - zebra: { - description: "Zebra agent", - mode: "subagent", - }, - alpha: { - description: "Alpha agent", - mode: "subagent", + it.live("description sorts subagents by name and is stable across calls", () => + provideTmpdirInstance( + () => + Effect.gen(function* () { + const agent = yield* Agent.Service + const build = yield* agent.get("build") + const first = yield* TaskDescription(build) + const second = yield* TaskDescription(build) + + expect(first).toBe(second) + + const alpha = first.indexOf("- alpha: Alpha agent") + const explore = first.indexOf("- explore:") + const general = first.indexOf("- general:") + const zebra = first.indexOf("- zebra: Zebra agent") + + expect(alpha).toBeGreaterThan(-1) + expect(explore).toBeGreaterThan(alpha) + expect(general).toBeGreaterThan(explore) + expect(zebra).toBeGreaterThan(general) + }), + { + config: { + agent: { + zebra: { + description: "Zebra agent", + mode: "subagent", + }, + alpha: { + description: "Alpha agent", + mode: "subagent", + }, }, }, }, - }) + ), + ) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const agent = { name: "build", mode: "primary" as const, permission: [], options: {} } - const first = await Effect.runPromise(TaskDescription(agent)) - const second = await Effect.runPromise(TaskDescription(agent)) + it.live("description hides denied subagents for the caller", () => + provideTmpdirInstance( + () => + Effect.gen(function* () { + const agent = yield* Agent.Service + const build = yield* agent.get("build") + const description = yield* TaskDescription(build) - expect(first).toBe(second) - - const alpha = first.indexOf("- alpha: Alpha agent") - const explore = first.indexOf("- explore:") - const general = first.indexOf("- general:") - const zebra = first.indexOf("- zebra: Zebra agent") - - expect(alpha).toBeGreaterThan(-1) - expect(explore).toBeGreaterThan(alpha) - expect(general).toBeGreaterThan(explore) - expect(zebra).toBeGreaterThan(general) + expect(description).toContain("- alpha: Alpha agent") + expect(description).not.toContain("- zebra: Zebra agent") + }), + { + config: { + permission: { + task: { + "*": "allow", + zebra: "deny", + }, + }, + agent: { + zebra: { + description: "Zebra agent", + mode: "subagent", + }, + alpha: { + description: "Alpha agent", + mode: "subagent", + }, + }, + }, }, - }) - }) + ), + ) + + it.live("execute resumes an existing task session from task_id", () => + provideTmpdirInstance(() => + Effect.gen(function* () { + const sessions = yield* Session.Service + const { chat, assistant } = yield* seed() + const child = yield* sessions.create({ parentID: chat.id, title: "Existing child" }) + const tool = yield* TaskTool + const def = yield* Effect.promise(() => tool.init()) + const resolve = SessionPrompt.resolvePromptParts + const prompt = SessionPrompt.prompt + let seen: Parameters[0] | undefined + + SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] + SessionPrompt.prompt = async (input) => { + seen = input + return reply(input, "resumed") + } + yield* Effect.addFinalizer(() => + Effect.sync(() => { + SessionPrompt.resolvePromptParts = resolve + SessionPrompt.prompt = prompt + }), + ) + + const result = yield* Effect.promise(() => + def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + task_id: child.id, + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + messages: [], + metadata() {}, + ask: async () => {}, + }, + ), + ) + + const kids = yield* sessions.children(chat.id) + expect(kids).toHaveLength(1) + expect(kids[0]?.id).toBe(child.id) + expect(result.metadata.sessionId).toBe(child.id) + expect(result.output).toContain(`task_id: ${child.id}`) + expect(seen?.sessionID).toBe(child.id) + }), + ), + ) + + it.live("execute asks by default and skips checks when bypassed", () => + provideTmpdirInstance(() => + Effect.gen(function* () { + const { chat, assistant } = yield* seed() + const tool = yield* TaskTool + const def = yield* Effect.promise(() => tool.init()) + const resolve = SessionPrompt.resolvePromptParts + const prompt = SessionPrompt.prompt + const calls: unknown[] = [] + + SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] + SessionPrompt.prompt = async (input) => reply(input, "done") + yield* Effect.addFinalizer(() => + Effect.sync(() => { + SessionPrompt.resolvePromptParts = resolve + SessionPrompt.prompt = prompt + }), + ) + + const exec = (extra?: { bypassAgentCheck?: boolean }) => + Effect.promise(() => + def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra, + messages: [], + metadata() {}, + ask: async (input) => { + calls.push(input) + }, + }, + ), + ) + + yield* exec() + yield* exec({ bypassAgentCheck: true }) + + expect(calls).toHaveLength(1) + expect(calls[0]).toEqual({ + permission: "task", + patterns: ["general"], + always: ["*"], + metadata: { + description: "inspect bug", + subagent_type: "general", + }, + }) + }), + ), + ) + + it.live("execute creates a child when task_id does not exist", () => + provideTmpdirInstance(() => + Effect.gen(function* () { + const sessions = yield* Session.Service + const { chat, assistant } = yield* seed() + const tool = yield* TaskTool + const def = yield* Effect.promise(() => tool.init()) + const resolve = SessionPrompt.resolvePromptParts + const prompt = SessionPrompt.prompt + let seen: Parameters[0] | undefined + + SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] + SessionPrompt.prompt = async (input) => { + seen = input + return reply(input, "created") + } + yield* Effect.addFinalizer(() => + Effect.sync(() => { + SessionPrompt.resolvePromptParts = resolve + SessionPrompt.prompt = prompt + }), + ) + + const result = yield* Effect.promise(() => + def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + task_id: "ses_missing", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + messages: [], + metadata() {}, + ask: async () => {}, + }, + ), + ) + + const kids = yield* sessions.children(chat.id) + expect(kids).toHaveLength(1) + expect(kids[0]?.id).toBe(result.metadata.sessionId) + expect(result.metadata.sessionId).not.toBe("ses_missing") + expect(result.output).toContain(`task_id: ${result.metadata.sessionId}`) + expect(seen?.sessionID).toBe(result.metadata.sessionId) + }), + ), + ) + + it.live("execute shapes child permissions for task, todowrite, and primary tools", () => + provideTmpdirInstance( + () => + Effect.gen(function* () { + const sessions = yield* Session.Service + const { chat, assistant } = yield* seed() + const tool = yield* TaskTool + const def = yield* Effect.promise(() => tool.init()) + const resolve = SessionPrompt.resolvePromptParts + const prompt = SessionPrompt.prompt + let seen: Parameters[0] | undefined + + SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] + SessionPrompt.prompt = async (input) => { + seen = input + return reply(input, "done") + } + yield* Effect.addFinalizer(() => + Effect.sync(() => { + SessionPrompt.resolvePromptParts = resolve + SessionPrompt.prompt = prompt + }), + ) + + const result = yield* Effect.promise(() => + def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "reviewer", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + messages: [], + metadata() {}, + ask: async () => {}, + }, + ), + ) + + const child = yield* sessions.get(result.metadata.sessionId) + expect(child.parentID).toBe(chat.id) + expect(child.permission).toEqual([ + { + permission: "todowrite", + pattern: "*", + action: "deny", + }, + { + permission: "bash", + pattern: "*", + action: "allow", + }, + { + permission: "read", + pattern: "*", + action: "allow", + }, + ]) + expect(seen?.tools).toEqual({ + todowrite: false, + bash: false, + read: false, + }) + }), + { + config: { + agent: { + reviewer: { + mode: "subagent", + permission: { + task: "allow", + }, + }, + }, + experimental: { + primary_tools: ["bash", "read"], + }, + }, + }, + ), + ) }) From 51535d8ef3df797761fe39cde1e3340d4dd77eb7 Mon Sep 17 00:00:00 2001 From: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Date: Thu, 9 Apr 2026 00:13:10 +0100 Subject: [PATCH 008/151] fix(app): skip url password setting for same-origin server and web app (#19923) --- packages/app/src/components/terminal.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index 0a5a7d2d3..31c046c4f 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -174,6 +174,7 @@ export const Terminal = (props: TerminalProps) => { const auth = server.current?.http const username = auth?.username ?? "opencode" const password = auth?.password ?? "" + const sameOrigin = new URL(url, location.href).origin === location.origin let container!: HTMLDivElement const [local, others] = splitProps(props, ["pty", "class", "classList", "autoFocus", "onConnect", "onConnectError"]) const id = local.pty.id @@ -519,8 +520,11 @@ export const Terminal = (props: TerminalProps) => { next.searchParams.set("directory", directory) next.searchParams.set("cursor", String(seek)) next.protocol = next.protocol === "https:" ? "wss:" : "ws:" - next.username = username - next.password = password + if (!sameOrigin && password) { + // For same-origin requests, let the browser reuse the page's existing auth. + next.username = username + next.password = password + } const socket = new WebSocket(next) socket.binaryType = "arraybuffer" From 2bdd279467632ab048c39c5dbaadee1ee33dc510 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 8 Apr 2026 21:07:55 -0400 Subject: [PATCH 009/151] fix: propagate abort signal to inline read tool (#21584) --- packages/opencode/src/session/prompt.ts | 81 +++++----- packages/opencode/src/tool/registry.ts | 27 ++-- packages/opencode/src/tool/tool.ts | 9 +- .../test/session/prompt-effect.test.ts | 147 +++++++++++++++--- 4 files changed, 185 insertions(+), 79 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 3c9988ea3..a18f9e379 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -559,7 +559,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the }) { const { task, model, lastUser, sessionID, session, msgs } = input const ctx = yield* InstanceState.context - const taskTool = yield* registry.fromID(TaskTool.id) + const { task: taskTool } = yield* registry.named() const taskModel = task.model ? yield* getModel(task.model.providerID, task.model.modelID, sessionID) : model const assistantMessage: MessageV2.Assistant = yield* sessions.updateMessage({ id: MessageID.ascending(), @@ -1080,6 +1080,21 @@ NOTE: At any point in time through this workflow you should feel free to ask the const filepath = fileURLToPath(part.url) if (yield* fsys.isDir(filepath)) part.mime = "application/x-directory" + const { read } = yield* registry.named() + const execRead = (args: Parameters[0], extra?: Tool.Context["extra"]) => + Effect.promise((signal: AbortSignal) => + read.execute(args, { + sessionID: input.sessionID, + abort: signal, + agent: input.agent!, + messageID: info.id, + extra: { bypassCwdCheck: true, ...extra }, + messages: [], + metadata: async () => {}, + ask: async () => {}, + }), + ) + if (part.mime === "text/plain") { let offset: number | undefined let limit: number | undefined @@ -1116,29 +1131,12 @@ NOTE: At any point in time through this workflow you should feel free to ask the text: `Called the Read tool with the following input: ${JSON.stringify(args)}`, }, ] - const read = yield* registry.fromID("read").pipe( - Effect.flatMap((t) => - provider.getModel(info.model.providerID, info.model.modelID).pipe( - Effect.flatMap((mdl) => - Effect.promise(() => - t.execute(args, { - sessionID: input.sessionID, - abort: new AbortController().signal, - agent: input.agent!, - messageID: info.id, - extra: { bypassCwdCheck: true, model: mdl }, - messages: [], - metadata: async () => {}, - ask: async () => {}, - }), - ), - ), - ), - ), + const exit = yield* provider.getModel(info.model.providerID, info.model.modelID).pipe( + Effect.flatMap((mdl) => execRead(args, { model: mdl })), Effect.exit, ) - if (Exit.isSuccess(read)) { - const result = read.value + if (Exit.isSuccess(exit)) { + const result = exit.value pieces.push({ messageID: info.id, sessionID: input.sessionID, @@ -1160,7 +1158,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the pieces.push({ ...part, messageID: info.id, sessionID: input.sessionID }) } } else { - const error = Cause.squash(read.cause) + const error = Cause.squash(exit.cause) log.error("failed to read file", { error }) const message = error instanceof Error ? error.message : String(error) yield* bus.publish(Session.Event.Error, { @@ -1180,22 +1178,25 @@ NOTE: At any point in time through this workflow you should feel free to ask the if (part.mime === "application/x-directory") { const args = { filePath: filepath } - const result = yield* registry.fromID("read").pipe( - Effect.flatMap((t) => - Effect.promise(() => - t.execute(args, { - sessionID: input.sessionID, - abort: new AbortController().signal, - agent: input.agent!, - messageID: info.id, - extra: { bypassCwdCheck: true }, - messages: [], - metadata: async () => {}, - ask: async () => {}, - }), - ), - ), - ) + const exit = yield* execRead(args).pipe(Effect.exit) + if (Exit.isFailure(exit)) { + const error = Cause.squash(exit.cause) + log.error("failed to read directory", { error }) + const message = error instanceof Error ? error.message : String(error) + yield* bus.publish(Session.Event.Error, { + sessionID: input.sessionID, + error: new NamedError.Unknown({ message }).toObject(), + }) + return [ + { + messageID: info.id, + sessionID: input.sessionID, + type: "text", + synthetic: true, + text: `Read tool failed to read ${filepath} with the following error: ${message}`, + }, + ] + } return [ { messageID: info.id, @@ -1209,7 +1210,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the sessionID: input.sessionID, type: "text", synthetic: true, - text: result.output, + text: exit.value.output, }, { ...part, messageID: info.id, sessionID: input.sessionID }, ] diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 63e1a97ea..800c45ced 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -42,24 +42,25 @@ import { Agent } from "../agent/agent" export namespace ToolRegistry { const log = Log.create({ service: "tool.registry" }) + type TaskDef = Tool.InferDef + type ReadDef = Tool.InferDef + type State = { custom: Tool.Def[] builtin: Tool.Def[] + task: TaskDef + read: ReadDef } export interface Interface { readonly ids: () => Effect.Effect readonly all: () => Effect.Effect - readonly named: { - task: Tool.Info - read: Tool.Info - } + readonly named: () => Effect.Effect<{ task: TaskDef; read: ReadDef }> readonly tools: (model: { providerID: ProviderID modelID: ModelID agent: Agent.Info }) => Effect.Effect - readonly fromID: (id: string) => Effect.Effect } export class Service extends ServiceMap.Service()("@opencode/ToolRegistry") {} @@ -183,6 +184,8 @@ export namespace ToolRegistry { ...(Flag.OPENCODE_EXPERIMENTAL_LSP_TOOL ? [tool.lsp] : []), ...(Flag.OPENCODE_EXPERIMENTAL_PLAN_MODE && Flag.OPENCODE_CLIENT === "cli" ? [tool.plan] : []), ], + task: tool.task, + read: tool.read, } }), ) @@ -192,13 +195,6 @@ export namespace ToolRegistry { return [...s.builtin, ...s.custom] as Tool.Def[] }) - const fromID: Interface["fromID"] = Effect.fn("ToolRegistry.fromID")(function* (id: string) { - const tools = yield* all() - const match = tools.find((tool) => tool.id === id) - if (!match) return yield* Effect.die(`Tool not found: ${id}`) - return match - }) - const ids: Interface["ids"] = Effect.fn("ToolRegistry.ids")(function* () { return (yield* all()).map((tool) => tool.id) }) @@ -245,7 +241,12 @@ export namespace ToolRegistry { ) }) - return Service.of({ ids, all, named: { task, read }, tools, fromID }) + const named: Interface["named"] = Effect.fn("ToolRegistry.named")(function* () { + const s = yield* InstanceState.get(state) + return { task: s.task, read: s.read } + }) + + return Service.of({ ids, all, named, tools }) }), ) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 66e1b8e78..ae347341c 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -60,6 +60,13 @@ export namespace Tool { export type InferMetadata = T extends Info ? M : T extends Effect.Effect, any, any> ? M : never + export type InferDef = + T extends Info + ? Def + : T extends Effect.Effect, any, any> + ? Def + : never + function wrap( id: string, init: (() => Promise>) | DefWithoutID, @@ -118,7 +125,7 @@ export namespace Tool { ) } - export function init(info: Info): Effect.Effect { + export function init

(info: Info): Effect.Effect> { return Effect.gen(function* () { const init = yield* Effect.promise(() => info.init()) return { diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index 5693e139d..38d7ed9f5 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -631,31 +631,22 @@ it.live( const ready = defer() const aborted = defer() const registry = yield* ToolRegistry.Service - const init = registry.named.task.init - registry.named.task.init = async () => ({ - description: "task", - parameters: z.object({ - description: z.string(), - prompt: z.string(), - subagent_type: z.string(), - task_id: z.string().optional(), - command: z.string().optional(), - }), - execute: async (_args, ctx) => { - ready.resolve() - ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) - await new Promise(() => {}) - return { - title: "", - metadata: { - sessionId: SessionID.make("task"), - model: ref, - }, - output: "", - } - }, - }) - yield* Effect.addFinalizer(() => Effect.sync(() => void (registry.named.task.init = init))) + const { task } = yield* registry.named() + const original = task.execute + task.execute = async (_args, ctx) => { + ready.resolve() + ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) + await new Promise(() => {}) + return { + title: "", + metadata: { + sessionId: SessionID.make("task"), + model: ref, + }, + output: "", + } + } + yield* Effect.addFinalizer(() => Effect.sync(() => void (task.execute = original))) const { prompt, chat } = yield* boot() const msg = yield* user(chat.id, "hello") @@ -1240,3 +1231,109 @@ unix( ), 30_000, ) + +// Abort signal propagation tests for inline tool execution + +/** Override a tool's execute to hang until aborted. Returns ready/aborted defers and a finalizer. */ +function hangUntilAborted(tool: { execute: (...args: any[]) => any }) { + const ready = defer() + const aborted = defer() + const original = tool.execute + tool.execute = async (_args: any, ctx: any) => { + ready.resolve() + ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) + await new Promise(() => {}) + return { title: "", metadata: {}, output: "" } + } + const restore = Effect.addFinalizer(() => Effect.sync(() => void (tool.execute = original))) + return { ready, aborted, restore } +} + +it.live( + "interrupt propagates abort signal to read tool via file part (text/plain)", + () => + provideTmpdirInstance( + (dir) => + Effect.gen(function* () { + const registry = yield* ToolRegistry.Service + const { read } = yield* registry.named() + const { ready, aborted, restore } = hangUntilAborted(read) + yield* restore + + const prompt = yield* SessionPrompt.Service + const sessions = yield* Session.Service + const chat = yield* sessions.create({ title: "Abort Test" }) + + const testFile = path.join(dir, "test.txt") + yield* Effect.promise(() => Bun.write(testFile, "hello world")) + + const fiber = yield* prompt + .prompt({ + sessionID: chat.id, + agent: "build", + parts: [ + { type: "text", text: "read this" }, + { type: "file", url: `file://${testFile}`, filename: "test.txt", mime: "text/plain" }, + ], + }) + .pipe(Effect.forkChild) + + yield* Effect.promise(() => ready.promise) + yield* Fiber.interrupt(fiber) + + yield* Effect.promise(() => + Promise.race([ + aborted.promise, + new Promise((_, reject) => + setTimeout(() => reject(new Error("abort signal not propagated within 2s")), 2_000), + ), + ]), + ) + }), + { git: true, config: cfg }, + ), + 30_000, +) + +it.live( + "interrupt propagates abort signal to read tool via file part (directory)", + () => + provideTmpdirInstance( + (dir) => + Effect.gen(function* () { + const registry = yield* ToolRegistry.Service + const { read } = yield* registry.named() + const { ready, aborted, restore } = hangUntilAborted(read) + yield* restore + + const prompt = yield* SessionPrompt.Service + const sessions = yield* Session.Service + const chat = yield* sessions.create({ title: "Abort Test" }) + + const fiber = yield* prompt + .prompt({ + sessionID: chat.id, + agent: "build", + parts: [ + { type: "text", text: "read this" }, + { type: "file", url: `file://${dir}`, filename: "dir", mime: "application/x-directory" }, + ], + }) + .pipe(Effect.forkChild) + + yield* Effect.promise(() => ready.promise) + yield* Fiber.interrupt(fiber) + + yield* Effect.promise(() => + Promise.race([ + aborted.promise, + new Promise((_, reject) => + setTimeout(() => reject(new Error("abort signal not propagated within 2s")), 2_000), + ), + ]), + ) + }), + { git: true, config: cfg }, + ), + 30_000, +) From 8bdcc22541e074be668093734fc3bcc4191dc705 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 8 Apr 2026 21:19:01 -0400 Subject: [PATCH 010/151] refactor(effect): inline session processor interrupt cleanup (#21593) --- packages/opencode/src/file/time.ts | 2 +- packages/opencode/src/mcp/index.ts | 2 +- packages/opencode/src/project/project.ts | 2 +- packages/opencode/src/session/compaction.ts | 32 ++- packages/opencode/src/session/processor.ts | 31 +-- packages/opencode/src/session/prompt.ts | 184 +++++++++--------- packages/opencode/src/tool/read.ts | 4 +- .../opencode/test/session/compaction.test.ts | 1 - .../test/session/processor-effect.test.ts | 6 - 9 files changed, 116 insertions(+), 148 deletions(-) diff --git a/packages/opencode/src/file/time.ts b/packages/opencode/src/file/time.ts index bd2b5f04f..d5ca3db85 100644 --- a/packages/opencode/src/file/time.ts +++ b/packages/opencode/src/file/time.ts @@ -46,7 +46,7 @@ export namespace FileTime { const disableCheck = yield* Flag.OPENCODE_DISABLE_FILETIME_CHECK const stamp = Effect.fnUntraced(function* (file: string) { - const info = yield* fsys.stat(file).pipe(Effect.catch(() => Effect.succeed(undefined))) + const info = yield* fsys.stat(file).pipe(Effect.catch(() => Effect.void)) return { read: yield* DateTime.nowAsDate, mtime: info ? Option.getOrUndefined(info.mtime)?.getTime() : undefined, diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 8c92bb6b2..45e3e2567 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -501,7 +501,7 @@ export namespace MCP { return } - const result = yield* create(key, mcp).pipe(Effect.catch(() => Effect.succeed(undefined))) + const result = yield* create(key, mcp).pipe(Effect.catch(() => Effect.void)) if (!result) return s.status[key] = result.status diff --git a/packages/opencode/src/project/project.ts b/packages/opencode/src/project/project.ts index f4b8b940d..f587f50b3 100644 --- a/packages/opencode/src/project/project.ts +++ b/packages/opencode/src/project/project.ts @@ -158,7 +158,7 @@ export namespace Project { return yield* fs.readFileString(pathSvc.join(dir, "opencode")).pipe( Effect.map((x) => x.trim()), Effect.map(ProjectID.make), - Effect.catch(() => Effect.succeed(undefined)), + Effect.catch(() => Effect.void), ) }) diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index bbdce9fd7..0961c20a6 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -253,23 +253,21 @@ When constructing the summary, try to stick to this template: sessionID: input.sessionID, model, }) - const result = yield* processor - .process({ - user: userMessage, - agent, - sessionID: input.sessionID, - tools: {}, - system: [], - messages: [ - ...modelMessages, - { - role: "user", - content: [{ type: "text", text: prompt }], - }, - ], - model, - }) - .pipe(Effect.onInterrupt(() => processor.abort())) + const result = yield* processor.process({ + user: userMessage, + agent, + sessionID: input.sessionID, + tools: {}, + system: [], + messages: [ + ...modelMessages, + { + role: "user", + content: [{ type: "text", text: prompt }], + }, + ], + model, + }) if (result === "compact") { processor.message.error = new MessageV2.ContextOverflowError({ diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 146c73f27..74c4a0cdb 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -30,7 +30,6 @@ export namespace SessionProcessor { export interface Handle { readonly message: MessageV2.Assistant readonly partFromToolCall: (toolCallID: string) => MessageV2.ToolPart | undefined - readonly abort: () => Effect.Effect readonly process: (streamInput: LLM.StreamInput) => Effect.Effect } @@ -429,19 +428,6 @@ export namespace SessionProcessor { yield* status.set(ctx.sessionID, { type: "idle" }) }) - const abort = Effect.fn("SessionProcessor.abort")(() => - Effect.gen(function* () { - if (!ctx.assistantMessage.error) { - yield* halt(new DOMException("Aborted", "AbortError")) - } - if (!ctx.assistantMessage.time.completed) { - yield* cleanup() - return - } - yield* session.updateMessage(ctx.assistantMessage) - }), - ) - const process = Effect.fn("SessionProcessor.process")(function* (streamInput: LLM.StreamInput) { log.info("process") ctx.needsCompaction = false @@ -459,7 +445,14 @@ export namespace SessionProcessor { Stream.runDrain, ) }).pipe( - Effect.onInterrupt(() => Effect.sync(() => void (aborted = true))), + Effect.onInterrupt(() => + Effect.gen(function* () { + aborted = true + if (!ctx.assistantMessage.error) { + yield* halt(new DOMException("Aborted", "AbortError")) + } + }), + ), Effect.catchCauseIf( (cause) => !Cause.hasInterruptsOnly(cause), (cause) => Effect.fail(Cause.squash(cause)), @@ -480,13 +473,10 @@ export namespace SessionProcessor { Effect.ensuring(cleanup()), ) - if (aborted && !ctx.assistantMessage.error) { - yield* abort() - } if (ctx.needsCompaction) return "compact" - if (ctx.blocked || ctx.assistantMessage.error || aborted) return "stop" + if (ctx.blocked || ctx.assistantMessage.error) return "stop" return "continue" - }).pipe(Effect.onInterrupt(() => abort().pipe(Effect.asVoid))) + }) }) return { @@ -496,7 +486,6 @@ export namespace SessionProcessor { partFromToolCall(toolCallID: string) { return ctx.toolcalls[toolCallID] }, - abort, process, } satisfies Handle }) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index a18f9e379..118206332 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -964,9 +964,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the const same = ag.model && model.providerID === ag.model.providerID && model.modelID === ag.model.modelID const full = !input.variant && ag.variant && same - ? yield* provider - .getModel(model.providerID, model.modelID) - .pipe(Effect.catch(() => Effect.succeed(undefined))) + ? yield* provider.getModel(model.providerID, model.modelID).pipe(Effect.catchDefect(() => Effect.void)) : undefined const variant = input.variant ?? (ag.variant && full?.variants?.[ag.variant] ? ag.variant : undefined) @@ -986,9 +984,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the format: input.format, } - yield* Effect.addFinalizer(() => - InstanceState.withALS(() => instruction.clear(info.id)).pipe(Effect.flatMap((x) => x)), - ) + yield* Effect.addFinalizer(() => instruction.clear(info.id)) type Draft = T extends MessageV2.Part ? Omit & { id?: string } : never const assign = (part: Draft): MessageV2.Part => ({ @@ -1459,110 +1455,104 @@ NOTE: At any point in time through this workflow you should feel free to ask the model, }) - const outcome: "break" | "continue" = yield* Effect.onExit( - Effect.gen(function* () { - const lastUserMsg = msgs.findLast((m) => m.info.role === "user") - const bypassAgentCheck = lastUserMsg?.parts.some((p) => p.type === "agent") ?? false + const outcome: "break" | "continue" = yield* Effect.gen(function* () { + const lastUserMsg = msgs.findLast((m) => m.info.role === "user") + const bypassAgentCheck = lastUserMsg?.parts.some((p) => p.type === "agent") ?? false - const tools = yield* resolveTools({ - agent, - session, - model, - tools: lastUser.tools, - processor: handle, - bypassAgentCheck, - messages: msgs, + const tools = yield* resolveTools({ + agent, + session, + model, + tools: lastUser.tools, + processor: handle, + bypassAgentCheck, + messages: msgs, + }) + + if (lastUser.format?.type === "json_schema") { + tools["StructuredOutput"] = createStructuredOutputTool({ + schema: lastUser.format.schema, + onSuccess(output) { + structured = output + }, }) + } - if (lastUser.format?.type === "json_schema") { - tools["StructuredOutput"] = createStructuredOutputTool({ - schema: lastUser.format.schema, - onSuccess(output) { - structured = output - }, - }) - } + if (step === 1) SessionSummary.summarize({ sessionID, messageID: lastUser.id }) - if (step === 1) SessionSummary.summarize({ sessionID, messageID: lastUser.id }) - - if (step > 1 && lastFinished) { - for (const m of msgs) { - if (m.info.role !== "user" || m.info.id <= lastFinished.id) continue - for (const p of m.parts) { - if (p.type !== "text" || p.ignored || p.synthetic) continue - if (!p.text.trim()) continue - p.text = [ - "", - "The user sent the following message:", - p.text, - "", - "Please address this message and continue with your tasks.", - "", - ].join("\n") - } + if (step > 1 && lastFinished) { + for (const m of msgs) { + if (m.info.role !== "user" || m.info.id <= lastFinished.id) continue + for (const p of m.parts) { + if (p.type !== "text" || p.ignored || p.synthetic) continue + if (!p.text.trim()) continue + p.text = [ + "", + "The user sent the following message:", + p.text, + "", + "Please address this message and continue with your tasks.", + "", + ].join("\n") } } + } - yield* plugin.trigger("experimental.chat.messages.transform", {}, { messages: msgs }) + yield* plugin.trigger("experimental.chat.messages.transform", {}, { messages: msgs }) - const [skills, env, instructions, modelMsgs] = yield* Effect.all([ - Effect.promise(() => SystemPrompt.skills(agent)), - Effect.promise(() => SystemPrompt.environment(model)), - instruction.system().pipe(Effect.orDie), - Effect.promise(() => MessageV2.toModelMessages(msgs, model)), - ]) - const system = [...env, ...(skills ? [skills] : []), ...instructions] - const format = lastUser.format ?? { type: "text" as const } - if (format.type === "json_schema") system.push(STRUCTURED_OUTPUT_SYSTEM_PROMPT) - const result = yield* handle.process({ - user: lastUser, - agent, - permission: session.permission, - sessionID, - parentSessionID: session.parentID, - system, - messages: [...modelMsgs, ...(isLastStep ? [{ role: "assistant" as const, content: MAX_STEPS }] : [])], - tools, - model, - toolChoice: format.type === "json_schema" ? "required" : undefined, - }) + const [skills, env, instructions, modelMsgs] = yield* Effect.all([ + Effect.promise(() => SystemPrompt.skills(agent)), + Effect.promise(() => SystemPrompt.environment(model)), + instruction.system().pipe(Effect.orDie), + Effect.promise(() => MessageV2.toModelMessages(msgs, model)), + ]) + const system = [...env, ...(skills ? [skills] : []), ...instructions] + const format = lastUser.format ?? { type: "text" as const } + if (format.type === "json_schema") system.push(STRUCTURED_OUTPUT_SYSTEM_PROMPT) + const result = yield* handle.process({ + user: lastUser, + agent, + permission: session.permission, + sessionID, + parentSessionID: session.parentID, + system, + messages: [...modelMsgs, ...(isLastStep ? [{ role: "assistant" as const, content: MAX_STEPS }] : [])], + tools, + model, + toolChoice: format.type === "json_schema" ? "required" : undefined, + }) - if (structured !== undefined) { - handle.message.structured = structured - handle.message.finish = handle.message.finish ?? "stop" + if (structured !== undefined) { + handle.message.structured = structured + handle.message.finish = handle.message.finish ?? "stop" + yield* sessions.updateMessage(handle.message) + return "break" as const + } + + const finished = handle.message.finish && !["tool-calls", "unknown"].includes(handle.message.finish) + if (finished && !handle.message.error) { + if (format.type === "json_schema") { + handle.message.error = new MessageV2.StructuredOutputError({ + message: "Model did not produce structured output", + retries: 0, + }).toObject() yield* sessions.updateMessage(handle.message) return "break" as const } + } - const finished = handle.message.finish && !["tool-calls", "unknown"].includes(handle.message.finish) - if (finished && !handle.message.error) { - if (format.type === "json_schema") { - handle.message.error = new MessageV2.StructuredOutputError({ - message: "Model did not produce structured output", - retries: 0, - }).toObject() - yield* sessions.updateMessage(handle.message) - return "break" as const - } - } - - if (result === "stop") return "break" as const - if (result === "compact") { - yield* compaction.create({ - sessionID, - agent: lastUser.agent, - model: lastUser.model, - auto: true, - overflow: !handle.message.finish, - }) - } - return "continue" as const - }), - Effect.fnUntraced(function* (exit) { - if (Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)) yield* handle.abort() - yield* InstanceState.withALS(() => instruction.clear(handle.message.id)).pipe(Effect.flatMap((x) => x)) - }), - ) + if (result === "stop") return "break" as const + if (result === "compact") { + yield* compaction.create({ + sessionID, + agent: lastUser.agent, + model: lastUser.model, + auto: true, + overflow: !handle.message.finish, + }) + } + return "continue" as const + }).pipe(Effect.ensuring(instruction.clear(handle.message.id))) if (outcome === "break") break continue } diff --git a/packages/opencode/src/tool/read.ts b/packages/opencode/src/tool/read.ts index 0b44c7ad5..f963b415b 100644 --- a/packages/opencode/src/tool/read.ts +++ b/packages/opencode/src/tool/read.ts @@ -67,9 +67,7 @@ export const ReadTool = Tool.defineEffect( if (item.type === "directory") return item.name + "/" if (item.type !== "symlink") return item.name - const target = yield* fs - .stat(path.join(filepath, item.name)) - .pipe(Effect.catch(() => Effect.succeed(undefined))) + const target = yield* fs.stat(path.join(filepath, item.name)).pipe(Effect.catch(() => Effect.void)) if (target?.type === "Directory") return item.name + "/" return item.name }), diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index 799bb3e2a..c37371d9f 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -139,7 +139,6 @@ function fake( get message() { return msg }, - abort: Effect.fn("TestSessionProcessor.abort")(() => Effect.void), partFromToolCall() { return { id: PartID.ascending(), diff --git a/packages/opencode/test/session/processor-effect.test.ts b/packages/opencode/test/session/processor-effect.test.ts index 0fc25c1a6..86149272b 100644 --- a/packages/opencode/test/session/processor-effect.test.ts +++ b/packages/opencode/test/session/processor-effect.test.ts @@ -593,9 +593,6 @@ it.live("session.processor effect tests mark pending tools as aborted on cleanup yield* Fiber.interrupt(run) const exit = yield* Fiber.await(run) - if (Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)) { - yield* handle.abort() - } const parts = MessageV2.parts(msg.id) const call = parts.find((part): part is MessageV2.ToolPart => part.type === "tool") @@ -665,9 +662,6 @@ it.live("session.processor effect tests record aborted errors and idle state", ( yield* Fiber.interrupt(run) const exit = yield* Fiber.await(run) - if (Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)) { - yield* handle.abort() - } yield* Effect.promise(() => seen.promise) const stored = MessageV2.get({ sessionID: chat.id, messageID: msg.id }) const state = yield* sts.get(chat.id) From cd8e8a99281ed083b11cc23a6fa146011027e44e Mon Sep 17 00:00:00 2001 From: Vladimir Glafirov Date: Thu, 9 Apr 2026 03:39:33 +0200 Subject: [PATCH 011/151] feat(llm): integrate GitLab DWS tool approval with permission system (#19955) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> --- bun.lock | 4 +- packages/opencode/package.json | 2 +- packages/opencode/src/provider/provider.ts | 1 + packages/opencode/src/session/llm.ts | 56 +++++++++++++++++++++ packages/opencode/src/session/message-v2.ts | 17 +++++-- packages/opencode/src/session/processor.ts | 5 +- packages/opencode/src/session/prompt.ts | 5 +- 7 files changed, 80 insertions(+), 10 deletions(-) diff --git a/bun.lock b/bun.lock index 7cb157836..037d359b7 100644 --- a/bun.lock +++ b/bun.lock @@ -367,7 +367,7 @@ "drizzle-orm": "catalog:", "effect": "catalog:", "fuzzysort": "3.1.0", - "gitlab-ai-provider": "6.0.0", + "gitlab-ai-provider": "6.4.2", "glob": "13.0.5", "google-auth-library": "10.5.0", "gray-matter": "4.0.3", @@ -3165,7 +3165,7 @@ "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], - "gitlab-ai-provider": ["gitlab-ai-provider@6.0.0", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=3.0.0", "@ai-sdk/provider-utils": ">=4.0.0" } }, "sha512-683GcJdrer/GhnljkbVcGsndCEhvGB8f9fUdCxQBlkuyt8rzf0G9DpSh+iMBYp9HpcSvYmYG0Qv5ks9dLrNxwQ=="], + "gitlab-ai-provider": ["gitlab-ai-provider@6.4.2", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=3.0.0", "@ai-sdk/provider-utils": ">=4.0.0" } }, "sha512-Wyw6uslCuipBOr/NYwAtpgXEUJj68iJY5aekad2DjePN99JetKVQBqkLgAy9PZp2EA4OuscfRQu9qKIBN/evNw=="], "glob": ["glob@13.0.5", "", { "dependencies": { "minimatch": "^10.2.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" } }, "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw=="], diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 89496361a..974f6799a 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -137,7 +137,7 @@ "drizzle-orm": "catalog:", "effect": "catalog:", "fuzzysort": "3.1.0", - "gitlab-ai-provider": "6.0.0", + "gitlab-ai-provider": "6.4.2", "glob": "13.0.5", "google-auth-library": "10.5.0", "gray-matter": "4.0.3", diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 9febf634f..8d5c9f2ce 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -574,6 +574,7 @@ export namespace Provider { const sdkModelID = isWorkflowModel(modelID) ? modelID : "duo-workflow" const model = sdk.workflowChat(sdkModelID, { featureFlags, + workflowDefinition: options?.workflowDefinition as string | undefined, }) if (workflowRef) { model.selectedModelRef = workflowRef diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index c9a62c864..d55424f91 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -15,6 +15,10 @@ import { Plugin } from "@/plugin" import { SystemPrompt } from "./system" import { Flag } from "@/flag/flag" import { Permission } from "@/permission" +import { PermissionID } from "@/permission/schema" +import { Bus } from "@/bus" +import { Wildcard } from "@/util/wildcard" +import { SessionID } from "@/session/schema" import { Auth } from "@/auth" import { Installation } from "@/installation" @@ -231,6 +235,7 @@ export namespace LLM { // and results sent back over the WebSocket. if (language instanceof GitLabWorkflowLanguageModel) { const workflowModel = language + workflowModel.sessionID = input.sessionID workflowModel.systemPrompt = system.join("\n") workflowModel.toolExecutor = async (toolName, argsJson, _requestID) => { const t = tools[toolName] @@ -253,6 +258,57 @@ export namespace LLM { return { result: "", error: e.message ?? String(e) } } } + + const ruleset = Permission.merge(input.agent.permission ?? [], input.permission ?? []) + workflowModel.sessionPreapprovedTools = Object.keys(tools).filter((name) => { + const match = ruleset.findLast((rule) => Wildcard.match(name, rule.permission)) + return !match || match.action !== "ask" + }) + + const approvedToolsForSession = new Set() + workflowModel.approvalHandler = Instance.bind(async (approvalTools) => { + const uniqueNames = [...new Set(approvalTools.map((t: { name: string }) => t.name))] as string[] + // Auto-approve tools that were already approved in this session + // (prevents infinite approval loops for server-side MCP tools) + if (uniqueNames.every((name) => approvedToolsForSession.has(name))) { + return { approved: true } + } + + const id = PermissionID.ascending() + let reply: Permission.Reply | undefined + let unsub: (() => void) | undefined + try { + unsub = Bus.subscribe(Permission.Event.Replied, (evt) => { + if (evt.properties.requestID === id) reply = evt.properties.reply + }) + const toolPatterns = approvalTools.map((t: { name: string; args: string }) => { + try { + const parsed = JSON.parse(t.args) as Record + const title = (parsed?.title ?? parsed?.name ?? "") as string + return title ? `${t.name}: ${title}` : t.name + } catch { + return t.name + } + }) + const uniquePatterns = [...new Set(toolPatterns)] as string[] + await Permission.ask({ + id, + sessionID: SessionID.make(input.sessionID), + permission: "workflow_tool_approval", + patterns: uniquePatterns, + metadata: { tools: approvalTools }, + always: uniquePatterns, + ruleset: [], + }) + for (const name of uniqueNames) approvedToolsForSession.add(name) + workflowModel.sessionPreapprovedTools = [...workflowModel.sessionPreapprovedTools, ...uniqueNames] + return { approved: true } + } catch { + return { approved: false } + } finally { + unsub?.() + } + }) } return streamText({ diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index e8aab62d8..78604fbf7 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -573,6 +573,12 @@ export namespace MessageV2 { })) } + function providerMeta(metadata: Record | undefined) { + if (!metadata) return undefined + const { providerExecuted: _, ...rest } = metadata + return Object.keys(rest).length > 0 ? rest : undefined + } + export const toModelMessagesEffect = Effect.fnUntraced(function* ( input: WithParts[], model: Provider.Model, @@ -741,7 +747,8 @@ export namespace MessageV2 { toolCallId: part.callID, input: part.state.input, output, - ...(differentModel ? {} : { callProviderMetadata: part.metadata }), + ...(part.metadata?.providerExecuted ? { providerExecuted: true } : {}), + ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), }) } if (part.state.status === "error") @@ -751,10 +758,9 @@ export namespace MessageV2 { toolCallId: part.callID, input: part.state.input, errorText: part.state.error, - ...(differentModel ? {} : { callProviderMetadata: part.metadata }), + ...(part.metadata?.providerExecuted ? { providerExecuted: true } : {}), + ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), }) - // Handle pending/running tool calls to prevent dangling tool_use blocks - // Anthropic/Claude APIs require every tool_use to have a corresponding tool_result if (part.state.status === "pending" || part.state.status === "running") assistantMessage.parts.push({ type: ("tool-" + part.tool) as `tool-${string}`, @@ -762,7 +768,8 @@ export namespace MessageV2 { toolCallId: part.callID, input: part.state.input, errorText: "[Tool execution was interrupted]", - ...(differentModel ? {} : { callProviderMetadata: part.metadata }), + ...(part.metadata?.providerExecuted ? { providerExecuted: true } : {}), + ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), }) } if (part.type === "reasoning") { diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 74c4a0cdb..8e4225fed 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -161,6 +161,7 @@ export namespace SessionProcessor { tool: value.toolName, callID: value.id, state: { status: "pending", input: {}, raw: "" }, + metadata: value.providerExecuted ? { providerExecuted: true } : undefined, } satisfies MessageV2.ToolPart) return @@ -180,7 +181,9 @@ export namespace SessionProcessor { ...match, tool: value.toolName, state: { status: "running", input: value.input, time: { start: Date.now() } }, - metadata: value.providerMetadata, + metadata: match.metadata?.providerExecuted + ? { ...value.providerMetadata, providerExecuted: true } + : value.providerMetadata, } satisfies MessageV2.ToolPart) const parts = MessageV2.parts(ctx.assistantMessage.id) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 118206332..e9bd5bcd5 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1371,7 +1371,10 @@ NOTE: At any point in time through this workflow you should feel free to ask the ) // Some providers return "stop" even when the assistant message contains tool calls. // Keep the loop running so tool results can be sent back to the model. - const hasToolCalls = lastAssistantMsg?.parts.some((part) => part.type === "tool") ?? false + // Skip provider-executed tool parts — those were fully handled within the + // provider's stream (e.g. DWS Agent Platform) and don't need a re-loop. + const hasToolCalls = + lastAssistantMsg?.parts.some((part) => part.type === "tool" && !part.metadata?.providerExecuted) ?? false if ( lastAssistant?.finish && From d82b163e563de59b99b426bb58b8eea04cf26202 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Thu, 9 Apr 2026 02:27:34 +0000 Subject: [PATCH 012/151] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index f592339c2..2ae13d857 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-85wpU1oCWbthPleNIOj5d5AOuuYZ6rM7gMLZR6YJ2WU=", - "aarch64-linux": "sha256-C3A56SDQGJquCpIRj2JhIzr4A7N4cc9lxtEjl8bXDeM=", - "aarch64-darwin": "sha256-/Ij3qhGRrcLlMfl9uEacDNnGK5URxhctuQFBW4Njrog=", - "x86_64-darwin": "sha256-10sOPuN4eZ75orw4FI8ztCq1+AKS2e8aAfg3Z6Yn56w=" + "x86_64-linux": "sha256-gFCalMaj99Q6xNVwQ1Y9Tfpnv2tr87CqqTB6iwF0QHw=", + "aarch64-linux": "sha256-/av+Q6aJftdApHkE13nnfWeCWHskShUIme3D0L8VmQo=", + "aarch64-darwin": "sha256-zCE15ciV9V1jkbCI09ls8MCgWas8WrLd6IParsZ3leI=", + "x86_64-darwin": "sha256-Q+hESX7HZqQ2eOMCFH9yiktfcJD3axNnZFsSQBiLTsc=" } } From 9c1c061b84cfc4b132faa9dc2e0de3a1e34d87dc Mon Sep 17 00:00:00 2001 From: Cho HyeonJong Date: Thu, 9 Apr 2026 13:10:06 +0900 Subject: [PATCH 013/151] fix(lsp): remove CMakeLists.txt and Makefile from clangd root markers (#21466) --- packages/opencode/src/lsp/index.ts | 2 +- packages/opencode/src/lsp/server.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts index de87e568f..33fd209cc 100644 --- a/packages/opencode/src/lsp/index.ts +++ b/packages/opencode/src/lsp/index.ts @@ -245,7 +245,7 @@ export namespace LSP { }) if (!handle) return undefined - log.info("spawned lsp server", { serverID: server.id }) + log.info("spawned lsp server", { serverID: server.id, root }) const client = await LSPClient.create({ serverID: server.id, diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index 7421ed543..f50c858e9 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -867,7 +867,7 @@ export namespace LSPServer { export const Clangd: Info = { id: "clangd", - root: NearestRoot(["compile_commands.json", "compile_flags.txt", ".clangd", "CMakeLists.txt", "Makefile"]), + root: NearestRoot(["compile_commands.json", "compile_flags.txt", ".clangd"]), extensions: [".c", ".cpp", ".cc", ".cxx", ".c++", ".h", ".hpp", ".hh", ".hxx", ".h++"], async spawn(root) { const args = ["--background-index", "--clang-tidy"] From ee23043d644d7b87c2834b09e4d1b372ae820611 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Thu, 9 Apr 2026 13:18:46 +0800 Subject: [PATCH 014/151] Remove CLI from electron app (#17803) Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com> --- bun.lock | 40 ++- package.json | 3 +- packages/app/src/components/terminal.tsx | 1 + .../electron-builder.config.ts | 5 - .../desktop-electron/electron.vite.config.ts | 31 ++ packages/desktop-electron/package.json | 33 +- packages/desktop-electron/scripts/prebuild.ts | 9 + packages/desktop-electron/scripts/predev.ts | 14 +- packages/desktop-electron/scripts/prepare.ts | 18 +- packages/desktop-electron/src/main/cli.ts | 283 ------------------ packages/desktop-electron/src/main/env.d.ts | 22 ++ packages/desktop-electron/src/main/index.ts | 32 +- packages/desktop-electron/src/main/ipc.ts | 2 - packages/desktop-electron/src/main/menu.ts | 5 - packages/desktop-electron/src/main/server.ts | 46 ++- .../desktop-electron/src/main/shell-env.ts | 26 +- packages/opencode/package.json | 2 +- packages/opencode/script/build-node.ts | 21 +- packages/opencode/src/cli/cmd/db.ts | 3 +- packages/opencode/src/cli/cmd/run.ts | 4 +- packages/opencode/src/cli/cmd/tui/worker.ts | 2 +- packages/opencode/src/index.ts | 3 +- packages/opencode/src/node.ts | 5 + packages/opencode/src/plugin/index.ts | 2 +- .../src/provider/models-snapshot.d.ts | 2 + .../opencode/src/provider/models-snapshot.js | 3 + packages/opencode/src/server/instance.ts | 13 +- packages/opencode/src/server/proxy.ts | 19 +- packages/opencode/src/server/router.ts | 2 +- .../opencode/src/server/routes/session.ts | 20 +- packages/opencode/src/server/server.ts | 9 +- packages/opencode/src/shell/shell.ts | 6 +- .../opencode/src/storage/json-migration.ts | 20 +- .../test/server/project-init-git.test.ts | 4 +- .../test/server/session-actions.test.ts | 4 +- .../test/server/session-messages.test.ts | 8 +- .../test/server/session-select.test.ts | 6 +- .../test/storage/json-migration.test.ts | 77 ++--- 38 files changed, 284 insertions(+), 521 deletions(-) create mode 100644 packages/desktop-electron/scripts/prebuild.ts delete mode 100644 packages/desktop-electron/src/main/cli.ts create mode 100644 packages/opencode/src/provider/models-snapshot.d.ts create mode 100644 packages/opencode/src/provider/models-snapshot.js diff --git a/bun.lock b/bun.lock index 037d359b7..787161df0 100644 --- a/bun.lock +++ b/bun.lock @@ -225,12 +225,6 @@ "name": "@opencode-ai/desktop-electron", "version": "1.4.0", "dependencies": { - "@opencode-ai/app": "workspace:*", - "@opencode-ai/ui": "workspace:*", - "@solid-primitives/i18n": "2.2.1", - "@solid-primitives/storage": "catalog:", - "@solidjs/meta": "catalog:", - "@solidjs/router": "0.15.4", "effect": "catalog:", "electron-context-menu": "4.1.2", "electron-log": "^5", @@ -238,19 +232,36 @@ "electron-updater": "^6", "electron-window-state": "^5.0.3", "marked": "^15", - "solid-js": "catalog:", - "tree-kill": "^1.2.2", }, "devDependencies": { "@actions/artifact": "4.0.0", + "@lydell/node-pty": "catalog:", + "@opencode-ai/app": "workspace:*", + "@opencode-ai/ui": "workspace:*", + "@solid-primitives/i18n": "2.2.1", + "@solid-primitives/storage": "catalog:", + "@solidjs/meta": "catalog:", + "@solidjs/router": "0.15.4", "@types/bun": "catalog:", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", + "@valibot/to-json-schema": "1.6.0", "electron": "40.4.1", "electron-builder": "^26", "electron-vite": "^5", + "solid-js": "catalog:", + "sury": "11.0.0-alpha.4", "typescript": "~5.6.2", "vite": "catalog:", + "zod-openapi": "5.4.6", + }, + "optionalDependencies": { + "@lydell/node-pty-darwin-arm64": "1.2.0-beta.10", + "@lydell/node-pty-darwin-x64": "1.2.0-beta.10", + "@lydell/node-pty-linux-arm64": "1.2.0-beta.10", + "@lydell/node-pty-linux-x64": "1.2.0-beta.10", + "@lydell/node-pty-win32-arm64": "1.2.0-beta.10", + "@lydell/node-pty-win32-x64": "1.2.0-beta.10", }, }, "packages/enterprise": { @@ -336,7 +347,7 @@ "@hono/node-ws": "1.3.0", "@hono/standard-validator": "0.1.5", "@hono/zod-validator": "catalog:", - "@lydell/node-pty": "1.2.0-beta.10", + "@lydell/node-pty": "catalog:", "@modelcontextprotocol/sdk": "1.27.1", "@npmcli/arborist": "9.4.0", "@octokit/graphql": "9.0.2", @@ -633,6 +644,7 @@ "@effect/platform-node": "4.0.0-beta.43", "@hono/zod-validator": "0.4.2", "@kobalte/core": "0.13.11", + "@lydell/node-pty": "1.2.0-beta.10", "@octokit/rest": "22.0.0", "@openauthjs/openauth": "0.0.0-20250322224806", "@pierre/diffs": "1.1.0-beta.18", @@ -2313,6 +2325,8 @@ "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + "@valibot/to-json-schema": ["@valibot/to-json-schema@1.6.0", "", { "peerDependencies": { "valibot": "^1.3.0" } }, "sha512-d6rYyK5KVa2XdqamWgZ4/Nr+cXhxjy7lmpe6Iajw15J/jmU+gyxl2IEd1Otg1d7Rl3gOQL5reulnSypzBtYy1A=="], + "@vercel/oidc": ["@vercel/oidc@3.1.0", "", {}, "sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w=="], "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], @@ -4577,6 +4591,8 @@ "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + "sury": ["sury@11.0.0-alpha.4", "", { "peerDependencies": { "rescript": "12.x" }, "optionalPeers": ["rescript"] }, "sha512-oeG/GJWZvQCKtGPpLbu0yCZudfr5LxycDo5kh7SJmKHDPCsEPJssIZL2Eb4Tl7g9aPEvIDuRrkS+L0pybsMEMA=="], + "system-architecture": ["system-architecture@0.1.0", "", {}, "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA=="], "tailwindcss": ["tailwindcss@4.1.11", "", {}, "sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA=="], @@ -4655,8 +4671,6 @@ "traverse": ["traverse@0.3.9", "", {}, "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="], - "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], - "tree-sitter-bash": ["tree-sitter-bash@0.25.0", "", { "dependencies": { "node-addon-api": "^8.2.1", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-gZtlj9+qFS81qKxpLfD6H0UssQ3QBc/F0nKkPsiFDyfQF2YBqYvglFJUzchrPpVhZe9kLZTrJ9n2J6lmka69Vg=="], "tree-sitter-powershell": ["tree-sitter-powershell@0.25.10", "", { "dependencies": { "node-addon-api": "^7.1.0", "node-gyp-build": "^4.8.0" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-bEt8QoySpGFnU3aa8WedQyNMaN6aTwy/WUbvIVt0JSKF+BbJoSHNHu+wCbhj7xLMsfB0AuffmiJm+B8gzva8Lg=="], @@ -4811,6 +4825,8 @@ "uuid": ["uuid@13.0.0", "", { "bin": { "uuid": "dist-node/bin/uuid" } }, "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w=="], + "valibot": ["valibot@1.3.1", "", { "peerDependencies": { "typescript": ">=5" }, "optionalPeers": ["typescript"] }, "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg=="], + "validate-npm-package-name": ["validate-npm-package-name@7.0.2", "", {}, "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A=="], "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], @@ -4967,6 +4983,8 @@ "zod": ["zod@4.1.8", "", {}, "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ=="], + "zod-openapi": ["zod-openapi@5.4.6", "", { "peerDependencies": { "zod": "^3.25.74 || ^4.0.0" } }, "sha512-P2jsOOBAq/6hCwUsMCjUATZ8szkMsV5VAwZENfyxp2Hc/XPJQpVwAgevWZc65xZauCwWB9LAn7zYeiCJFAEL+A=="], + "zod-to-json-schema": ["zod-to-json-schema@3.24.5", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="], "zod-to-ts": ["zod-to-ts@1.2.0", "", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="], diff --git a/package.json b/package.json index d4713f95d..c0d3a568f 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,8 @@ "@solidjs/router": "0.15.4", "@solidjs/start": "https://pkg.pr.new/@solidjs/start@dfb2020", "solid-js": "1.9.10", - "vite-plugin-solid": "2.11.10" + "vite-plugin-solid": "2.11.10", + "@lydell/node-pty": "1.2.0-beta.10" } }, "devDependencies": { diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index 31c046c4f..c8430d8bb 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -521,6 +521,7 @@ export const Terminal = (props: TerminalProps) => { next.searchParams.set("cursor", String(seek)) next.protocol = next.protocol === "https:" ? "wss:" : "ws:" if (!sameOrigin && password) { + next.searchParams.set("auth_token", btoa(`${username}:${password}`)) // For same-origin requests, let the browser reuse the page's existing auth. next.username = username next.password = password diff --git a/packages/desktop-electron/electron-builder.config.ts b/packages/desktop-electron/electron-builder.config.ts index 70441d8d7..b3fcd1708 100644 --- a/packages/desktop-electron/electron-builder.config.ts +++ b/packages/desktop-electron/electron-builder.config.ts @@ -34,11 +34,6 @@ const getBase = (): Configuration => ({ }, files: ["out/**/*", "resources/**/*"], extraResources: [ - { - from: "resources/", - to: "", - filter: ["opencode-cli*"], - }, { from: "native/", to: "native/", diff --git a/packages/desktop-electron/electron.vite.config.ts b/packages/desktop-electron/electron.vite.config.ts index 6903d5ed2..e2b296a3e 100644 --- a/packages/desktop-electron/electron.vite.config.ts +++ b/packages/desktop-electron/electron.vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from "electron-vite" import appPlugin from "@opencode-ai/app/vite" +import * as fs from "node:fs/promises" const channel = (() => { const raw = process.env.OPENCODE_CHANNEL @@ -7,6 +8,10 @@ const channel = (() => { return "dev" })() +const OPENCODE_SERVER_DIST = "../opencode/dist/node" + +const nodePtyPkg = `@lydell/node-pty-${process.platform}-${process.arch}` + export default defineConfig({ main: { define: { @@ -16,7 +21,33 @@ export default defineConfig({ rollupOptions: { input: { index: "src/main/index.ts" }, }, + externalizeDeps: { include: [nodePtyPkg] }, }, + plugins: [ + { + name: "opencode:node-pty-narrower", + enforce: "pre", + resolveId(s) { + if (s === "@lydell/node-pty") return nodePtyPkg + }, + }, + { + name: "opencode:virtual-server-module", + enforce: "pre", + resolveId(id) { + if (id === "virtual:opencode-server") return this.resolve(`${OPENCODE_SERVER_DIST}/node.js`) + }, + }, + { + name: "opencode:copy-server-assets", + async writeBundle() { + for (const l of await fs.readdir(OPENCODE_SERVER_DIST)) { + if (!l.endsWith(".wasm")) continue + await fs.writeFile(`./out/main/chunks/${l}`, await fs.readFile(`${OPENCODE_SERVER_DIST}/${l}`)) + } + }, + }, + ], }, preload: { build: { diff --git a/packages/desktop-electron/package.json b/packages/desktop-electron/package.json index 66d2144d5..d39331b36 100644 --- a/packages/desktop-electron/package.json +++ b/packages/desktop-electron/package.json @@ -13,7 +13,7 @@ "typecheck": "tsgo -b", "predev": "bun ./scripts/predev.ts", "dev": "electron-vite dev", - "prebuild": "bun ./scripts/copy-icons.ts", + "prebuild": "bun ./scripts/prebuild.ts", "build": "electron-vite build", "preview": "electron-vite preview", "package": "electron-builder --config electron-builder.config.ts", @@ -24,31 +24,42 @@ }, "main": "./out/main/index.js", "dependencies": { - "@opencode-ai/app": "workspace:*", - "@opencode-ai/ui": "workspace:*", - "@solid-primitives/i18n": "2.2.1", - "@solid-primitives/storage": "catalog:", - "@solidjs/meta": "catalog:", - "@solidjs/router": "0.15.4", "effect": "catalog:", "electron-context-menu": "4.1.2", "electron-log": "^5", "electron-store": "^10", "electron-updater": "^6", "electron-window-state": "^5.0.3", - "marked": "^15", - "solid-js": "catalog:", - "tree-kill": "^1.2.2" + "marked": "^15" }, "devDependencies": { "@actions/artifact": "4.0.0", + "@lydell/node-pty": "catalog:", + "@opencode-ai/app": "workspace:*", + "@opencode-ai/ui": "workspace:*", + "@solid-primitives/i18n": "2.2.1", + "@solid-primitives/storage": "catalog:", + "@solidjs/meta": "catalog:", + "@solidjs/router": "0.15.4", "@types/bun": "catalog:", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", + "@valibot/to-json-schema": "1.6.0", "electron": "40.4.1", "electron-builder": "^26", "electron-vite": "^5", + "solid-js": "catalog:", + "sury": "11.0.0-alpha.4", "typescript": "~5.6.2", - "vite": "catalog:" + "vite": "catalog:", + "zod-openapi": "5.4.6" + }, + "optionalDependencies": { + "@lydell/node-pty-darwin-arm64": "1.2.0-beta.10", + "@lydell/node-pty-darwin-x64": "1.2.0-beta.10", + "@lydell/node-pty-linux-arm64": "1.2.0-beta.10", + "@lydell/node-pty-linux-x64": "1.2.0-beta.10", + "@lydell/node-pty-win32-arm64": "1.2.0-beta.10", + "@lydell/node-pty-win32-x64": "1.2.0-beta.10" } } diff --git a/packages/desktop-electron/scripts/prebuild.ts b/packages/desktop-electron/scripts/prebuild.ts new file mode 100644 index 000000000..46a2475ea --- /dev/null +++ b/packages/desktop-electron/scripts/prebuild.ts @@ -0,0 +1,9 @@ +#!/usr/bin/env bun +import { $ } from "bun" + +import { resolveChannel } from "./utils" + +const channel = resolveChannel() +await $`bun ./scripts/copy-icons.ts ${channel}` + +await $`cd ../opencode && bun script/build-node.ts` diff --git a/packages/desktop-electron/scripts/predev.ts b/packages/desktop-electron/scripts/predev.ts index a688d0e7f..37c31d7ee 100644 --- a/packages/desktop-electron/scripts/predev.ts +++ b/packages/desktop-electron/scripts/predev.ts @@ -1,17 +1,5 @@ import { $ } from "bun" -import { copyBinaryToSidecarFolder, getCurrentSidecar, windowsify } from "./utils" - await $`bun ./scripts/copy-icons.ts ${process.env.OPENCODE_CHANNEL ?? "dev"}` -const RUST_TARGET = Bun.env.RUST_TARGET - -const sidecarConfig = getCurrentSidecar(RUST_TARGET) - -const binaryPath = windowsify(`../opencode/dist/${sidecarConfig.ocBinary}/bin/opencode`) - -await (sidecarConfig.ocBinary.includes("-baseline") - ? $`cd ../opencode && bun run build --single --baseline` - : $`cd ../opencode && bun run build --single`) - -await copyBinaryToSidecarFolder(binaryPath, RUST_TARGET) +await $`cd ../opencode && bun script/build-node.ts` diff --git a/packages/desktop-electron/scripts/prepare.ts b/packages/desktop-electron/scripts/prepare.ts index 3704b2e61..0dfd5a35c 100755 --- a/packages/desktop-electron/scripts/prepare.ts +++ b/packages/desktop-electron/scripts/prepare.ts @@ -1,25 +1,9 @@ #!/usr/bin/env bun -import { $ } from "bun" - import { Script } from "@opencode-ai/script" -import { copyBinaryToSidecarFolder, getCurrentSidecar, resolveChannel, windowsify } from "./utils" -const channel = resolveChannel() -await $`bun ./scripts/copy-icons.ts ${channel}` +await import("./prebuild") const pkg = await Bun.file("./package.json").json() pkg.version = Script.version await Bun.write("./package.json", JSON.stringify(pkg, null, 2) + "\n") console.log(`Updated package.json version to ${Script.version}`) - -const sidecarConfig = getCurrentSidecar() -const artifact = process.env.OPENCODE_CLI_ARTIFACT ?? "opencode-cli" - -const dir = "resources/opencode-binaries" - -await $`mkdir -p ${dir}` -await $`gh run download ${process.env.GITHUB_RUN_ID} -n ${artifact}`.cwd(dir) - -await copyBinaryToSidecarFolder(windowsify(`${dir}/${sidecarConfig.ocBinary}/bin/opencode`)) - -await $`rm -rf ${dir}` diff --git a/packages/desktop-electron/src/main/cli.ts b/packages/desktop-electron/src/main/cli.ts deleted file mode 100644 index ebaf89fda..000000000 --- a/packages/desktop-electron/src/main/cli.ts +++ /dev/null @@ -1,283 +0,0 @@ -import { execFileSync, spawn } from "node:child_process" -import { EventEmitter } from "node:events" -import { chmodSync, readFileSync, unlinkSync, writeFileSync } from "node:fs" -import { tmpdir } from "node:os" -import { dirname, join } from "node:path" -import readline from "node:readline" -import { fileURLToPath } from "node:url" -import { app } from "electron" -import treeKill from "tree-kill" - -import { WSL_ENABLED_KEY } from "./constants" -import { getUserShell, loadShellEnv, mergeShellEnv } from "./shell-env" -import { store } from "./store" - -const CLI_INSTALL_DIR = ".opencode/bin" -const CLI_BINARY_NAME = "opencode" - -export type ServerConfig = { - hostname?: string - port?: number -} - -export type Config = { - server?: ServerConfig -} - -export type TerminatedPayload = { code: number | null; signal: number | null } - -export type CommandEvent = - | { type: "stdout"; value: string } - | { type: "stderr"; value: string } - | { type: "error"; value: string } - | { type: "terminated"; value: TerminatedPayload } - | { type: "sqlite"; value: SqliteMigrationProgress } - -export type SqliteMigrationProgress = { type: "InProgress"; value: number } | { type: "Done" } - -export type CommandChild = { - pid: number | undefined - kill: () => void -} - -const root = dirname(fileURLToPath(import.meta.url)) - -export function getSidecarPath() { - const suffix = process.platform === "win32" ? ".exe" : "" - const path = app.isPackaged - ? join(process.resourcesPath, `opencode-cli${suffix}`) - : join(root, "../../resources", `opencode-cli${suffix}`) - console.log(`[cli] Sidecar path resolved: ${path} (isPackaged: ${app.isPackaged})`) - return path -} - -export async function getConfig(): Promise { - const { events } = spawnCommand("debug config", {}) - let output = "" - - await new Promise((resolve) => { - events.on("stdout", (line: string) => { - output += line - }) - events.on("stderr", (line: string) => { - output += line - }) - events.on("terminated", () => resolve()) - events.on("error", () => resolve()) - }) - - try { - return JSON.parse(output) as Config - } catch { - return null - } -} - -export async function installCli(): Promise { - if (process.platform === "win32") { - throw new Error("CLI installation is only supported on macOS & Linux") - } - - const sidecar = getSidecarPath() - const scriptPath = join(app.getAppPath(), "install") - const script = readFileSync(scriptPath, "utf8") - const tempScript = join(tmpdir(), "opencode-install.sh") - - writeFileSync(tempScript, script, "utf8") - chmodSync(tempScript, 0o755) - - const cmd = spawn(tempScript, ["--binary", sidecar], { stdio: "pipe" }) - return await new Promise((resolve, reject) => { - cmd.on("exit", (code: number | null) => { - try { - unlinkSync(tempScript) - } catch {} - if (code === 0) { - const installPath = getCliInstallPath() - if (installPath) return resolve(installPath) - return reject(new Error("Could not determine install path")) - } - reject(new Error("Install script failed")) - }) - }) -} - -export function syncCli() { - if (!app.isPackaged) return - const installPath = getCliInstallPath() - if (!installPath) return - - let version = "" - try { - version = execFileSync(installPath, ["--version"], { windowsHide: true }).toString().trim() - } catch { - return - } - - const cli = parseVersion(version) - const appVersion = parseVersion(app.getVersion()) - if (!cli || !appVersion) return - if (compareVersions(cli, appVersion) >= 0) return - void installCli().catch(() => undefined) -} - -export function serve(hostname: string, port: number, password: string) { - const args = `--print-logs --log-level WARN serve --hostname ${hostname} --port ${port}` - const env = { - OPENCODE_SERVER_USERNAME: "opencode", - OPENCODE_SERVER_PASSWORD: password, - } - - return spawnCommand(args, env) -} - -export function spawnCommand(args: string, extraEnv: Record) { - console.log(`[cli] Spawning command with args: ${args}`) - const base = Object.fromEntries( - Object.entries(process.env).filter((entry): entry is [string, string] => typeof entry[1] === "string"), - ) - const env = { - ...base, - OPENCODE_EXPERIMENTAL_ICON_DISCOVERY: "true", - OPENCODE_EXPERIMENTAL_FILEWATCHER: "true", - OPENCODE_CLIENT: "desktop", - XDG_STATE_HOME: app.getPath("userData"), - ...extraEnv, - } - const shell = process.platform === "win32" ? null : getUserShell() - const envs = shell ? mergeShellEnv(loadShellEnv(shell), env) : env - - const { cmd, cmdArgs } = buildCommand(args, envs, shell) - console.log(`[cli] Executing: ${cmd} ${cmdArgs.join(" ")}`) - const child = spawn(cmd, cmdArgs, { - env: envs, - detached: process.platform !== "win32", - windowsHide: true, - stdio: ["ignore", "pipe", "pipe"], - }) - console.log(`[cli] Spawned process with PID: ${child.pid}`) - - const events = new EventEmitter() - const exit = new Promise((resolve) => { - child.on("exit", (code: number | null, signal: NodeJS.Signals | null) => { - console.log(`[cli] Process exited with code: ${code}, signal: ${signal}`) - resolve({ code: code ?? null, signal: null }) - }) - child.on("error", (error: Error) => { - console.error(`[cli] Process error: ${error.message}`) - events.emit("error", error.message) - }) - }) - - const stdout = child.stdout - const stderr = child.stderr - - if (stdout) { - readline.createInterface({ input: stdout }).on("line", (line: string) => { - if (handleSqliteProgress(events, line)) return - events.emit("stdout", `${line}\n`) - }) - } - - if (stderr) { - readline.createInterface({ input: stderr }).on("line", (line: string) => { - if (handleSqliteProgress(events, line)) return - events.emit("stderr", `${line}\n`) - }) - } - - exit.then((payload) => { - events.emit("terminated", payload) - }) - - const kill = () => { - if (!child.pid) return - treeKill(child.pid) - } - - return { events, child: { pid: child.pid, kill }, exit } -} - -function handleSqliteProgress(events: EventEmitter, line: string) { - const stripped = line.startsWith("sqlite-migration:") ? line.slice("sqlite-migration:".length).trim() : null - if (!stripped) return false - if (stripped === "done") { - events.emit("sqlite", { type: "Done" }) - return true - } - const value = Number.parseInt(stripped, 10) - if (!Number.isNaN(value)) { - events.emit("sqlite", { type: "InProgress", value }) - return true - } - return false -} - -function buildCommand(args: string, env: Record, shell: string | null) { - if (process.platform === "win32" && isWslEnabled()) { - console.log(`[cli] Using WSL mode`) - const version = app.getVersion() - const script = [ - "set -e", - 'BIN="$HOME/.opencode/bin/opencode"', - 'if [ ! -x "$BIN" ]; then', - ` curl -fsSL https://opencode.ai/install | bash -s -- --version ${shellEscape(version)} --no-modify-path`, - "fi", - `${envPrefix(env)} exec "$BIN" ${args}`, - ].join("\n") - - return { cmd: "wsl", cmdArgs: ["-e", "bash", "-lc", script] } - } - - if (process.platform === "win32") { - const sidecar = getSidecarPath() - console.log(`[cli] Windows direct mode, sidecar: ${sidecar}`) - return { cmd: sidecar, cmdArgs: args.split(" ") } - } - - const sidecar = getSidecarPath() - const user = shell || getUserShell() - const line = user.endsWith("/nu") ? `^\"${sidecar}\" ${args}` : `\"${sidecar}\" ${args}` - console.log(`[cli] Unix mode, shell: ${user}, command: ${line}`) - return { cmd: user, cmdArgs: ["-l", "-c", line] } -} - -function envPrefix(env: Record) { - const entries = Object.entries(env).map(([key, value]) => `${key}=${shellEscape(value)}`) - return entries.join(" ") -} - -function shellEscape(input: string) { - if (!input) return "''" - return `'${input.replace(/'/g, `'"'"'`)}'` -} - -function getCliInstallPath() { - const home = process.env.HOME - if (!home) return null - return join(home, CLI_INSTALL_DIR, CLI_BINARY_NAME) -} - -function isWslEnabled() { - return store.get(WSL_ENABLED_KEY) === true -} - -function parseVersion(value: string) { - const parts = value - .replace(/^v/, "") - .split(".") - .map((part) => Number.parseInt(part, 10)) - if (parts.some((part) => Number.isNaN(part))) return null - return parts -} - -function compareVersions(a: number[], b: number[]) { - const len = Math.max(a.length, b.length) - for (let i = 0; i < len; i += 1) { - const left = a[i] ?? 0 - const right = b[i] ?? 0 - if (left > right) return 1 - if (left < right) return -1 - } - return 0 -} diff --git a/packages/desktop-electron/src/main/env.d.ts b/packages/desktop-electron/src/main/env.d.ts index 0ee0c551d..1de56e1c9 100644 --- a/packages/desktop-electron/src/main/env.d.ts +++ b/packages/desktop-electron/src/main/env.d.ts @@ -5,3 +5,25 @@ interface ImportMetaEnv { interface ImportMeta { readonly env: ImportMetaEnv } +declare module "virtual:opencode-server" { + export namespace Server { + export const listen: typeof import("../../../opencode/dist/types/src/node").Server.listen + export type Listener = import("../../../opencode/dist/types/src/node").Server.Listener + } + export namespace Config { + export const get: typeof import("../../../opencode/dist/types/src/node").Config.get + export type Info = import("../../../opencode/dist/types/src/node").Config.Info + } + export namespace Log { + export const init: typeof import("../../../opencode/dist/types/src/node").Log.init + } + export namespace Database { + export const Path: typeof import("../../../opencode/dist/types/src/node").Database.Path + export const Client: typeof import("../../../opencode/dist/types/src/node").Database.Client + } + export namespace JsonMigration { + export type Progress = import("../../../opencode/dist/types/src/node").JsonMigration.Progress + export const run: typeof import("../../../opencode/dist/types/src/node").JsonMigration.run + } + export const bootstrap: typeof import("../../../opencode/dist/types/src/node").bootstrap +} diff --git a/packages/desktop-electron/src/main/index.ts b/packages/desktop-electron/src/main/index.ts index b635caa4e..89e7c61ac 100644 --- a/packages/desktop-electron/src/main/index.ts +++ b/packages/desktop-electron/src/main/index.ts @@ -11,6 +11,8 @@ import pkg from "electron-updater" import contextMenu from "electron-context-menu" contextMenu({ showSaveImageAs: true, showLookUpSelection: false, showSearchWithGoogle: false }) +process.env.OPENCODE_DISABLE_EMBEDDED_WEB_UI = "true" + const APP_NAMES: Record = { dev: "OpenCode Dev", beta: "OpenCode Beta", @@ -27,8 +29,6 @@ const { autoUpdater } = pkg import type { InitStep, ServerReadyData, SqliteMigrationProgress, WslConfig } from "../preload/types" import { checkAppExists, resolveAppPath, wslPath } from "./apps" -import type { CommandChild } from "./cli" -import { installCli, syncCli } from "./cli" import { CHANNEL, UPDATER_ENABLED } from "./constants" import { registerIpcHandlers, sendDeepLinks, sendMenuCommand, sendSqliteMigrationProgress } from "./ipc" import { initLogging } from "./logging" @@ -36,12 +36,13 @@ import { parseMarkdown } from "./markdown" import { createMenu } from "./menu" import { getDefaultServerUrl, getWslConfig, setDefaultServerUrl, setWslConfig, spawnLocalServer } from "./server" import { createLoadingWindow, createMainWindow, setBackgroundColor, setDockIcon } from "./windows" +import type { Server } from "virtual:opencode-server" const initEmitter = new EventEmitter() let initStep: InitStep = { phase: "server_waiting" } let mainWindow: BrowserWindow | null = null -let sidecar: CommandChild | null = null +let server: Server.Listener | null = null const loadingComplete = defer() const pendingDeepLinks: string[] = [] @@ -96,11 +97,9 @@ function setupApp() { } void app.whenReady().then(async () => { - // migrate() app.setAsDefaultProtocolClient("opencode") setDockIcon() setupAutoUpdater() - syncCli() await initialize() }) } @@ -134,8 +133,8 @@ async function initialize() { const password = randomUUID() logger.log("spawning sidecar", { url }) - const { child, health, events } = spawnLocalServer(hostname, port, password) - sidecar = child + const { listener, health } = await spawnLocalServer(hostname, port, password) + server = listener serverReady.resolve({ url, username: "opencode", @@ -145,7 +144,7 @@ async function initialize() { const loadingTask = (async () => { logger.log("sidecar connection started", { url }) - events.on("sqlite", (progress: SqliteMigrationProgress) => { + initEmitter.on("sqlite", (progress: SqliteMigrationProgress) => { setInitStep({ phase: "sqlite_waiting" }) if (overlay) sendSqliteMigrationProgress(overlay, progress) if (mainWindow) sendSqliteMigrationProgress(mainWindow, progress) @@ -198,9 +197,6 @@ function wireMenu() { if (!mainWindow) return createMenu({ trigger: (id) => mainWindow && sendMenuCommand(mainWindow, id), - installCli: () => { - void installCli() - }, checkForUpdates: () => { void checkForUpdates(true) }, @@ -215,7 +211,6 @@ function wireMenu() { registerIpcHandlers({ killSidecar: () => killSidecar(), - installCli: async () => installCli(), awaitInitialization: async (sendStep) => { sendStep(initStep) const listener = (step: InitStep) => sendStep(step) @@ -247,16 +242,9 @@ registerIpcHandlers({ }) function killSidecar() { - if (!sidecar) return - const pid = sidecar.pid - sidecar.kill() - sidecar = null - // tree-kill is async; also send process group signal as immediate fallback - if (pid && process.platform !== "win32") { - try { - process.kill(-pid, "SIGTERM") - } catch {} - } + if (!server) return + server.stop() + server = null } function ensureLoopbackNoProxy() { diff --git a/packages/desktop-electron/src/main/ipc.ts b/packages/desktop-electron/src/main/ipc.ts index d2cfc2524..52d87ed7e 100644 --- a/packages/desktop-electron/src/main/ipc.ts +++ b/packages/desktop-electron/src/main/ipc.ts @@ -13,7 +13,6 @@ const pickerFilters = (ext?: string[]) => { type Deps = { killSidecar: () => void - installCli: () => Promise awaitInitialization: (sendStep: (step: InitStep) => void) => Promise getDefaultServerUrl: () => Promise | string | null setDefaultServerUrl: (url: string | null) => Promise | void @@ -34,7 +33,6 @@ type Deps = { export function registerIpcHandlers(deps: Deps) { ipcMain.handle("kill-sidecar", () => deps.killSidecar()) - ipcMain.handle("install-cli", () => deps.installCli()) ipcMain.handle("await-initialization", (event: IpcMainInvokeEvent) => { const send = (step: InitStep) => event.sender.send("init-step", step) return deps.awaitInitialization(send) diff --git a/packages/desktop-electron/src/main/menu.ts b/packages/desktop-electron/src/main/menu.ts index 12e2445bc..fcf209fb6 100644 --- a/packages/desktop-electron/src/main/menu.ts +++ b/packages/desktop-electron/src/main/menu.ts @@ -5,7 +5,6 @@ import { createMainWindow } from "./windows" type Deps = { trigger: (id: string) => void - installCli: () => void checkForUpdates: () => void reload: () => void relaunch: () => void @@ -24,10 +23,6 @@ export function createMenu(deps: Deps) { enabled: UPDATER_ENABLED, click: () => deps.checkForUpdates(), }, - { - label: "Install CLI...", - click: () => deps.installCli(), - }, { label: "Reload Webview", click: () => deps.reload(), diff --git a/packages/desktop-electron/src/main/server.ts b/packages/desktop-electron/src/main/server.ts index 2d09d119f..5a6050013 100644 --- a/packages/desktop-electron/src/main/server.ts +++ b/packages/desktop-electron/src/main/server.ts @@ -1,5 +1,6 @@ -import { serve, type CommandChild } from "./cli" +import { app } from "electron" import { DEFAULT_SERVER_URL_KEY, WSL_ENABLED_KEY } from "./constants" +import { getUserShell, loadShellEnv } from "./shell-env" import { store } from "./store" export type WslConfig = { enabled: boolean } @@ -29,8 +30,16 @@ export function setWslConfig(config: WslConfig) { store.set(WSL_ENABLED_KEY, config.enabled) } -export function spawnLocalServer(hostname: string, port: number, password: string) { - const { child, exit, events } = serve(hostname, port, password) +export async function spawnLocalServer(hostname: string, port: number, password: string) { + prepareServerEnv(password) + const { Log, Server } = await import("virtual:opencode-server") + await Log.init({ level: "WARN" }) + const listener = await Server.listen({ + port, + hostname, + username: "opencode", + password, + }) const wait = (async () => { const url = `http://${hostname}:${port}` @@ -42,19 +51,26 @@ export function spawnLocalServer(hostname: string, port: number, password: strin } } - const terminated = async () => { - const payload = await exit - throw new Error( - `Sidecar terminated before becoming healthy (code=${payload.code ?? "unknown"} signal=${ - payload.signal ?? "unknown" - })`, - ) - } - - await Promise.race([ready(), terminated()]) + await ready() })() - return { child, health: { wait }, events } + return { listener, health: { wait } } +} + +function prepareServerEnv(password: string) { + const shell = process.platform === "win32" ? null : getUserShell() + const shellEnv = shell ? (loadShellEnv(shell) ?? {}) : {} + const env = { + ...process.env, + ...shellEnv, + OPENCODE_EXPERIMENTAL_ICON_DISCOVERY: "true", + OPENCODE_EXPERIMENTAL_FILEWATCHER: "true", + OPENCODE_CLIENT: "desktop", + OPENCODE_SERVER_USERNAME: "opencode", + OPENCODE_SERVER_PASSWORD: password, + XDG_STATE_HOME: app.getPath("userData"), + } + Object.assign(process.env, env) } export async function checkHealth(url: string, password?: string | null): Promise { @@ -82,5 +98,3 @@ export async function checkHealth(url: string, password?: string | null): Promis return false } } - -export type { CommandChild } diff --git a/packages/desktop-electron/src/main/shell-env.ts b/packages/desktop-electron/src/main/shell-env.ts index 300084821..8453a5730 100644 --- a/packages/desktop-electron/src/main/shell-env.ts +++ b/packages/desktop-electron/src/main/shell-env.ts @@ -1,7 +1,7 @@ import { spawnSync } from "node:child_process" import { basename } from "node:path" -const SHELL_ENV_TIMEOUT = 5_000 +const TIMEOUT = 5_000 type Probe = { type: "Loaded"; value: Record } | { type: "Timeout" } | { type: "Unavailable" } @@ -20,28 +20,28 @@ export function parseShellEnv(out: Buffer) { return env } -function probeShellEnv(shell: string, mode: "-il" | "-l"): Probe { +function probe(shell: string, mode: "-il" | "-l"): Probe { const out = spawnSync(shell, [mode, "-c", "env -0"], { stdio: ["ignore", "pipe", "ignore"], - timeout: SHELL_ENV_TIMEOUT, + timeout: TIMEOUT, windowsHide: true, }) const err = out.error as NodeJS.ErrnoException | undefined if (err) { if (err.code === "ETIMEDOUT") return { type: "Timeout" } - console.log(`[cli] Shell env probe failed for ${shell} ${mode}: ${err.message}`) + console.log(`[server] Shell env probe failed for ${shell} ${mode}: ${err.message}`) return { type: "Unavailable" } } if (out.status !== 0) { - console.log(`[cli] Shell env probe exited with non-zero status for ${shell} ${mode}`) + console.log(`[server] Shell env probe exited with non-zero status for ${shell} ${mode}`) return { type: "Unavailable" } } const env = parseShellEnv(out.stdout) if (Object.keys(env).length === 0) { - console.log(`[cli] Shell env probe returned empty env for ${shell} ${mode}`) + console.log(`[server] Shell env probe returned empty env for ${shell} ${mode}`) return { type: "Unavailable" } } @@ -56,27 +56,27 @@ export function isNushell(shell: string) { export function loadShellEnv(shell: string) { if (isNushell(shell)) { - console.log(`[cli] Skipping shell env probe for nushell: ${shell}`) + console.log(`[server] Skipping shell env probe for nushell: ${shell}`) return null } - const interactive = probeShellEnv(shell, "-il") + const interactive = probe(shell, "-il") if (interactive.type === "Loaded") { - console.log(`[cli] Loaded shell environment with -il (${Object.keys(interactive.value).length} vars)`) + console.log(`[server] Loaded shell environment with -il (${Object.keys(interactive.value).length} vars)`) return interactive.value } if (interactive.type === "Timeout") { - console.warn(`[cli] Interactive shell env probe timed out: ${shell}`) + console.warn(`[server] Interactive shell env probe timed out: ${shell}`) return null } - const login = probeShellEnv(shell, "-l") + const login = probe(shell, "-l") if (login.type === "Loaded") { - console.log(`[cli] Loaded shell environment with -l (${Object.keys(login.value).length} vars)`) + console.log(`[server] Loaded shell environment with -l (${Object.keys(login.value).length} vars)`) return login.value } - console.warn(`[cli] Falling back to app environment: ${shell}`) + console.warn(`[server] Falling back to app environment: ${shell}`) return null } diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 974f6799a..9a019fdfc 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -106,7 +106,7 @@ "@hono/node-ws": "1.3.0", "@hono/standard-validator": "0.1.5", "@hono/zod-validator": "catalog:", - "@lydell/node-pty": "1.2.0-beta.10", + "@lydell/node-pty": "catalog:", "@modelcontextprotocol/sdk": "1.27.1", "@npmcli/arborist": "9.4.0", "@octokit/graphql": "9.0.2", diff --git a/packages/opencode/script/build-node.ts b/packages/opencode/script/build-node.ts index 0e1d5bcf4..709c8f5ab 100755 --- a/packages/opencode/script/build-node.ts +++ b/packages/opencode/script/build-node.ts @@ -1,6 +1,5 @@ #!/usr/bin/env bun -import { $ } from "bun" import { Script } from "@opencode-ai/script" import fs from "fs" import path from "path" @@ -9,15 +8,6 @@ import { fileURLToPath } from "url" const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) const dir = path.resolve(__dirname, "..") -const root = path.resolve(dir, "../..") - -function linker(): "hoisted" | "isolated" { - // jsonc-parser is only declared in packages/opencode, so its install location - // tells us whether Bun used a hoisted or isolated workspace layout. - if (fs.existsSync(path.join(dir, "node_modules", "jsonc-parser"))) return "isolated" - if (fs.existsSync(path.join(root, "node_modules", "jsonc-parser"))) return "hoisted" - throw new Error("Could not detect Bun linker from jsonc-parser") -} process.chdir(dir) @@ -51,21 +41,20 @@ const migrations = await Promise.all( ) console.log(`Loaded ${migrations.length} migrations`) -const link = linker() - -await $`bun install --linker=${link} --os="*" --cpu="*" @lydell/node-pty@1.2.0-beta.10` - await Bun.build({ target: "node", entrypoints: ["./src/node.ts"], - outdir: "./dist", + outdir: "./dist/node", format: "esm", sourcemap: "linked", - external: ["jsonc-parser"], + external: ["jsonc-parser", "@lydell/node-pty"], define: { OPENCODE_MIGRATIONS: JSON.stringify(migrations), OPENCODE_CHANNEL: `'${Script.channel}'`, }, + files: { + "opencode-web-ui.gen.ts": "", + }, }) console.log("Build complete") diff --git a/packages/opencode/src/cli/cmd/db.ts b/packages/opencode/src/cli/cmd/db.ts index 03e765dab..d2a2ca570 100644 --- a/packages/opencode/src/cli/cmd/db.ts +++ b/packages/opencode/src/cli/cmd/db.ts @@ -1,6 +1,7 @@ import type { Argv } from "yargs" import { spawn } from "child_process" import { Database } from "../../storage/db" +import { drizzle } from "drizzle-orm/bun-sqlite" import { Database as BunDatabase } from "bun:sqlite" import { UI } from "../ui" import { cmd } from "./cmd" @@ -74,7 +75,7 @@ const MigrateCommand = cmd({ let last = -1 if (tty) process.stderr.write("\x1b[?25l") try { - const stats = await JsonMigration.run(sqlite, { + const stats = await JsonMigration.run(drizzle({ client: sqlite }), { progress: (event) => { const percent = Math.floor((event.current / event.total) * 100) if (percent === last) return diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index 05fb3a579..04130aa95 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -7,7 +7,7 @@ import { Flag } from "../../flag/flag" import { bootstrap } from "../bootstrap" import { EOL } from "os" import { Filesystem } from "../../util/filesystem" -import { createOpencodeClient, type Message, type OpencodeClient, type ToolPart } from "@opencode-ai/sdk/v2" +import { createOpencodeClient, type OpencodeClient, type ToolPart } from "@opencode-ai/sdk/v2" import { Server } from "../../server/server" import { Provider } from "../../provider/provider" import { Agent } from "../../agent/agent" @@ -680,7 +680,7 @@ export const RunCommand = cmd({ await bootstrap(process.cwd(), async () => { const fetchFn = (async (input: RequestInfo | URL, init?: RequestInit) => { const request = new Request(input, init) - return Server.Default().fetch(request) + return Server.Default().app.fetch(request) }) as typeof globalThis.fetch const sdk = createOpencodeClient({ baseUrl: "http://opencode.internal", fetch: fetchFn }) await execute(sdk) diff --git a/packages/opencode/src/cli/cmd/tui/worker.ts b/packages/opencode/src/cli/cmd/tui/worker.ts index 0b9ec82dc..15e02b863 100644 --- a/packages/opencode/src/cli/cmd/tui/worker.ts +++ b/packages/opencode/src/cli/cmd/tui/worker.ts @@ -138,7 +138,7 @@ export const rpc = { headers, body: input.body, }) - const response = await Server.Default().fetch(request) + const response = await Server.Default().app.fetch(request) const body = await response.text() return { status: response.status, diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts index 1fa027abf..753becc26 100644 --- a/packages/opencode/src/index.ts +++ b/packages/opencode/src/index.ts @@ -36,6 +36,7 @@ import { Database } from "./storage/db" import { errorMessage } from "./util/error" import { PluginCommand } from "./cli/cmd/plug" import { Heap } from "./cli/heap" +import { drizzle } from "drizzle-orm/bun-sqlite" process.on("unhandledRejection", (e) => { Log.Default.error("rejection", { @@ -119,7 +120,7 @@ const cli = yargs(args) let last = -1 if (tty) process.stderr.write("\x1b[?25l") try { - await JsonMigration.run(Database.Client().$client, { + await JsonMigration.run(drizzle({ client: Database.Client().$client }), { progress: (event) => { const percent = Math.floor((event.current / event.total) * 100) if (percent === last && event.current !== event.total) return diff --git a/packages/opencode/src/node.ts b/packages/opencode/src/node.ts index b0e653d6c..44a9f3b43 100644 --- a/packages/opencode/src/node.ts +++ b/packages/opencode/src/node.ts @@ -1 +1,6 @@ +export { Config } from "./config/config" export { Server } from "./server/server" +export { bootstrap } from "./cli/bootstrap" +export { Log } from "./util/log" +export { Database } from "./storage/db" +export { JsonMigration } from "./storage/json-migration" diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index d84d1cc7b..814e7870a 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -119,7 +119,7 @@ export namespace Plugin { Authorization: `Basic ${Buffer.from(`${Flag.OPENCODE_SERVER_USERNAME ?? "opencode"}:${Flag.OPENCODE_SERVER_PASSWORD}`).toString("base64")}`, } : undefined, - fetch: async (...args) => Server.Default().fetch(...args), + fetch: async (...args) => Server.Default().app.fetch(...args), }) const cfg = yield* config.get() const input: PluginInput = { diff --git a/packages/opencode/src/provider/models-snapshot.d.ts b/packages/opencode/src/provider/models-snapshot.d.ts new file mode 100644 index 000000000..839eba6b7 --- /dev/null +++ b/packages/opencode/src/provider/models-snapshot.d.ts @@ -0,0 +1,2 @@ +// Auto-generated by build.ts - do not edit +export declare const snapshot: Record diff --git a/packages/opencode/src/provider/models-snapshot.js b/packages/opencode/src/provider/models-snapshot.js new file mode 100644 index 000000000..3e6c4159d --- /dev/null +++ b/packages/opencode/src/provider/models-snapshot.js @@ -0,0 +1,3 @@ +// @ts-nocheck +// Auto-generated by build.ts - do not edit +export const snapshot = {"evroc":{"id":"evroc","env":["EVROC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://models.think.evroc.com/v1","name":"evroc","doc":"https://docs.evroc.com/products/think/overview.html","models":{"nvidia/Llama-3.3-70B-Instruct-FP8":{"id":"nvidia/Llama-3.3-70B-Instruct-FP8","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.18,"output":1.18},"limit":{"context":131072,"output":32768}},"microsoft/Phi-4-multimodal-instruct":{"id":"microsoft/Phi-4-multimodal-instruct","name":"Phi-4 15B","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.47},"limit":{"context":32000,"output":32000}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"E5 Multi-Lingual Large Embeddings 0.6B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":512,"output":512}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":1.47,"output":5.9},"limit":{"context":262144,"output":262144}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB Whisper","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":448}},"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8","name":"Qwen3 30B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.42},"limit":{"context":64000,"output":64000}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3 Embedding 8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen3 VL 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":100000,"output":100000}},"mistralai/Voxtral-Small-24B-2507":{"id":"mistralai/Voxtral-Small-24B-2507","name":"Voxtral Small 24B","family":"voxtral","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":32000,"output":32000}},"mistralai/devstral-small-2-24b-instruct-2512":{"id":"mistralai/devstral-small-2-24b-instruct-2512","name":"Devstral Small 2 24B Instruct 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.47},"limit":{"context":32768,"output":32768}},"mistralai/Magistral-Small-2509":{"id":"mistralai/Magistral-Small-2509","name":"Magistral Small 1.2 24B","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":2.36},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":65536,"output":65536}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper 3 Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":4096}}}},"zai":{"id":"zai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/paas/v4","name":"Z.AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}}}},"alibaba-coding-plan":{"id":"alibaba-coding-plan","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-intl.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan","doc":"https://www.alibabacloud.com/help/en/model-studio/coding-plan","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"input":196601,"output":24576}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"zenmux":{"id":"zenmux","env":["ZENMUX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1","name":"ZenMux","doc":"https://docs.zenmux.ai","models":{"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo V2 Omni","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":265000,"output":265000}},"xiaomi/mimo-v2-flash-free":{"id":"xiaomi/mimo-v2-flash-free","name":"MiMo-V2-Flash Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":64000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262000,"output":64000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":4.5},"limit":{"context":1000000,"output":256000}},"kuaishou/kat-coder-pro-v1-free":{"id":"kuaishou/kat-coder-pro-v1-free","name":"KAT-Coder-Pro-V1 Free","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"kuaishou/kat-coder-pro-v1":{"id":"kuaishou/kat-coder-pro-v1","name":"KAT-Coder-Pro-V1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":64000}},"stepfun/step-3.5-flash-free":{"id":"stepfun/step-3.5-flash-free","name":"Step 3.5 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":256000,"output":64000}},"stepfun/step-3":{"id":"stepfun/step-3","name":"Step-3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":65536,"output":64000}},"inclusionai/ling-1t":{"id":"inclusionai/ling-1t","name":"Ling-1T","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"inclusionai/ring-1t":{"id":"inclusionai/ring-1t","name":"Ring-1T","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-12","last_updated":"2025-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"volcengine/doubao-seed-1.8":{"id":"volcengine/doubao-seed-1.8","name":"Doubao-Seed-1.8","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.28,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-pro":{"id":"volcengine/doubao-seed-2.0-pro","name":"Doubao-Seed-2.0-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":2.24,"cache_read":0.09,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-mini":{"id":"volcengine/doubao-seed-2.0-mini","name":"Doubao-Seed-2.0-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.28,"cache_read":0.01,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-code":{"id":"volcengine/doubao-seed-code","name":"Doubao-Seed-Code","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.12,"cache_read":0.03},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-lite":{"id":"volcengine/doubao-seed-2.0-lite","name":"Doubao-Seed-2.0-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.51,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-code":{"id":"volcengine/doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.48},"limit":{"context":256000,"output":32000}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.43},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek-V3.2 (Non-thinking Mode)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek-V3.2-Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.33},"limit":{"context":163000,"output":64000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":3.02,"cache_read":0.1},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"baidu/ernie-5.0-thinking-preview":{"id":"baidu/ernie-5.0-thinking-preview","name":"ERNIE 5.0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.84,"output":3.37},"limit":{"context":128000,"output":64000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.07,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1050000,"output":65530}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-19","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-3-pro-image-preview":{"id":"google/gemini-3-pro-image-preview","name":"Gemini 3 Pro Image Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM 5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":2.6,"cache_read":0.14},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flashx":{"id":"z-ai/glm-4.7-flashx","name":"GLM 4.7 FlashX","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.42,"cache_read":0.01},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.56,"cache_read":0.02},"limit":{"context":128000,"output":64000}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"z-ai/glm-4.6v-flash-free":{"id":"z-ai/glm-4.6v-flash-free","name":"GLM 4.6V Flash (Free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.14,"cache_read":0.06},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.7-flash-free":{"id":"z-ai/glm-4.7-flash-free","name":"GLM 4.7 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6v-flash":{"id":"z-ai/glm-4.6v-flash","name":"GLM 4.6V FlashX","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.21,"cache_read":0.0043},"limit":{"context":200000,"output":64000}},"z-ai/glm-5-turbo":{"id":"z-ai/glm-5-turbo","name":"GLM 5 Turbo","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":3.48},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.42,"cache_read":0.03},"limit":{"context":200000,"output":64000}},"qwen/qwen3.5-flash":{"id":"qwen/qwen3.5-flash","name":"Qwen3.5 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1020000,"output":1020000}},"qwen/qwen3.5-plus":{"id":"qwen/qwen3.5-plus","name":"Qwen3.5 Plus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4.8},"limit":{"context":1000000,"output":64000}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3-Max-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":256000,"output":64000}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen3-Coder-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":1000000,"output":64000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":64000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4.2-fast":{"id":"x-ai/grok-4.2-fast","name":"Grok 4.2 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.2-fast-non-reasoning":{"id":"x-ai/grok-4.2-fast-non-reasoning","name":"Grok 4.2 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2026-01-15","last_updated":"2026-01-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":128000,"output":64000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":64000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":45,"output":225},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16380}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5},"limit":{"context":400000,"output":128000}},"minimax/minimax-m2.5-lightning":{"id":"minimax/minimax-m2.5-lightning","name":"MiniMax M2.5 highspeed","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3055,"output":1.2219},"limit":{"context":204800,"output":131070}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 highspeed","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.611,"output":2.4439},"limit":{"context":204800,"output":131070}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude 3.5 Sonnet (Retiring Soon)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"status":"deprecated"},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2024-11-04","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}}}},"io-net":{"id":"io-net","env":["IOINTELLIGENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.intelligence.io.solutions/api/v1","name":"IO.NET","doc":"https://io.net/docs/guides/intelligence/io-intelligence","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-15","last_updated":"2024-11-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.75,"cache_read":0.2,"cache_write":0.8},"limit":{"context":200000,"output":4096}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":8.75,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar":{"id":"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11,"cache_write":0.44},"limit":{"context":106000,"output":4096}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-09-05","last_updated":"2024-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":1.9,"cache_read":0.195,"cache_write":0.78},"limit":{"context":32768,"output":4096}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.25,"cache_read":0.275,"cache_write":1.1},"limit":{"context":32768,"output":4096}},"meta-llama/Llama-3.2-90B-Vision-Instruct":{"id":"meta-llama/Llama-3.2-90B-Vision-Instruct","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.4,"cache_read":0.175,"cache_write":0.7},"limit":{"context":16000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.38,"cache_read":0.065,"cache_write":0.26},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"cache_read":0.075,"cache_write":0.3},"limit":{"context":430000,"output":4096}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen 3 Next 80B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-10","last_updated":"2025-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8,"cache_read":0.05,"cache_write":0.2},"limit":{"context":262144,"output":4096}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen 3 235B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6,"cache_read":0.055,"cache_write":0.22},"limit":{"context":262144,"output":4096}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen 2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":32000,"output":4096}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01,"cache_write":0.04},"limit":{"context":128000,"output":4096}},"mistralai/Magistral-Small-2506":{"id":"mistralai/Magistral-Small-2506","name":"Magistral Small 2506","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":4096}},"mistralai/Mistral-Large-Instruct-2411":{"id":"mistralai/Mistral-Large-Instruct-2411","name":"Mistral Large Instruct 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":128000,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.4,"cache_read":0.02,"cache_write":0.08},"limit":{"context":131072,"output":4096}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT-OSS 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14,"cache_read":0.015,"cache_write":0.06},"limit":{"context":64000,"output":4096}}}},"nvidia":{"id":"nvidia","env":["NVIDIA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://integrate.api.nvidia.com/v1","name":"Nvidia","doc":"https://docs.api.nvidia.com/nim/","models":{"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"Llama 3.1 Nemotron 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.1-nemotron-ultra-253b-v1":{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/llama-3.1-nemotron-51b-instruct":{"id":"nvidia/llama-3.1-nemotron-51b-instruct","name":"Llama 3.1 Nemotron 51b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-22","last_updated":"2024-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/parakeet-tdt-0.6b-v2":{"id":"nvidia/parakeet-tdt-0.6b-v2","name":"Parakeet TDT 0.6B v2","family":"parakeet","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nvidia/llama-embed-nemotron-8b":{"id":"nvidia/llama-embed-nemotron-8b","name":"Llama Embed Nemotron 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-03","release_date":"2025-03-18","last_updated":"2025-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":2048}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"Llama 3.3 Nemotron Super 49b V1.5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.3-nemotron-super-49b-v1":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1","name":"Llama 3.3 Nemotron Super 49b V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama3-chatqa-1.5-70b":{"id":"nvidia/llama3-chatqa-1.5-70b","name":"Llama3 Chatqa 1.5 70b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-28","last_updated":"2024-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/cosmos-nemotron-34b":{"id":"nvidia/cosmos-nemotron-34b","name":"Cosmos Nemotron 34B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/nemoretriever-ocr-v1":{"id":"nvidia/nemoretriever-ocr-v1","name":"NeMo Retriever OCR v1","family":"nemoretriever","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"nvidia/nemotron-4-340b-instruct":{"id":"nvidia/nemotron-4-340b-instruct","name":"Nemotron 4 340b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-13","last_updated":"2024-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"nemotron-3-nano-30b-a3b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi 3 Small 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi 3 Medium 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi 3.5 Moe Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-17","last_updated":"2024-08-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-vision-128k-instruct":{"id":"microsoft/phi-3-vision-128k-instruct","name":"Phi 3 Vision 128k Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-19","last_updated":"2024-05-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-Mini","family":"phi","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi 3.5 Vision Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi 3 Medium 4k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4000,"output":4096}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi 3 Small 8k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":4096}},"minimaxai/minimax-m2.1":{"id":"minimaxai/minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"minimaxai/minimax-m2.5":{"id":"minimaxai/minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"deepseek-ai/deepseek-v3.1":{"id":"deepseek-ai/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-20","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek-ai/deepseek-r1-0528":{"id":"deepseek-ai/deepseek-r1-0528","name":"Deepseek R1 0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-r1":{"id":"deepseek-ai/deepseek-r1","name":"Deepseek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.1-terminus":{"id":"deepseek-ai/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek-ai/deepseek-coder-6.7b-instruct":{"id":"deepseek-ai/deepseek-coder-6.7b-instruct","name":"Deepseek Coder 6.7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2023-10-29","last_updated":"2023-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.2":{"id":"deepseek-ai/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":163840,"output":65536}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-01-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":262144}},"google/codegemma-7b":{"id":"google/codegemma-7b","name":"Codegemma 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-03-21","last_updated":"2024-03-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma 2 2b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-1b-it":{"id":"google/gemma-3-1b-it","name":"Gemma 3 1b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Gemma 2 27b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e2b-it":{"id":"google/gemma-3n-e2b-it","name":"Gemma 3n E2b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/codegemma-1.1-7b":{"id":"google/codegemma-1.1-7b","name":"Codegemma 1.1 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-04-30","last_updated":"2024-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n E4b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-03","last_updated":"2025-06-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"z-ai/glm4.7":{"id":"z-ai/glm4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"z-ai/glm5":{"id":"z-ai/glm5","name":"GLM5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":131000}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":16384}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwq 32b","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen2.5 Coder 7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":8192}},"qwen/qwen2.5-coder-32b-instruct":{"id":"qwen/qwen2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-06","last_updated":"2024-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"meta/llama-3.1-70b-instruct":{"id":"meta/llama-3.1-70b-instruct","name":"Llama 3.1 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-26","last_updated":"2024-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17b 16e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-02","last_updated":"2025-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11b Vision Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-8b-instruct":{"id":"meta/llama3-8b-instruct","name":"Llama3 8b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/codellama-70b":{"id":"meta/codellama-70b","name":"Codellama 70b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-29","last_updated":"2024-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.1-405b-instruct":{"id":"meta/llama-3.1-405b-instruct","name":"Llama 3.1 405b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-70b-instruct":{"id":"meta/llama3-70b-instruct","name":"Llama3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-maverick-17b-128e-instruct":{"id":"meta/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17b 128e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B Instruct 2512","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/mamba-codestral-7b-v0.1":{"id":"mistralai/mamba-codestral-7b-v0.1","name":"Mamba Codestral 7b V0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/codestral-22b-instruct-v0.1":{"id":"mistralai/codestral-22b-instruct-v0.1","name":"Codestral 22b Instruct V0.1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-29","last_updated":"2024-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-2-instruct":{"id":"mistralai/mistral-large-2-instruct","name":"Mistral Large 2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B Instruct 2512","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-3.1-24b-instruct-2503":{"id":"mistralai/mistral-small-3.1-24b-instruct-2503","name":"Mistral Small 3.1 24b Instruct 2503","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral-2-123B-Instruct-2512","family":"devstral","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"black-forest-labs/flux.1-dev":{"id":"black-forest-labs/flux.1-dev","name":"FLUX.1-dev","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":0}}}},"fastrouter":{"id":"fastrouter","env":["FASTROUTER_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://go.fastrouter.ai/api/v1","name":"FastRouter","doc":"https://fastrouter.ai/models","models":{"deepseek-ai/deepseek-r1-distill-llama-70b":{"id":"deepseek-ai/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":204800,"output":131072}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":65536}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"iflowcn":{"id":"iflowcn","env":["IFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://apis.iflow.cn/v1","name":"iFlow","doc":"https://platform.iflow.cn/en/docs","models":{"kimi-k2":{"id":"kimi-k2","name":"Kimi-K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3-Max-Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi-K2-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-235b-a22b-instruct":{"id":"qwen3-235b-a22b-instruct","name":"Qwen3-235B-A22B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-235b":{"id":"qwen3-235b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL-Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3-235B-A22B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3-Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3-Coder-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}}}},"modelscope":{"id":"modelscope","env":["MODELSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-inference.modelscope.cn/v1","name":"ModelScope","doc":"https://modelscope.cn/docs/model-service/API-Inference/intro","models":{"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"ZhipuAI/GLM-4.6":{"id":"ZhipuAI/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":98304}},"ZhipuAI/GLM-4.5":{"id":"ZhipuAI/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":98304}}}},"llama":{"id":"llama","env":["LLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.llama.com/compat/v1/","name":"Llama","doc":"https://llama.developer.meta.com/docs/models","models":{"cerebras-llama-4-maverick-17b-128e-instruct":{"id":"cerebras-llama-4-maverick-17b-128e-instruct","name":"Cerebras-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-scout-17b-16e-instruct-fp8":{"id":"llama-4-scout-17b-16e-instruct-fp8","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-3.3-8b-instruct":{"id":"llama-3.3-8b-instruct","name":"Llama-3.3-8B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"groq-llama-4-maverick-17b-128e-instruct":{"id":"groq-llama-4-maverick-17b-128e-instruct","name":"Groq-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cerebras-llama-4-scout-17b-16e-instruct":{"id":"cerebras-llama-4-scout-17b-16e-instruct","name":"Cerebras-Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}}}},"inference":{"id":"inference","env":["INFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.net/v1","name":"Inference","doc":"https://inference.net/models","models":{"mistral/mistral-nemo-12b-instruct":{"id":"mistral/mistral-nemo-12b-instruct","name":"Mistral Nemo 12B Instruct","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.038,"output":0.1},"limit":{"context":16000,"output":4096}},"google/gemma-3":{"id":"google/gemma-3","name":"Google Gemma 3","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.3},"limit":{"context":125000,"output":4096}},"qwen/qwen3-embedding-4b":{"id":"qwen/qwen3-embedding-4b","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"qwen/qwen-2.5-7b-vision-instruct":{"id":"qwen/qwen-2.5-7b-vision-instruct","name":"Qwen 2.5 7B Vision Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":125000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.055,"output":0.055},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-3b-instruct":{"id":"meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01},"limit":{"context":16000,"output":4096}},"meta/llama-3.1-8b-instruct":{"id":"meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.025,"output":0.025},"limit":{"context":16000,"output":4096}},"osmosis/osmosis-structure-0.6b":{"id":"osmosis/osmosis-structure-0.6b","name":"Osmosis Structure 0.6B","family":"osmosis","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":4000,"output":2048}}}},"deepinfra":{"id":"deepinfra","env":["DEEPINFRA_API_KEY"],"npm":"@ai-sdk/deepinfra","name":"Deep Infra","doc":"https://deepinfra.com/models","models":{"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.74,"cache_read":0.08},"limit":{"context":204800,"output":131072}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":204800,"output":131072}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304},"status":"deprecated"},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56,"cache_read":0.16},"limit":{"context":202752,"output":16384}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2":{"id":"MiniMaxAI/MiniMax-M2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.254,"output":1.02},"limit":{"context":262144,"output":32768}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":196608}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15,"cache_read":0.35},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":0.38,"cache_read":0.13},"limit":{"context":163840,"output":64000}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":32768}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-06","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2},"limit":{"context":131072,"output":32768}},"meta-llama/Llama-3.1-8B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-8B-Instruct-Turbo","name":"Llama 3.1 8B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.03},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-70B-Instruct-Turbo","name":"Llama 3.1 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":10000000,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1000000,"output":16384}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.6},"limit":{"context":262144,"output":66536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":16384}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":16384}},"anthropic/claude-3-7-sonnet-latest":{"id":"anthropic/claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (Latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.33},"limit":{"context":200000,"output":64000}},"anthropic/claude-4-opus":{"id":"anthropic/claude-4-opus","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5},"limit":{"context":200000,"output":32000}}}},"perplexity-agent":{"id":"perplexity-agent","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.perplexity.ai/v1","name":"Perplexity Agent","doc":"https://docs.perplexity.ai/docs/agent-api/models","models":{"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2.5},"limit":{"context":1000000,"output":32000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125,"context_over_200k":{"input":2.5,"output":15,"cache_read":0.25}},"limit":{"context":1048576,"output":65536}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2.5,"cache_read":0.0625},"limit":{"context":128000,"output":8192}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":128000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"xai/grok-4-1-fast-non-reasoning":{"id":"xai/grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}}}},"xiaomi":{"id":"xiaomi","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.xiaomimimo.com/v1","name":"Xiaomi","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":256000,"output":128000}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-16","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":256000,"output":64000}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2},"limit":{"context":1000000,"output":128000}}}},"synthetic":{"id":"synthetic","env":["SYNTHETIC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.synthetic.new/openai/v1","name":"Synthetic","doc":"https://synthetic.new/pricing","models":{"hf:MiniMaxAI/MiniMax-M2.5":{"id":"hf:MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-07","last_updated":"2026-02-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.6},"limit":{"context":191488,"output":65536}},"hf:MiniMaxAI/MiniMax-M2":{"id":"hf:MiniMaxAI/MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":196608,"output":131000}},"hf:MiniMaxAI/MiniMax-M2.1":{"id":"hf:MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":204800,"output":131072}},"hf:deepseek-ai/DeepSeek-R1":{"id":"hf:deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-R1-0528":{"id":"hf:deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 (0528)","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":8},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.1":{"id":"hf:deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.2":{"id":"hf:deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4,"cache_read":0.27,"cache_write":0},"limit":{"context":162816,"input":162816,"output":8000}},"hf:deepseek-ai/DeepSeek-V3-0324":{"id":"hf:deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 (0324)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3":{"id":"hf:deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"hf:deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:moonshotai/Kimi-K2-Instruct-0905":{"id":"hf:moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":1.2},"limit":{"context":262144,"output":32768}},"hf:moonshotai/Kimi-K2.5":{"id":"hf:moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:moonshotai/Kimi-K2-Thinking":{"id":"hf:moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"hf:openai/gpt-oss-120b":{"id":"hf:openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"hf:nvidia/Kimi-K2.5-NVFP4":{"id":"hf:nvidia/Kimi-K2.5-NVFP4","name":"Kimi K2.5 (NVFP4)","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":328000,"output":4096}},"hf:meta-llama/Llama-3.1-405B-Instruct":{"id":"hf:meta-llama/Llama-3.1-405B-Instruct","name":"Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-70B-Instruct":{"id":"hf:meta-llama/Llama-3.1-70B-Instruct","name":"Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-8B-Instruct":{"id":"hf:meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.3-70B-Instruct":{"id":"hf:meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":524000,"output":4096}},"hf:zai-org/GLM-4.7-Flash":{"id":"hf:zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-18","last_updated":"2026-01-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.06},"limit":{"context":196608,"output":65536}},"hf:zai-org/GLM-4.6":{"id":"hf:zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}},"hf:zai-org/GLM-4.7":{"id":"hf:zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}},"hf:Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"hf:Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":256000,"output":32000}}}},"nebius":{"id":"nebius","env":["NEBIUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tokenfactory.nebius.com/v1","name":"Nebius Token Factory","doc":"https://docs.tokenfactory.nebius.com/","models":{"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM-4.7 (FP8)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2,"cache_read":0.04,"cache_write":0.5},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.2,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-01","last_updated":"2026-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.1,"cache_write":1},"limit":{"context":200000,"input":200000,"output":16384}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron-3-Super-120B-A12B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"input":256000,"output":32768}},"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":4096}},"nvidia/Nemotron-Nano-V2-12b":{"id":"nvidia/Nemotron-Nano-V2-12b","name":"Nemotron-Nano-V2-12b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2,"cache_read":0.007,"cache_write":0.08},"limit":{"context":32000,"input":30000,"output":4096}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B","name":"Nemotron-3-Nano-30B-A3B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.006,"cache_write":0.075},"limit":{"context":32000,"input":30000,"output":4096}},"NousResearch/Hermes-4-405B":{"id":"NousResearch/Hermes-4-405B","name":"Hermes-4-405B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"reasoning":3,"cache_read":0.1,"cache_write":1.25},"limit":{"context":128000,"input":120000,"output":8192}},"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes-4-70B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"reasoning":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"BAAI/bge-en-icl":{"id":"BAAI/bge-en-icl","name":"BGE-ICL","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"BAAI/bge-multilingual-gemma2":{"id":"BAAI/bge-multilingual-gemma2","name":"bge-multilingual-gemma2","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":8192,"input":8192,"output":0}},"PrimeIntellect/INTELLECT-3":{"id":"PrimeIntellect/INTELLECT-3","name":"INTELLECT-3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-25","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-02-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"reasoning":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-V3-0324-fast":{"id":"deepseek-ai/DeepSeek-V3-0324-fast","name":"DeepSeek-V3-0324 (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25,"cache_read":0.075,"cache_write":0.28125},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4,"reasoning":2.4,"cache_read":0.08,"cache_write":1},"limit":{"context":128000,"input":120000,"output":32768}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45,"reasoning":0.45,"cache_read":0.03,"cache_write":0.375},"limit":{"context":163000,"input":160000,"output":16384}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5,"cache_read":0.05,"cache_write":0.1875},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-R1-0528-fast":{"id":"deepseek-ai/DeepSeek-R1-0528-fast","name":"DeepSeek R1 0528 Fast","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":8192}},"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"e5-mistral-7b-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2023-12","release_date":"2024-01-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.4,"cache_read":0.05,"cache_write":0.625},"limit":{"context":200000,"input":190000,"output":8192}},"moonshotai/Kimi-K2.5-fast":{"id":"moonshotai/Kimi-K2.5-fast","name":"Kimi-K2.5-fast","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"reasoning":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"reasoning":2.5,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":16384}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma-2-2b-it","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-07-31","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-3-27b-it-fast":{"id":"google/gemma-3-27b-it-fast","name":"Gemma-3-27b-it (Fast)","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":110000,"input":100000,"output":8192}},"google/gemma-2-9b-it-fast":{"id":"google/gemma-2-9b-it-fast","name":"Gemma-2-9b-it (Fast)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.0375},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27b-it","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":110000,"input":100000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":128000,"input":120000,"output":4096}},"meta-llama/Llama-Guard-3-8B":{"id":"meta-llama/Llama-Guard-3-8B","name":"Llama-Guard-3-8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2024-04","release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":1024}},"meta-llama/Llama-3.3-70B-Instruct-fast":{"id":"meta-llama/Llama-3.3-70B-Instruct-fast","name":"Llama-3.3-70B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct-fast":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-fast","name":"Meta-Llama-3.1-8B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3-30B-A3B-Instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3-30B-A3B-Thinking-2507","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"reasoning":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.8},"limit":{"context":262144,"output":66536}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3-Embedding-8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2025-10","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"Qwen/Qwen3-32B-fast":{"id":"Qwen/Qwen3-32B-fast","name":"Qwen3-32B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.2,"reasoning":1.2,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen2.5-Coder-7B-fast":{"id":"Qwen/Qwen2.5-Coder-7B-fast","name":"Qwen2.5-Coder-7B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-19","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"reasoning":0.6,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":124000,"output":8192}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2,"cache_read":0.005,"cache_write":0.06},"limit":{"context":128000,"input":124000,"output":4096}},"black-forest-labs/flux-dev":{"id":"black-forest-labs/flux-dev","name":"FLUX.1-dev","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}},"black-forest-labs/flux-schnell":{"id":"black-forest-labs/flux-schnell","name":"FLUX.1-schnell","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}}}},"qiniu-ai":{"id":"qiniu-ai","env":["QINIU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qnaigc.com/v1","name":"Qiniu","doc":"https://developer.qiniu.com/aitokenapi","models":{"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Claude 4.5 Haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"claude-3.5-sonnet":{"id":"claude-3.5-sonnet","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8200}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235b A22B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":64000}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":128000}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3 Max Preview","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-06","last_updated":"2025-09-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"claude-4.0-sonnet":{"id":"claude-4.0-sonnet","name":"Claude 4.0 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen-vl-max-2025-01-25":{"id":"qwen-vl-max-2025-01-25","name":"Qwen VL-MAX-2025-01-25","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"doubao-seed-1.6-thinking":{"id":"doubao-seed-1.6-thinking","name":"Doubao-Seed 1.6 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-14","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262000,"output":4096}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":4096}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":98304}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Claude 4.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen2.5-vl-7b-instruct":{"id":"qwen2.5-vl-7b-instruct","name":"Qwen 2.5 VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"doubao-seed-2.0-pro":{"id":"doubao-seed-2.0-pro","name":"Doubao Seed 2.0 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-1.6":{"id":"doubao-seed-1.6","name":"Doubao-Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"doubao-seed-2.0-mini":{"id":"doubao-seed-2.0-mini","name":"Doubao Seed 2.0 Mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"claude-4.0-opus":{"id":"claude-4.0-opus","name":"Claude 4.0 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen-Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":4096}},"gemini-3.0-pro-preview":{"id":"gemini-3.0-pro-preview","name":"Gemini 3.0 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"doubao-1.5-vision-pro":{"id":"doubao-1.5-vision-pro","name":"Doubao 1.5 Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"gemini-3.0-pro-image-preview":{"id":"gemini-3.0-pro-image-preview","name":"Gemini 3.0 Pro Image Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-22","last_updated":"2026-02-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8192}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":12000}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30b A3b Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen 2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen 3 235B A22B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-2.0-lite":{"id":"doubao-seed-2.0-lite","name":"Doubao Seed 2.0 Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"claude-4.1-opus":{"id":"claude-4.1-opus","name":"Claude 4.1 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"doubao-1.5-thinking-pro":{"id":"doubao-1.5-thinking-pro","name":"Doubao 1.5 Thinking Pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":80000}},"doubao-seed-1.6-flash":{"id":"doubao-seed-1.6-flash","name":"Doubao-Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-vl-30b-a3b-thinking":{"id":"qwen3-vl-30b-a3b-thinking","name":"Qwen3-Vl 30b A3b Thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-09","last_updated":"2026-02-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-2.0-code":{"id":"doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"qwen3-30b-a3b-thinking-2507":{"id":"qwen3-30b-a3b-thinking-2507","name":"Qwen3 30b A3b Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":126000,"output":32000}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":4096}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"gemini-3.0-flash-preview":{"id":"gemini-3.0-flash-preview","name":"Gemini 3.0 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":65536}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"kling-v2-6":{"id":"kling-v2-6","name":"Kling-V2 6","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-13","last_updated":"2026-01-13","modalities":{"input":["text","image","video"],"output":["video"]},"open_weights":false,"limit":{"context":99999999,"output":99999999}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen-max-2025-01-25":{"id":"qwen-max-2025-01-25","name":"Qwen2.5-Max-2025-01-25","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi/Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Stepfun/Step-3.5 Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":64000,"output":4096}},"deepseek/deepseek-v3.2-exp-thinking":{"id":"deepseek/deepseek-v3.2-exp-thinking","name":"DeepSeek/DeepSeek-V3.2-Exp-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek/DeepSeek-V3.1-Terminus","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-251201":{"id":"deepseek/deepseek-v3.2-251201","name":"Deepseek/DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-math-v2":{"id":"deepseek/deepseek-math-v2","name":"Deepseek/Deepseek-Math-V2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":160000,"output":160000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek/DeepSeek-V3.2-Exp","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.1-terminus-thinking":{"id":"deepseek/deepseek-v3.1-terminus-thinking","name":"DeepSeek/DeepSeek-V3.1-Terminus-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Moonshotai/Kimi-K2.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"z-ai/autoglm-phone-9b":{"id":"z-ai/autoglm-phone-9b","name":"Z-Ai/Autoglm Phone 9b","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":12800,"output":4096}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z-Ai/GLM 5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z-AI/GLM 4.6","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z-Ai/GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"stepfun-ai/gelab-zero-4b-preview":{"id":"stepfun-ai/gelab-zero-4b-preview","name":"Stepfun-Ai/Gelab Zero 4b Preview","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":8192,"output":4096}},"meituan/longcat-flash-lite":{"id":"meituan/longcat-flash-lite","name":"Meituan/Longcat-Flash-Lite","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":320000}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan/Longcat-Flash-Chat","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-05","last_updated":"2025-11-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":131072}},"x-ai/grok-4-fast-reasoning":{"id":"x-ai/grok-4-fast-reasoning","name":"X-Ai/Grok-4-Fast-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"x-AI/Grok-Code-Fast 1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-02","last_updated":"2025-09-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":10000}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"X-Ai/Grok 4.1 Fast Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":20000000,"output":2000000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"x-AI/Grok-4-Fast","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"X-Ai/Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"x-AI/Grok-4.1-Fast","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4-fast-non-reasoning":{"id":"x-ai/grok-4-fast-non-reasoning","name":"X-Ai/Grok-4-Fast-Non-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI/GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI/GPT-5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"Minimax/Minimax-M2.5 Highspeed","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax/Minimax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"Minimax/Minimax-M2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"Minimax/Minimax-M2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}}}},"ollama-cloud":{"id":"ollama-cloud","env":["OLLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ollama.com/v1","name":"Ollama Cloud","doc":"https://docs.ollama.com/cloud","models":{"glm-5":{"id":"glm-5","name":"glm-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"qwen3-coder:480b":{"id":"qwen3-coder:480b","name":"qwen3-coder:480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"nemotron-3-nano:30b":{"id":"nemotron-3-nano:30b","name":"nemotron-3-nano:30b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":131072}},"ministral-3:8b":{"id":"ministral-3:8b","name":"ministral-3:8b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2026-02-02","last_updated":"2026-02-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"gpt-oss:120b":{"id":"gpt-oss:120b","name":"gpt-oss:120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"devstral-2:123b":{"id":"devstral-2:123b","name":"devstral-2:123b","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-29","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"qwen3-vl:235b-instruct":{"id":"qwen3-vl:235b-instruct","name":"qwen3-vl:235b-instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":65536}},"minimax-m2.1":{"id":"minimax-m2.1","name":"minimax-m2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"ministral-3:14b":{"id":"ministral-3:14b","name":"ministral-3:14b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"qwen3-next:80b":{"id":"qwen3-next:80b","name":"qwen3-next:80b","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}},"kimi-k2:1t":{"id":"kimi-k2:1t","name":"kimi-k2:1t","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"gemma3:12b":{"id":"gemma3:12b","name":"gemma3:12b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"minimax-m2.7":{"id":"minimax-m2.7","name":"minimax-m2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"kimi-k2.5":{"id":"kimi-k2.5","name":"kimi-k2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"gpt-oss:20b":{"id":"gpt-oss:20b","name":"gpt-oss:20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-06-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":65536}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"ministral-3:3b":{"id":"ministral-3:3b","name":"ministral-3:3b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-10-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"qwen3.5:397b":{"id":"qwen3.5:397b","name":"qwen3.5:397b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"release_date":"2026-02-15","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":81920}},"gemma3:27b":{"id":"gemma3:27b","name":"gemma3:27b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2025-07-27","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"minimax-m2":{"id":"minimax-m2","name":"minimax-m2","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-10-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":128000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"minimax-m2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"devstral-small-2:24b":{"id":"devstral-small-2:24b","name":"devstral-small-2:24b","family":"devstral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"nemotron-3-super":{"id":"nemotron-3-super","name":"nemotron-3-super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"cogito-2.1:671b":{"id":"cogito-2.1:671b","name":"cogito-2.1:671b","family":"cogito","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-11-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":32000}},"gemma3:4b":{"id":"gemma3:4b","name":"gemma3:4b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"deepseek-v3.1:671b":{"id":"deepseek-v3.1:671b","name":"deepseek-v3.1:671b","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-21","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":163840}},"mistral-large-3:675b":{"id":"mistral-large-3:675b","name":"mistral-large-3:675b","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-02","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"rnj-1:8b":{"id":"rnj-1:8b","name":"rnj-1:8b","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":32768,"output":4096}},"qwen3-vl:235b":{"id":"qwen3-vl:235b","name":"qwen3-vl:235b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}}}},"scaleway":{"id":"scaleway","env":["SCALEWAY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.scaleway.ai/v1","name":"Scaleway","doc":"https://www.scaleway.com/en/docs/generative-apis/","models":{"voxtral-small-24b-2507":{"id":"voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"voxtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":16384}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25},"limit":{"context":260000,"output":16384}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":100000,"output":16384}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral Small 3.2 24B Instruct (2506)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":128000,"output":32768}},"qwen3-embedding-8b":{"id":"qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-25-11","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":32768,"output":4096}},"bge-multilingual-gemma2":{"id":"bge-multilingual-gemma2","name":"BGE Multilingual Gemma2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-07-26","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8191,"output":3072}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":256000,"output":16384}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":32000,"output":8196}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":128000,"output":32768}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2026-03-17","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.003,"output":0},"limit":{"context":0,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":16384}},"devstral-2-123b-instruct-2512":{"id":"devstral-2-123b-instruct-2512","name":"Devstral 2 123B Instruct (2512)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":16384}},"pixtral-12b-2409":{"id":"pixtral-12b-2409","name":"Pixtral 12B 2409","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-25","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-25","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":8192}},"gemma-3-27b-it":{"id":"gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.5},"limit":{"context":40000,"output":8192}}}},"dinference":{"id":"dinference","env":["DINFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.dinference.com/v1","name":"DInference","doc":"https://dinference.com","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.4},"limit":{"context":200000,"output":128000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08","last_updated":"2025-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0675,"output":0.27},"limit":{"context":131072,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.65},"limit":{"context":200000,"output":128000}}}},"cloudflare-ai-gateway":{"id":"cloudflare-ai-gateway","env":["CLOUDFLARE_API_TOKEN","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_GATEWAY_ID"],"npm":"ai-gateway-provider","name":"Cloudflare AI Gateway","doc":"https://developers.cloudflare.com/ai-gateway/","models":{"workers-ai/@cf/zai-org/glm-4.7-flash":{"id":"workers-ai/@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{"id":"workers-ai/@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/ibm-granite/granite-4.0-h-micro":{"id":"workers-ai/@cf/ibm-granite/granite-4.0-h-micro","name":"IBM Granite 4.0 H Micro","family":"granite","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.017,"output":0.11},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-small-en-v1.5":{"id":"workers-ai/@cf/baai/bge-small-en-v1.5","name":"BGE Small EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-large-en-v1.5":{"id":"workers-ai/@cf/baai/bge-large-en-v1.5","name":"BGE Large EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-reranker-base":{"id":"workers-ai/@cf/baai/bge-reranker-base","name":"BGE Reranker Base","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0031,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-m3":{"id":"workers-ai/@cf/baai/bge-m3","name":"BGE M3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-base-en-v1.5":{"id":"workers-ai/@cf/baai/bge-base-en-v1.5","name":"BGE Base EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.067,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/pfnet/plamo-embedding-1b":{"id":"workers-ai/@cf/pfnet/plamo-embedding-1b","name":"PLaMo Embedding 1B","family":"plamo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.019,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"id":"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":4.88},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/facebook/bart-large-cnn":{"id":"workers-ai/@cf/facebook/bart-large-cnn","name":"BART Large CNN","family":"bart","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1":{"id":"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/myshell-ai/melotts":{"id":"workers-ai/@cf/myshell-ai/melotts","name":"MyShell MeloTTS","family":"melotts","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/pipecat-ai/smart-turn-v2":{"id":"workers-ai/@cf/pipecat-ai/smart-turn-v2","name":"Pipecat Smart Turn v2","family":"smart-turn","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/moonshotai/kimi-k2.5":{"id":"workers-ai/@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/google/gemma-3-12b-it":{"id":"workers-ai/@cf/google/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwq-32b":{"id":"workers-ai/@cf/qwen/qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8":{"id":"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct":{"id":"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct","name":"Qwen 2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-embedding-0.6b":{"id":"workers-ai/@cf/qwen/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8","name":"Llama 3.1 8B Instruct FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.29},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct-awq","name":"Llama 3 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq","name":"Llama 3.1 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049,"output":0.68},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-3b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-guard-3-8b":{"id":"workers-ai/@cf/meta/llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":0.03},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-1b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.027,"output":0.2},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"id":"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast","name":"Llama 3.3 70B Instruct FP8 Fast","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.25},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.8299999999999998},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/m2m100-1.2b":{"id":"workers-ai/@cf/meta/m2m100-1.2b","name":"M2M100 1.2B","family":"m2m","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-2-7b-chat-fp16":{"id":"workers-ai/@cf/meta/llama-2-7b-chat-fp16","name":"Llama 2 7B Chat FP16","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":6.67},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.83},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct":{"id":"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-es":{"id":"workers-ai/@cf/deepgram/aura-2-es","name":"Deepgram Aura 2 (ES)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/nova-3":{"id":"workers-ai/@cf/deepgram/nova-3","name":"Deepgram Nova 3","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-en":{"id":"workers-ai/@cf/deepgram/aura-2-en","name":"Deepgram Aura 2 (EN)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-120b":{"id":"workers-ai/@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-20b":{"id":"workers-ai/@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B":{"id":"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B","name":"IndicTrans2 EN-Indic 1B","family":"indictrans","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/huggingface/distilbert-sst-2-int8":{"id":"workers-ai/@cf/huggingface/distilbert-sst-2-int8","name":"DistilBERT SST-2 INT8","family":"distilbert","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.026,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"id":"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it","name":"Gemma SEA-LION v4 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4":{"id":"openai/gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-sonnet":{"id":"anthropic/claude-3-sonnet","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-3-5-haiku":{"id":"anthropic/claude-3-5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"ai-gateway-provider"}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"kuae-cloud-coding-plan":{"id":"kuae-cloud-coding-plan","env":["KUAE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-plan-endpoint.kuaecloud.net/v1","name":"KUAE Cloud Coding Plan","doc":"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"upstage":{"id":"upstage","env":["UPSTAGE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.upstage.ai/v1/solar","name":"Upstage","doc":"https://developers.upstage.ai/docs/apis/chat","models":{"solar-pro2":{"id":"solar-pro2","name":"solar-pro2","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":65536,"output":8192}},"solar-mini":{"id":"solar-mini","name":"solar-mini","family":"solar-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-06-12","last_updated":"2025-04-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":4096}},"solar-pro3":{"id":"solar-pro3","name":"solar-pro3","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":131072,"output":8192}}}},"inception":{"id":"inception","env":["INCEPTION_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inceptionlabs.ai/v1/","name":"Inception","doc":"https://platform.inceptionlabs.ai/docs","models":{"mercury-2":{"id":"mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"mercury":{"id":"mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-06-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}},"mercury-edit":{"id":"mercury-edit","name":"Mercury Edit","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":8192}},"mercury-coder":{"id":"mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-02-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}}}},"submodel":{"id":"submodel","env":["SUBMODEL_INSTAGEN_ACCESS_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.submodel.ai/v1","name":"submodel","doc":"https://submodel.gitbook.io","models":{"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.3},"limit":{"context":262144,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":32768}}}},"minimax-cn-coding-plan":{"id":"minimax-cn-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax Coding Plan (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/coding-plan/intro","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"novita-ai":{"id":"novita-ai","env":["NOVITA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.novita.ai/openai","name":"NovitaAI","doc":"https://novita.ai/docs/guides/introduction","models":{"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai-org/glm-4.5-air":{"id":"zai-org/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/autoglm-phone-9b-multilingual":{"id":"zai-org/autoglm-phone-9b-multilingual","name":"AutoGLM-Phone-9B-Multilingual","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":65536,"output":65536}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"zai-org/glm-4.6v":{"id":"zai-org/glm-4.6v","name":"GLM 4.6V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.055},"limit":{"context":131072,"output":32768}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"Wizardlm 2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"skywork/r1v4-lite":{"id":"skywork/r1v4-lite","name":"Skywork R1V4-Lite","family":"skywork","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":65536}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"Mythomax L2 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":4096,"output":3200}},"paddlepaddle/paddleocr-vl":{"id":"paddlepaddle/paddleocr-vl","name":"PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16384,"output":16384}},"baichuan/baichuan-m2-32b":{"id":"baichuan/baichuan-m2-32b","name":"baichuan-m2-32b","family":"baichuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-12","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":131072,"output":131072}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kat Coder Pro","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-05","last_updated":"2026-01-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":128000}},"kwaipilot/kat-coder":{"id":"kwaipilot/kat-coder","name":"KAT-Coder-Pro V1(Free)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek/deepseek-v3-turbo":{"id":"deepseek/deepseek-v3-turbo","name":"DeepSeek V3 (Turbo)\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.3},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"Deepseek Prover V2 671B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":160000,"output":160000}},"deepseek/deepseek-r1-turbo":{"id":"deepseek/deepseek-r1-turbo","name":"DeepSeek R1 (Turbo)\t","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-ocr-2":{"id":"deepseek/deepseek-ocr-2","name":"deepseek/deepseek-ocr-2","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5,"cache_read":0.35},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-r1-0528-qwen3-8b":{"id":"deepseek/deepseek-r1-0528-qwen3-8b","name":"DeepSeek R1 0528 Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-05-29","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.09},"limit":{"context":128000,"output":32000}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill LLama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"Deepseek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"Deepseek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.269,"output":0.4,"cache_read":0.1345},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-ocr":{"id":"deepseek/deepseek-ocr","name":"DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"Deepseek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"baidu/ernie-4.5-vl-28b-a3b-thinking":{"id":"baidu/ernie-4.5-vl-28b-a3b-thinking","name":"ERNIE-4.5-VL-28B-A3B-Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":0.39},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":30000,"output":8000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21B-a3b":{"id":"baidu/ernie-4.5-21B-a3b","name":"ERNIE 4.5 21B A3B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"baidu/ernie-4.5-21B-a3b-thinking":{"id":"baidu/ernie-4.5-21B-a3b-thinking","name":"ERNIE-4.5-21B-A3B-Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.119,"output":0.2},"limit":{"context":98304,"output":16384}},"qwen/qwen3-4b-fp8":{"id":"qwen/qwen3-4b-fp8","name":"Qwen3 4B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":128000,"output":20000}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.58},"limit":{"context":131072,"output":16384}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":64000}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30b A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen-mt-plus":{"id":"qwen/qwen-mt-plus","name":"Qwen MT Plus","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-03","last_updated":"2025-09-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75},"limit":{"context":16384,"output":8192}},"qwen/qwen3-omni-30b-a3b-instruct":{"id":"qwen/qwen3-omni-30b-a3b-instruct","name":"Qwen3 Omni 30B A3B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","video","audio","image"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":0.4},"limit":{"context":32000,"output":8192}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"qwen/qwen3-vl-30b-a3b-thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.98,"output":3.95},"limit":{"context":131072,"output":32768}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":32768}},"qwen/qwen2.5-7b-instruct":{"id":"qwen/qwen2.5-7b-instruct","name":"Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"output":32000}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"qwen/qwen3-vl-30b-a3b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"qwen/qwen3-vl-8b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.11,"output":8.45},"limit":{"context":262144,"output":65536}},"qwen/qwen3-8b-fp8":{"id":"qwen/qwen3-8b-fp8","name":"Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":128000,"output":20000}},"qwen/qwen3-omni-30b-a3b-thinking":{"id":"qwen/qwen3-omni-30b-a3b-thinking","name":"Qwen3 Omni 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","audio","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-07","last_updated":"2024-12-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.135,"output":0.4},"limit":{"context":131072,"output":120000}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.59},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Llama3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":8192,"output":8192}},"meta-llama/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.85},"limit":{"context":1048576,"output":8192}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-07-30","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.25},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: GPT OSS 20B","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":131072,"output":32768}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"sao10k/l3-70b-euryale-v2.1":{"id":"sao10k/l3-70b-euryale-v2.1","name":"L3 70B Euryale V2.1\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2024-06-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l31-70b-euryale-v2.2":{"id":"sao10k/l31-70b-euryale-v2.2","name":"L31 70B Euryale V2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3-8b-lunaris":{"id":"sao10k/l3-8b-lunaris","name":"Sao10k L3 8B Lunaris\t","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":8192}},"sao10k/L3-8B-Stheno-v3.2":{"id":"sao10k/L3-8B-Stheno-v3.2","name":"L3 8B Stheno V3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":32000}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.3},"limit":{"context":262144,"output":32000}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}}}},"opencode":{"id":"opencode","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/v1","name":"OpenCode Zen","doc":"https://opencode.ai/docs/zen","models":{"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"trinity-large-preview-free":{"id":"trinity-large-preview-free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072},"status":"deprecated"},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"kimi-k2.5-free":{"id":"kimi-k2.5-free","name":"Kimi K2.5 Free","family":"kimi-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":262144},"status":"deprecated"},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic"}},"grok-code":{"id":"grok-code","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-20","last_updated":"2025-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":256000,"output":256000},"status":"deprecated"},"nemotron-3-super-free":{"id":"nemotron-3-super-free","name":"Nemotron 3 Super Free","family":"nemotron-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}},"claude-3-5-haiku":{"id":"claude-3-5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"mimo-v2-flash-free":{"id":"mimo-v2-flash-free","name":"MiMo V2 Flash Free","family":"mimo-flash-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":65536},"status":"deprecated"},"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":262144,"output":65536},"status":"deprecated"},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"mimo-v2-omni-free":{"id":"mimo-v2-omni-free","name":"MiMo V2 Omni Free","family":"mimo-omni-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.08},"limit":{"context":262144,"output":65536}},"minimax-m2.1-free":{"id":"minimax-m2.1-free","name":"MiniMax M2.1 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated","provider":{"npm":"@ai-sdk/anthropic"}},"mimo-v2-pro-free":{"id":"mimo-v2-pro-free","name":"MiMo V2 Pro Free","family":"mimo-pro-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1048576,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"glm-5-free":{"id":"glm-5-free","name":"GLM-5 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"big-pickle":{"id":"big-pickle","name":"Big Pickle","family":"big-pickle","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.5-free":{"id":"minimax-m2.5-free","name":"MiniMax M2.5 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"glm-4.7-free":{"id":"glm-4.7-free","name":"GLM-4.7 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gemini-3-pro":{"id":"gemini-3-pro","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"status":"deprecated","provider":{"npm":"@ai-sdk/google"}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}}}},"poe":{"id":"poe","env":["POE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.poe.com/v1","name":"Poe","doc":"https://creator.poe.com/docs/external-applications/openai-compatible-api","models":{"stabilityai/stablediffusionxl":{"id":"stabilityai/stablediffusionxl","name":"StableDiffusionXL","family":"stable-diffusion","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-07-09","last_updated":"2023-07-09","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":200,"output":0}},"ideogramai/ideogram-v2":{"id":"ideogramai/ideogram-v2","name":"Ideogram-v2","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-21","last_updated":"2024-08-21","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram":{"id":"ideogramai/ideogram","name":"Ideogram","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a-turbo":{"id":"ideogramai/ideogram-v2a-turbo","name":"Ideogram-v2a-Turbo","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a":{"id":"ideogramai/ideogram-v2a","name":"Ideogram-v2a","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"novita/glm-4.7-flash":{"id":"novita/glm-4.7-flash","name":"glm-4.7-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":65500}},"novita/glm-4.7-n":{"id":"novita/glm-4.7-n","name":"glm-4.7-n","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/glm-4.6":{"id":"novita/glm-4.6","name":"GLM-4.6","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"novita/minimax-m2.1":{"id":"novita/minimax-m2.1","name":"minimax-m2.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/kimi-k2.5":{"id":"novita/kimi-k2.5","name":"kimi-k2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":262144}},"novita/glm-4.7":{"id":"novita/glm-4.7","name":"glm-4.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/kimi-k2-thinking":{"id":"novita/kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":0}},"novita/glm-4.6v":{"id":"novita/glm-4.6v","name":"glm-4.6v","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":32768}},"google/gemini-3.1-pro":{"id":"google/gemini-3.1-pro","name":"Gemini-3.1-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"google/lyria":{"id":"google/lyria","name":"Lyria","family":"lyria","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini-3-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-07","last_updated":"2025-10-07","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04},"limit":{"context":1048576,"output":65536}},"google/imagen-3":{"id":"google/imagen-3","name":"Imagen-3","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini-2.5-Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-26","last_updated":"2025-04-26","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":1065535,"output":65535}},"google/veo-3.1":{"id":"google/veo-3.1","name":"Veo-3.1","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-3-fast":{"id":"google/imagen-3-fast","name":"Imagen-3-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-17","last_updated":"2024-10-17","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/nano-banana-pro":{"id":"google/nano-banana-pro","name":"Nano-Banana-Pro","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":65536,"output":0}},"google/veo-2":{"id":"google/veo-2","name":"Veo-2","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-02","last_updated":"2024-12-02","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-4-ultra":{"id":"google/imagen-4-ultra","name":"Imagen-4-Ultra","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini-2.5-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-19","last_updated":"2025-06-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":1024000,"output":64000}},"google/nano-banana":{"id":"google/nano-banana","name":"Nano-Banana","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":65536,"output":0}},"google/veo-3.1-fast":{"id":"google/veo-3.1-fast","name":"Veo-3.1-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-deep-research":{"id":"google/gemini-deep-research","name":"gemini-deep-research","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6},"limit":{"context":1048576,"output":0}},"google/veo-3":{"id":"google/veo-3","name":"Veo-3","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-4":{"id":"google/imagen-4","name":"Imagen-4","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini-2.0-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.052,"output":0.21},"limit":{"context":990000,"output":8192}},"google/gemini-3.1-flash-lite":{"id":"google/gemini-3.1-flash-lite","name":"Gemini-3.1-Flash-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro":{"id":"google/gemini-3-pro","name":"Gemini-3-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6,"cache_read":0.16},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini-2.5-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.87,"output":7,"cache_read":0.087},"limit":{"context":1065535,"output":65535}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini-2.0-Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.42},"limit":{"context":990000,"output":8192}},"google/veo-3-fast":{"id":"google/veo-3-fast","name":"Veo-3-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-4-fast":{"id":"google/imagen-4-fast","name":"Imagen-4-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"lumalabs/ray2":{"id":"lumalabs/ray2","name":"Ray2","family":"ray","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":5000,"output":0}},"poetools/claude-code":{"id":"poetools/claude-code","name":"claude-code","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-10","last_updated":"2026-02-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":110},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54,"cache_read":0.068},"limit":{"context":124096,"output":4096}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":36,"cache_read":2.2},"limit":{"context":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2024-12-18","last_updated":"2024-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":54},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5-Chat","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-4-classic":{"id":"openai/gpt-4-classic","name":"GPT-4-Classic","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-25","last_updated":"2024-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5.3-instant":{"id":"openai/gpt-5.3-instant","name":"GPT-5.3-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-image-1.5":{"id":"openai/gpt-image-1.5","name":"gpt-image-1.5","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36,"cache_read":0.022},"limit":{"context":1047576,"output":32768}},"openai/gpt-image-1-mini":{"id":"openai/gpt-image-1-mini","name":"GPT-Image-1-Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/sora-2-pro":{"id":"openai/sora-2-pro","name":"Sora-2-Pro","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":16384,"output":2048}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":1047576,"output":32768}},"openai/gpt-4o-aug":{"id":"openai/gpt-4o-aug","name":"GPT-4o-Aug","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-21","last_updated":"2024-11-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9,"cache_read":1.1},"limit":{"context":128000,"output":8192}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18,"output":72},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":27},"limit":{"context":128000,"output":4096}},"openai/gpt-image-1":{"id":"openai/gpt-image-1","name":"GPT-Image-1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/sora-2":{"id":"openai/sora-2","name":"Sora-2","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-3.5-turbo-raw":{"id":"openai/gpt-3.5-turbo-raw","name":"GPT-3.5-Turbo-Raw","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":4524,"output":2048}},"openai/gpt-4o-mini-search":{"id":"openai/gpt-4o-mini-search","name":"GPT-4o-mini-Search","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54},"limit":{"context":128000,"output":8192}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4,"cache_read":0.25},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.36,"output":1.4,"cache_read":0.09},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["image"]},"open_weights":false,"cost":{"input":2.2,"output":14,"cache_read":0.22},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":27,"output":160},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/o1-pro":{"id":"openai/o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":140,"output":540},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT-4o-Latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":14},"limit":{"context":128000,"output":8192}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":19,"output":150},"limit":{"context":400000,"output":128000}},"openai/dall-e-3":{"id":"openai/dall-e-3","name":"DALL-E-3","family":"dall-e","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":800,"output":0}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-search":{"id":"openai/gpt-4o-search","name":"GPT-4o-Search","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9},"limit":{"context":128000,"output":8192}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4-Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.1,"cache_read":0.018},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4-classic-0314":{"id":"openai/gpt-4-classic-0314","name":"GPT-4-Classic-0314","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-26","last_updated":"2024-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36,"cache_read":0.0045},"limit":{"context":400000,"output":128000}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5-Turbo-Instruct","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-20","last_updated":"2023-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.8},"limit":{"context":3500,"output":1024}},"openai/gpt-5.2-instant":{"id":"openai/gpt-5.2-instant","name":"GPT-5.2-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"output":16384}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"o3-mini-high","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":4,"cache_read":0.068},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1-Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"topazlabs-co/topazlabs":{"id":"topazlabs-co/topazlabs","name":"TopazLabs","family":"topazlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":204,"output":0}},"runwayml/runway":{"id":"runwayml/runway","name":"Runway","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"runwayml/runway-gen-4-turbo":{"id":"runwayml/runway-gen-4-turbo","name":"Runway-Gen-4-Turbo","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-09","last_updated":"2025-05-09","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"anthropic/claude-sonnet-3.5-june":{"id":"anthropic/claude-sonnet-3.5-june","name":"Claude-Sonnet-3.5-June","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-18","last_updated":"2024-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude-Opus-4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":196608,"output":32000}},"anthropic/claude-sonnet-3.5":{"id":"anthropic/claude-sonnet-3.5","name":"Claude-Sonnet-3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-3":{"id":"anthropic/claude-haiku-3","name":"Claude-Haiku-3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-09","last_updated":"2024-03-09","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.1,"cache_read":0.021,"cache_write":0.26},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-3.5":{"id":"anthropic/claude-haiku-3.5","name":"Claude-Haiku-3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":3.4,"cache_read":0.068,"cache_write":0.85},"limit":{"context":189096,"output":8192}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude-Sonnet-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude-Haiku-4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":4.3,"cache_read":0.085,"cache_write":1.1},"limit":{"context":192000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude-Opus-4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-21","last_updated":"2025-11-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":196608,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude-Opus-4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":192512,"output":28672}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude-Sonnet-4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude-Sonnet-4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":32768}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude-Opus-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":983040,"output":128000}},"anthropic/claude-sonnet-3.7":{"id":"anthropic/claude-sonnet-3.7","name":"Claude-Sonnet-3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":196608,"output":128000}},"trytako/tako":{"id":"trytako/tako","name":"Tako","family":"tako","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2048,"output":0}},"elevenlabs/elevenlabs-music":{"id":"elevenlabs/elevenlabs-music","name":"ElevenLabs-Music","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-29","last_updated":"2025-08-29","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":2000,"output":0}},"elevenlabs/elevenlabs-v3":{"id":"elevenlabs/elevenlabs-v3","name":"ElevenLabs-v3","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"elevenlabs/elevenlabs-v2.5-turbo":{"id":"elevenlabs/elevenlabs-v2.5-turbo","name":"ElevenLabs-v2.5-Turbo","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-28","last_updated":"2024-10-28","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"cerebras/llama-3.1-8b-cs":{"id":"cerebras/llama-3.1-8b-cs","name":"llama-3.1-8b-cs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/gpt-oss-120b-cs":{"id":"cerebras/gpt-oss-120b-cs","name":"gpt-oss-120b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-235b-2507-cs":{"id":"cerebras/qwen3-235b-2507-cs","name":"qwen3-235b-2507-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/llama-3.3-70b-cs":{"id":"cerebras/llama-3.3-70b-cs","name":"llama-3.3-70b-cs","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-32b-cs":{"id":"cerebras/qwen3-32b-cs","name":"qwen3-32b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok-4-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok-4.1-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok-4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":128000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok-4.1-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok-4-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}}}},"amazon-bedrock":{"id":"amazon-bedrock","env":["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_REGION","AWS_BEARER_TOKEN_BEDROCK"],"npm":"@ai-sdk/amazon-bedrock","name":"Amazon Bedrock","doc":"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html","models":{"deepseek.r1-v1:0":{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"meta.llama3-1-70b-instruct-v1:0":{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"qwen.qwen3-coder-480b-a35b-v1:0":{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.8},"limit":{"context":131072,"output":65536}},"eu.anthropic.claude-sonnet-4-6":{"id":"eu.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"eu.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (EU)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"mistral.mistral-large-3-675b-instruct":{"id":"mistral.mistral-large-3-675b-instruct","name":"Mistral Large 3","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":8192}},"openai.gpt-oss-120b-1:0":{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-opus-4-20250514-v1:0":{"id":"us.anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"nvidia.nemotron-nano-12b-v2":{"id":"nvidia.nemotron-nano-12b-v2","name":"NVIDIA Nemotron Nano 12B v2 VL BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-7-sonnet-20250219-v1:0":{"id":"anthropic.claude-3-7-sonnet-20250219-v1:0","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic.claude-sonnet-4-6":{"id":"anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"minimax.minimax-m2.1":{"id":"minimax.minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"global.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"global.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"mistral.ministral-3-8b-instruct":{"id":"mistral.ministral-3-8b-instruct","name":"Ministral 3 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":4096}},"openai.gpt-oss-safeguard-20b":{"id":"openai.gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.2},"limit":{"context":128000,"output":4096}},"amazon.nova-lite-v1:0":{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"mistral.pixtral-large-2502-v1:0":{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":8192}},"google.gemma-3-12b-it":{"id":"google.gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"meta.llama3-1-8b-instruct-v1:0":{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":4096}},"mistral.devstral-2-123b":{"id":"mistral.devstral-2-123b","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":8192}},"anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"meta.llama4-maverick-17b-instruct-v1:0":{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.97},"limit":{"context":1000000,"output":16384}},"mistral.ministral-3-14b-instruct":{"id":"mistral.ministral-3-14b-instruct","name":"Ministral 14B 3.0","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"minimax.minimax-m2":{"id":"minimax.minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204608,"output":128000}},"amazon.nova-micro-v1:0":{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"anthropic.claude-3-5-sonnet-20241022-v2:0":{"id":"anthropic.claude-3-5-sonnet-20241022-v2:0","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"nvidia.nemotron-nano-3-30b":{"id":"nvidia.nemotron-nano-3-30b","name":"NVIDIA Nemotron Nano 3 30B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":128000,"output":4096}},"anthropic.claude-sonnet-4-20250514-v1:0":{"id":"anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"qwen.qwen3-vl-235b-a22b":{"id":"qwen.qwen3-vl-235b-a22b","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"global.anthropic.claude-opus-4-6-v1":{"id":"global.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"writer.palmyra-x4-v1:0":{"id":"writer.palmyra-x4-v1:0","name":"Palmyra X4","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":122880,"output":8192}},"minimax.minimax-m2.5":{"id":"minimax.minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":98304}},"amazon.nova-pro-v1:0":{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"us.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"us.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"meta.llama3-2-90b-instruct-v1:0":{"id":"meta.llama3-2-90b-instruct-v1:0","name":"Llama 3.2 90B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-opus-4-6-v1":{"id":"us.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"google.gemma-3-4b-it":{"id":"google.gemma-3-4b-it","name":"Gemma 3 4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.08},"limit":{"context":128000,"output":4096}},"anthropic.claude-opus-4-6-v1":{"id":"anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"zai.glm-4.7-flash":{"id":"zai.glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":131072}},"anthropic.claude-opus-4-20250514-v1:0":{"id":"anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"global.anthropic.claude-sonnet-4-6":{"id":"global.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"meta.llama3-2-1b-instruct-v1:0":{"id":"meta.llama3-2-1b-instruct-v1:0","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":4096}},"anthropic.claude-opus-4-1-20250805-v1:0":{"id":"anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"meta.llama4-scout-17b-instruct-v1:0":{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":3500000,"output":16384}},"deepseek.v3.2":{"id":"deepseek.v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":1.85},"limit":{"context":163840,"output":81920}},"deepseek.v3-v1:0":{"id":"deepseek.v3-v1:0","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":163840,"output":81920}},"mistral.ministral-3-3b-instruct":{"id":"mistral.ministral-3-3b-instruct","name":"Ministral 3 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":256000,"output":8192}},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (Global)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"nvidia.nemotron-nano-9b-v2":{"id":"nvidia.nemotron-nano-9b-v2","name":"NVIDIA Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.23},"limit":{"context":128000,"output":4096}},"writer.palmyra-x5-v1:0":{"id":"writer.palmyra-x5-v1:0","name":"Palmyra X5","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"meta.llama3-3-70b-instruct-v1:0":{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"zai.glm-4.7":{"id":"zai.glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"moonshot.kimi-k2-thinking":{"id":"moonshot.kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"output":256000}},"anthropic.claude-3-haiku-20240307-v1:0":{"id":"anthropic.claude-3-haiku-20240307-v1:0","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-02","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25},"limit":{"context":200000,"output":4096}},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"openai.gpt-oss-20b-1:0":{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-sonnet-4-6":{"id":"us.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"meta.llama3-2-11b-instruct-v1:0":{"id":"meta.llama3-2-11b-instruct-v1:0","name":"Llama 3.2 11B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":4096}},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"eu.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"meta.llama3-1-405b-instruct-v1:0":{"id":"meta.llama3-1-405b-instruct-v1:0","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":2.4},"limit":{"context":128000,"output":4096}},"qwen.qwen3-next-80b-a3b":{"id":"qwen.qwen3-next-80b-a3b","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"us.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"us.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"qwen.qwen3-coder-30b-a3b-v1:0":{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":131072}},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"us.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (US)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"qwen.qwen3-235b-a22b-2507-v1:0":{"id":"qwen.qwen3-235b-a22b-2507-v1:0","name":"Qwen3 235B A22B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":131072}},"openai.gpt-oss-safeguard-120b":{"id":"openai.gpt-oss-safeguard-120b","name":"GPT OSS Safeguard 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-5-sonnet-20240620-v1:0":{"id":"anthropic.claude-3-5-sonnet-20240620-v1:0","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"mistral.voxtral-small-24b-2507":{"id":"mistral.voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"mistral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":8192}},"anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"meta.llama3-2-3b-instruct-v1:0":{"id":"meta.llama3-2-3b-instruct-v1:0","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":131000,"output":4096}},"google.gemma-3-27b-it":{"id":"google.gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-27","last_updated":"2025-07-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":202752,"output":8192}},"us.anthropic.claude-opus-4-1-20250805-v1:0":{"id":"us.anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"global.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-3-5-haiku-20241022-v1:0":{"id":"anthropic.claude-3-5-haiku-20241022-v1:0","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"zai.glm-5":{"id":"zai.glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":101376}},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"eu.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-opus-4-5-20251101-v1:0":{"id":"anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"nvidia.nemotron-super-3-120b":{"id":"nvidia.nemotron-super-3-120b","name":"NVIDIA Nemotron 3 Super 120B A12B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.65},"limit":{"context":262144,"output":131072}},"eu.anthropic.claude-opus-4-6-v1":{"id":"eu.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"amazon.nova-premier-v1:0":{"id":"amazon.nova-premier-v1:0","name":"Nova Premier","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":16384}},"amazon.nova-2-lite-v1:0":{"id":"amazon.nova-2-lite-v1:0","name":"Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":2.75},"limit":{"context":128000,"output":4096}},"qwen.qwen3-32b-v1:0":{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":16384,"output":16384}},"mistral.magistral-small-2509":{"id":"mistral.magistral-small-2509","name":"Magistral Small 1.2","family":"magistral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":40000}},"moonshotai.kimi-k2.5":{"id":"moonshotai.kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":256000,"output":256000}},"mistral.voxtral-mini-3b-2507":{"id":"mistral.voxtral-mini-3b-2507","name":"Voxtral Mini 3B 2507","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":4096}},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"alibaba-coding-plan-cn":{"id":"alibaba-coding-plan-cn","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan (China)","doc":"https://help.aliyun.com/zh/model-studio/coding-plan","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"output":24576}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"minimax-cn":{"id":"minimax-cn","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/guides/quickstart","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"bailing":{"id":"bailing","env":["BAILING_API_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tbox.cn/api/llm/v1/chat/completions","name":"Bailing","doc":"https://alipaytbox.yuque.com/sxs0ba/ling/intro","models":{"Ring-1T":{"id":"Ring-1T","name":"Ring-1T","family":"ring","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}},"Ling-1T":{"id":"Ling-1T","name":"Ling-1T","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}}}},"azure-cognitive-services":{"id":"azure-cognitive-services","env":["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME","AZURE_COGNITIVE_SERVICES_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure Cognitive Services","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}}}},"alibaba":{"id":"alibaba","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope-intl.aliyuncs.com/compatible-mode/v1","name":"Alibaba","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.63},"limit":{"context":131072,"output":8192}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":6},"limit":{"context":131072,"output":32768}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.5,"output":7.5},"limit":{"context":262144,"output":65536}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4,"reasoning":4.2},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":1000000,"output":65536}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8,"reasoning":2.4},"limit":{"context":131072,"output":32768}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.035},"limit":{"context":53248,"output":4096}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":6.4},"limit":{"context":32768,"output":8192}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2,"reasoning":0.5},"limit":{"context":1000000,"output":16384}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.175,"output":0.7},"limit":{"context":131072,"output":8192}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.8,"output":8.4},"limit":{"context":131072,"output":8192}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4},"limit":{"context":131072,"output":8192}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.7,"reasoning":2.1},"limit":{"context":131072,"output":8192}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6,"reasoning":3.6},"limit":{"context":262144,"output":65536}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4.8},"limit":{"context":131072,"output":8192}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.1,"output":0.4,"input_audio":6.76},"limit":{"context":32768,"output":2048}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.05},"limit":{"context":131072,"output":8192}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.27,"output":1.07,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.25},"limit":{"context":262144,"output":65536}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.07,"output":0.27,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.46,"output":7.37},"limit":{"context":16384,"output":8192}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.6,"reasoning":4.8},"limit":{"context":262144,"output":32768}},"qwen3-livetranslate-flash-realtime":{"id":"qwen3-livetranslate-flash-realtime","name":"Qwen3-LiveTranslate Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":10,"output":10,"input_audio":10,"output_audio":38},"limit":{"context":53248,"output":4096}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"reasoning":4},"limit":{"context":1000000,"output":32768}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.43,"output":1.66,"input_audio":3.81,"output_audio":15.11},"limit":{"context":65536,"output":16384}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":1000000,"output":32768}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":131072,"output":8192}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.52,"output":1.99,"input_audio":4.57,"output_audio":18.13},"limit":{"context":65536,"output":16384}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":34096,"output":4096}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":2.4},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":32768}},"qwen-plus-character-ja":{"id":"qwen-plus-character-ja","name":"Qwen Plus Character (Japanese)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.4},"limit":{"context":8192,"output":512}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.49},"limit":{"context":16384,"output":8192}}}},"cloudflare-workers-ai":{"id":"cloudflare-workers-ai","env":["CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1","name":"Cloudflare Workers AI","doc":"https://developers.cloudflare.com/workers-ai/models/","models":{"@cf/zai-org/glm-4.7-flash":{"id":"@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"@cf/nvidia/nemotron-3-120b-a12b":{"id":"@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"@cf/ibm-granite/granite-4.0-h-micro":{"id":"@cf/ibm-granite/granite-4.0-h-micro","name":"IBM Granite 4.0 H Micro","family":"granite","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.017,"output":0.11},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-small-en-v1.5":{"id":"@cf/baai/bge-small-en-v1.5","name":"BGE Small EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-large-en-v1.5":{"id":"@cf/baai/bge-large-en-v1.5","name":"BGE Large EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-reranker-base":{"id":"@cf/baai/bge-reranker-base","name":"BGE Reranker Base","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0031,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-m3":{"id":"@cf/baai/bge-m3","name":"BGE M3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-base-en-v1.5":{"id":"@cf/baai/bge-base-en-v1.5","name":"BGE Base EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.067,"output":0},"limit":{"context":128000,"output":16384}},"@cf/pfnet/plamo-embedding-1b":{"id":"@cf/pfnet/plamo-embedding-1b","name":"PLaMo Embedding 1B","family":"plamo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.019,"output":0},"limit":{"context":128000,"output":16384}},"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"id":"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":4.88},"limit":{"context":128000,"output":16384}},"@cf/facebook/bart-large-cnn":{"id":"@cf/facebook/bart-large-cnn","name":"BART Large CNN","family":"bart","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/mistral/mistral-7b-instruct-v0.1":{"id":"@cf/mistral/mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":128000,"output":16384}},"@cf/myshell-ai/melotts":{"id":"@cf/myshell-ai/melotts","name":"MyShell MeloTTS","family":"melotts","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/pipecat-ai/smart-turn-v2":{"id":"@cf/pipecat-ai/smart-turn-v2","name":"Pipecat Smart Turn v2","family":"smart-turn","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/moonshotai/kimi-k2.5":{"id":"@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"@cf/google/gemma-3-12b-it":{"id":"@cf/google/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwq-32b":{"id":"@cf/qwen/qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwen3-30b-a3b-fp8":{"id":"@cf/qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwen2.5-coder-32b-instruct":{"id":"@cf/qwen/qwen2.5-coder-32b-instruct","name":"Qwen 2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwen3-embedding-0.6b":{"id":"@cf/qwen/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.1-8b-instruct-fp8":{"id":"@cf/meta/llama-3.1-8b-instruct-fp8","name":"Llama 3.1 8B Instruct FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.29},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3-8b-instruct-awq":{"id":"@cf/meta/llama-3-8b-instruct-awq","name":"Llama 3 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.1-8b-instruct-awq":{"id":"@cf/meta/llama-3.1-8b-instruct-awq","name":"Llama 3.1 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.2-11b-vision-instruct":{"id":"@cf/meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049,"output":0.68},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.2-3b-instruct":{"id":"@cf/meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-guard-3-8b":{"id":"@cf/meta/llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":0.03},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.2-1b-instruct":{"id":"@cf/meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.027,"output":0.2},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"id":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","name":"Llama 3.3 70B Instruct FP8 Fast","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.25},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.1-8b-instruct":{"id":"@cf/meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.8299999999999998},"limit":{"context":128000,"output":16384}},"@cf/meta/m2m100-1.2b":{"id":"@cf/meta/m2m100-1.2b","name":"M2M100 1.2B","family":"m2m","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-2-7b-chat-fp16":{"id":"@cf/meta/llama-2-7b-chat-fp16","name":"Llama 2 7B Chat FP16","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":6.67},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3-8b-instruct":{"id":"@cf/meta/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.83},"limit":{"context":128000,"output":16384}},"@cf/mistralai/mistral-small-3.1-24b-instruct":{"id":"@cf/mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"@cf/deepgram/aura-2-es":{"id":"@cf/deepgram/aura-2-es","name":"Deepgram Aura 2 (ES)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/deepgram/nova-3":{"id":"@cf/deepgram/nova-3","name":"Deepgram Nova 3","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/deepgram/aura-2-en":{"id":"@cf/deepgram/aura-2-en","name":"Deepgram Aura 2 (EN)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/openai/gpt-oss-120b":{"id":"@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"@cf/openai/gpt-oss-20b":{"id":"@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"@cf/ai4bharat/indictrans2-en-indic-1B":{"id":"@cf/ai4bharat/indictrans2-en-indic-1B","name":"IndicTrans2 EN-Indic 1B","family":"indictrans","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/huggingface/distilbert-sst-2-int8":{"id":"@cf/huggingface/distilbert-sst-2-int8","name":"DistilBERT SST-2 INT8","family":"distilbert","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.026,"output":0},"limit":{"context":128000,"output":16384}},"@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"id":"@cf/aisingapore/gemma-sea-lion-v4-27b-it","name":"Gemma SEA-LION v4 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}}}},"groq":{"id":"groq","env":["GROQ_API_KEY"],"npm":"@ai-sdk/groq","name":"Groq","doc":"https://console.groq.com/docs/models","models":{"llama3-70b-8192":{"id":"llama3-70b-8192","name":"Llama 3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":8192,"output":8192},"status":"deprecated"},"qwen-qwq-32b":{"id":"qwen-qwq-32b","name":"Qwen QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-27","last_updated":"2024-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.39},"limit":{"context":131072,"output":16384},"status":"deprecated"},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":131072,"output":131072}},"llama-guard-3-8b":{"id":"llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":0.99},"limit":{"context":131072,"output":8192},"status":"deprecated"},"llama3-8b-8192":{"id":"llama3-8b-8192","name":"Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":8192,"output":8192},"status":"deprecated"},"mistral-saba-24b":{"id":"mistral-saba-24b","name":"Mistral Saba 24B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-02-06","last_updated":"2025-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.79,"output":0.79},"limit":{"context":32768,"output":32768},"status":"deprecated"},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":131072,"output":32768}},"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11-08","release_date":"2024-12-23","last_updated":"2024-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":16384}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.34},"limit":{"context":131072,"output":8192}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":131072,"output":1024}},"meta-llama/llama-4-maverick-17b-128e-instruct":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}}}},"wandb":{"id":"wandb","env":["WANDB_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inference.wandb.ai/v1","name":"Weights & Biases","doc":"https://docs.wandb.ai/guides/integrations/inference/","models":{"zai-org/GLM-5-FP8":{"id":"zai-org/GLM-5-FP8","name":"GLM 5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":200000,"output":200000}},"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8":{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8","name":"NVIDIA Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"microsoft/Phi-4-mini-instruct":{"id":"microsoft/Phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.35},"limit":{"context":128000,"output":128000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":161000,"output":161000}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.85},"limit":{"context":262144,"output":262144}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":64000,"output":64000}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":128000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1.5},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":131072}},"OpenPipe/Qwen3-14B-Instruct":{"id":"OpenPipe/Qwen3-14B-Instruct","name":"OpenPipe Qwen3 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":32768,"output":32768}}}},"aihubmix":{"id":"aihubmix","env":["AIHUBMIX_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://aihubmix.com/v1","name":"AIHubMix","doc":"https://docs.aihubmix.com","models":{"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.12},"limit":{"context":262144,"output":262144}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":7,"output":28,"cache_read":3.5},"limit":{"context":400000,"output":128000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":2.82},"limit":{"context":204800,"output":131072}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.82,"output":3.29},"limit":{"context":262144,"output":131000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"coding-glm-4.7-free":{"id":"coding-glm-4.7-free","name":"Coding GLM 4.7 Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"coding-minimax-m2.1-free":{"id":"coding-minimax-m2.1-free","name":"Coding MiniMax M2.1 Free","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.02},"limit":{"context":1000000,"output":65000}},"claude-opus-4-6-think":{"id":"claude-opus-4-6-think","name":"Claude Opus 4.6 Think","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.55},"limit":{"context":262144,"input":262144,"output":65536}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"gemini-3-pro-preview-search":{"id":"gemini-3-pro-preview-search","name":"Gemini 3 Pro Preview Search","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"deepseek-v3.2-think":{"id":"deepseek-v3.2-think","name":"DeepSeek-V3.2-Think","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"Kimi-K2-0905":{"id":"Kimi-K2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":1.37},"limit":{"context":262144,"output":65536}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-09","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":65536}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":5.5,"cache_read":0.11,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":2.8},"limit":{"context":262144,"output":262144}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.66},"limit":{"context":1000000,"output":65536}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":64000}},"deepseek-v3.2-fast":{"id":"deepseek-v3.2-fast","name":"DeepSeek-V3.2-Fast","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3.29},"limit":{"context":128000,"output":128000}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.41},"limit":{"context":128000,"output":32768}},"coding-glm-4.7":{"id":"coding-glm-4.7","name":"Coding-GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"coding-glm-5-free":{"id":"coding-glm-5-free","name":"Coding-GLM-5-Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.31},"limit":{"context":2000000,"output":65000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5-Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.25},"limit":{"context":128000,"output":16384}},"claude-sonnet-4-6-think":{"id":"claude-sonnet-4-6-think","name":"Claude Sonnet 4.6 Think","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"minimax-coding-plan":{"id":"minimax-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax Coding Plan (minimax.io)","doc":"https://platform.minimax.io/docs/coding-plan/intro","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"kimi-for-coding":{"id":"kimi-for-coding","env":["KIMI_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.kimi.com/coding/v1","name":"Kimi For Coding","doc":"https://www.kimi.com/coding/docs/en/third-party-agents.html","models":{"k2p5":{"id":"k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}}}},"mistral":{"id":"mistral","env":["MISTRAL_API_KEY"],"npm":"@ai-sdk/mistral","name":"Mistral","doc":"https://docs.mistral.ai/getting-started/models/","models":{"devstral-medium-2507":{"id":"devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"labs-devstral-small-2512":{"id":"labs-devstral-small-2512","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"devstral-medium-latest":{"id":"devstral-medium-latest","name":"Devstral 2 (latest)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"open-mistral-7b":{"id":"open-mistral-7b","name":"Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.25},"limit":{"context":8000,"output":8000}},"mistral-small-2506":{"id":"mistral-small-2506","name":"Mistral Small 3.2","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"codestral-latest":{"id":"codestral-latest","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"ministral-8b-latest":{"id":"ministral-8b-latest","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"magistral-small":{"id":"magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral-large-2512":{"id":"mistral-large-2512","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"ministral-3b-latest":{"id":"ministral-3b-latest","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"mistral-embed":{"id":"mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8000,"output":3072}},"devstral-small-2505":{"id":"devstral-small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"pixtral-12b":{"id":"pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"open-mixtral-8x7b":{"id":"open-mixtral-8x7b","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"output":32000}},"pixtral-large-latest":{"id":"pixtral-large-latest","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistral-large-latest":{"id":"mistral-large-latest","name":"Mistral Large (latest)","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"mistral-medium-2508":{"id":"mistral-medium-2508","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 2.1","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":16384}},"mistral-small-latest":{"id":"mistral-small-latest","name":"Mistral Small (latest)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2024-09-01","last_updated":"2024-09-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"open-mixtral-8x22b":{"id":"open-mixtral-8x22b","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"mistral-medium-latest":{"id":"mistral-medium-latest","name":"Mistral Medium (latest)","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":16384}},"devstral-small-2507":{"id":"devstral-small-2507","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"magistral-medium-latest":{"id":"magistral-medium-latest","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}}}},"abacus":{"id":"abacus","env":["ABACUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://routellm.abacus.ai/v1","name":"Abacus","doc":"https://abacus.ai/help/api","models":{"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"grok-4-0709":{"id":"grok-4-0709","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":16384}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"output":16384}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048576,"output":65536}},"gpt-5.3-codex-xhigh":{"id":"gpt-5.3-codex-xhigh","name":"GPT-5.3 Codex XHigh","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"output":100000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"output":32768}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":32768}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"output":32768}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":200000,"output":100000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048576,"output":65536}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"output":32768}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":128000,"output":32768}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"input":922000,"output":128000}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo Preview","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":8},"limit":{"context":256000,"output":8192}},"qwen-2.5-coder-32b":{"id":"qwen-2.5-coder-32b","name":"Qwen 2.5 Coder 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.79,"output":0.79},"limit":{"context":128000,"output":8192}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"route-llm":{"id":"route-llm","name":"Route LLM","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":16384}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":131072,"output":16384}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":128000,"output":8192}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.66},"limit":{"context":128000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":128000,"output":4096}},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","name":"Llama 3.1 405B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":3.5},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.59},"limit":{"context":1000000,"output":32768}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"Qwen/qwen3-coder-480b-a35b-instruct":{"id":"Qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":128000,"output":8192}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":128000,"output":8192}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.6},"limit":{"context":262144,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.44},"limit":{"context":128000,"output":32768}}}},"fireworks-ai":{"id":"fireworks-ai","env":["FIREWORKS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.fireworks.ai/inference/v1/","name":"Fireworks AI","doc":"https://fireworks.ai/docs/","models":{"accounts/fireworks/routers/kimi-k2p5-turbo":{"id":"accounts/fireworks/routers/kimi-k2p5-turbo","name":"Kimi K2.5 Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/kimi-k2-instruct":{"id":"accounts/fireworks/models/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":128000,"output":16384}},"accounts/fireworks/models/glm-4p7":{"id":"accounts/fireworks/models/glm-4p7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.3},"limit":{"context":198000,"output":198000}},"accounts/fireworks/models/glm-5":{"id":"accounts/fireworks/models/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.5},"limit":{"context":202752,"output":131072}},"accounts/fireworks/models/deepseek-v3p1":{"id":"accounts/fireworks/models/deepseek-v3p1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":163840,"output":163840}},"accounts/fireworks/models/minimax-m2p1":{"id":"accounts/fireworks/models/minimax-m2p1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":200000,"output":200000}},"accounts/fireworks/models/glm-4p5-air":{"id":"accounts/fireworks/models/glm-4p5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/deepseek-v3p2":{"id":"accounts/fireworks/models/deepseek-v3p2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.28},"limit":{"context":160000,"output":160000}},"accounts/fireworks/models/minimax-m2p5":{"id":"accounts/fireworks/models/minimax-m2p5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"accounts/fireworks/models/kimi-k2p5":{"id":"accounts/fireworks/models/kimi-k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/kimi-k2-thinking":{"id":"accounts/fireworks/models/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.3},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/glm-4p5":{"id":"accounts/fireworks/models/glm-4p5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/gpt-oss-20b":{"id":"accounts/fireworks/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}}}},"stepfun":{"id":"stepfun","env":["STEPFUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.stepfun.com/v1","name":"StepFun","doc":"https://platform.stepfun.com/docs/zh/overview/concept","models":{"step-3.5-flash":{"id":"step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.096,"output":0.288,"cache_read":0.019},"limit":{"context":256000,"input":256000,"output":256000}},"step-2-16k":{"id":"step-2-16k","name":"Step 2 (16K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5.21,"output":16.44,"cache_read":1.04},"limit":{"context":16384,"input":16384,"output":8192}},"step-1-32k":{"id":"step-1-32k","name":"Step 1 (32K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.05,"output":9.59,"cache_read":0.41},"limit":{"context":32768,"input":32768,"output":32768}}}},"gitlab":{"id":"gitlab","env":["GITLAB_TOKEN"],"npm":"gitlab-ai-provider","name":"GitLab Duo","doc":"https://docs.gitlab.com/user/duo_agent_platform/","models":{"duo-chat-gpt-5-2-codex":{"id":"duo-chat-gpt-5-2-codex","name":"Agentic Chat (GPT-5.2 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-opus-4-6":{"id":"duo-chat-opus-4-6","name":"Agentic Chat (Claude Opus 4.6)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}},"duo-chat-gpt-5-mini":{"id":"duo-chat-gpt-5-mini","name":"Agentic Chat (GPT-5 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-3-codex":{"id":"duo-chat-gpt-5-3-codex","name":"Agentic Chat (GPT-5.3 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-5":{"id":"duo-chat-sonnet-4-5","name":"Agentic Chat (Claude Sonnet 4.5)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-haiku-4-5":{"id":"duo-chat-haiku-4-5","name":"Agentic Chat (Claude Haiku 4.5)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-codex":{"id":"duo-chat-gpt-5-codex","name":"Agentic Chat (GPT-5 Codex)","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-4-nano":{"id":"duo-chat-gpt-5-4-nano","name":"Agentic Chat (GPT-5.4 Nano)","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-2":{"id":"duo-chat-gpt-5-2","name":"Agentic Chat (GPT-5.2)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-4-mini":{"id":"duo-chat-gpt-5-4-mini","name":"Agentic Chat (GPT-5.4 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-6":{"id":"duo-chat-sonnet-4-6","name":"Agentic Chat (Claude Sonnet 4.6)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}},"duo-chat-gpt-5-4":{"id":"duo-chat-gpt-5-4","name":"Agentic Chat (GPT-5.4)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1050000,"input":922000,"output":128000}},"duo-chat-opus-4-5":{"id":"duo-chat-opus-4-5","name":"Agentic Chat (Claude Opus 4.5)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-1":{"id":"duo-chat-gpt-5-1","name":"Agentic Chat (GPT-5.1)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}}}},"siliconflow":{"id":"siliconflow","env":["SILICONFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.com/v1","name":"SiliconFlow","doc":"https://cloud.siliconflow.com/models","models":{"nex-agi/DeepSeek-V3.1-Nex-N1":{"id":"nex-agi/DeepSeek-V3.1-Nex-N1","name":"nex-agi/DeepSeek-V3.1-Nex-N1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"zai-org/GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131000,"output":131000}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"deepseek-ai/DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"deepseek-ai/DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"moonshotai/Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":2.29},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"meta-llama/Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen2.5-VL-7B-Instruct":{"id":"Qwen/Qwen2.5-VL-7B-Instruct","name":"Qwen/Qwen2.5-VL-7B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen/Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.42},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"openai/gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.45},"limit":{"context":131000,"output":8000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"openai/gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.18},"limit":{"context":131000,"output":8000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}}}},"togetherai":{"id":"togetherai","env":["TOGETHER_API_KEY"],"npm":"@ai-sdk/togetherai","name":"Together AI","doc":"https://docs.together.ai/docs/serverless-models","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":200000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2},"limit":{"context":200000,"output":200000}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":131072}},"essentialai/Rnj-1-Instruct":{"id":"essentialai/Rnj-1-Instruct","name":"Rnj-1 Instruct","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":32768}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"deepseek-ai/DeepSeek-V3-1":{"id":"deepseek-ai/DeepSeek-V3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":163839,"output":163839}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":131072,"output":131072}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":131072}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":262144}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.88,"output":0.88},"limit":{"context":131072,"output":131072}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-tput","name":"Qwen3 235B A22B Instruct 2507 FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":130000}},"Qwen/Qwen3-Coder-Next-FP8":{"id":"Qwen/Qwen3-Coder-Next-FP8","name":"Qwen3 Coder Next FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-03","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":262144}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}}}},"clarifai":{"id":"clarifai","env":["CLARIFAI_PAT"],"npm":"@ai-sdk/openai-compatible","api":"https://api.clarifai.com/v2/ext/openai/v1","name":"Clarifai","doc":"https://docs.clarifai.com/compute/inference/","models":{"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput":{"id":"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput","name":"MiniMax-M2.5 High Throughput","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"arcee_ai/AFM/models/trinity-mini":{"id":"arcee_ai/AFM/models/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR":{"id":"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR","name":"DeepSeek OCR","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":8192,"output":8192}},"clarifai/main/models/mm-poly-8b":{"id":"clarifai/main/models/mm-poly-8b","name":"MM Poly 8B","family":"mm-poly","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.658,"output":1.11},"limit":{"context":32768,"output":4096}},"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct":{"id":"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11458,"output":0.74812},"limit":{"context":262144,"output":65536}},"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":262144,"output":262144}},"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.36,"output":1.3},"limit":{"context":262144,"output":131072}},"mistralai/completion/models/Ministral-3-14B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-14B-Reasoning-2512","name":"Ministral 3 14B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":1.7},"limit":{"context":262144,"output":262144}},"mistralai/completion/models/Ministral-3-3B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-3B-Reasoning-2512","name":"Ministral 3 3B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.039,"output":0.54825},"limit":{"context":262144,"output":262144}},"openai/chat-completion/models/gpt-oss-120b-high-throughput":{"id":"openai/chat-completion/models/gpt-oss-120b-high-throughput","name":"GPT OSS 120B High Throughput","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":16384}},"openai/chat-completion/models/gpt-oss-20b":{"id":"openai/chat-completion/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.18},"limit":{"context":131072,"output":16384}}}},"berget":{"id":"berget","env":["BERGET_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.berget.ai/v1","name":"Berget.AI","doc":"https://api.berget.ai","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.3},"limit":{"context":128000,"output":8192}},"BAAI/bge-reranker-v2-m3":{"id":"BAAI/bge-reranker-v2-m3","name":"bge-reranker-v2-m3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-23","last_updated":"2025-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":512,"output":512}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"Multilingual-E5-large-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}},"intfloat/multilingual-e5-large":{"id":"intfloat/multilingual-e5-large","name":"Multilingual-E5-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-09","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB-Whisper-Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":480000,"output":4800}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":8192}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":32000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":8192}}}},"lucidquery":{"id":"lucidquery","env":["LUCIDQUERY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://lucidquery.com/api/v1","name":"LucidQuery AI","doc":"https://lucidquery.com/api/docs","models":{"lucidquery-nexus-coder":{"id":"lucidquery-nexus-coder","name":"LucidQuery Nexus Coder","family":"lucid","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":250000,"output":60000}},"lucidnova-rf1-100b":{"id":"lucidnova-rf1-100b","name":"LucidNova RF1 100B","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-09-16","release_date":"2024-12-28","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":120000,"output":8000}}}},"zhipuai-coding-plan":{"id":"zhipuai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/coding/paas/v4","name":"Zhipu AI Coding Plan","doc":"https://docs.bigmodel.cn/cn/coding-plan/overview","models":{"glm-4.6v-flash":{"id":"glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"deepseek":{"id":"deepseek","env":["DEEPSEEK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.deepseek.com","name":"DeepSeek","doc":"https://api-docs.deepseek.com/quick_start/pricing","models":{"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":128000,"output":64000}},"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek Chat","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":128000,"output":8192}}}},"lmstudio":{"id":"lmstudio","env":["LMSTUDIO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"http://127.0.0.1:1234/v1","name":"LMStudio","doc":"https://lmstudio.ai/models","models":{"qwen/qwen3-30b-a3b-2507":{"id":"qwen/qwen3-30b-a3b-2507","name":"Qwen3 30B A3B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwen3-coder-30b":{"id":"qwen/qwen3-coder-30b","name":"Qwen3 Coder 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}}}},"openrouter":{"id":"openrouter","env":["OPENROUTER_API_KEY"],"npm":"@openrouter/ai-sdk-provider","api":"https://openrouter.ai/api/v1","name":"OpenRouter","doc":"https://openrouter.ai/models","models":{"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Intellect 3","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":8192}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-9b-v2:free":{"id":"nvidia/nemotron-nano-9b-v2:free","name":"Nemotron Nano 9B V2 (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-09-05","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"nvidia/nemotron-nano-12b-v2-vl:free":{"id":"nvidia/nemotron-nano-12b-v2-vl:free","name":"Nemotron Nano 12B 2 VL (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"nvidia/nemotron-3-nano-30b-a3b:free":{"id":"nvidia/nemotron-3-nano-30b-a3b:free","name":"Nemotron 3 Nano 30B A3B (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-12-14","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-3-super-120b-a12b-free":{"id":"nvidia/nemotron-3-super-120b-a12b-free","name":"Nemotron 3 Super (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"arcee-ai/trinity-mini:free":{"id":"arcee-ai/trinity-mini:free","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":65536}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-14","last_updated":"2025-12-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262144,"output":65536}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":1048576,"output":65536}},"liquid/lfm-2.5-1.2b-thinking:free":{"id":"liquid/lfm-2.5-1.2b-thinking:free","name":"LFM2.5-1.2B-Thinking (free)","family":"liquid","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"liquid/lfm-2.5-1.2b-instruct:free":{"id":"liquid/lfm-2.5-1.2b-instruct:free","name":"LFM2.5-1.2B-Instruct (free)","family":"liquid","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-04","last_updated":"2026-03-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"sourceful/riverflow-v2-fast-preview":{"id":"sourceful/riverflow-v2-fast-preview","name":"Riverflow V2 Fast Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-max-preview":{"id":"sourceful/riverflow-v2-max-preview","name":"Riverflow V2 Max Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-standard-preview":{"id":"sourceful/riverflow-v2-standard-preview","name":"Riverflow V2 Standard Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"Step 3.5 Flash (free)","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"cognitivecomputations/dolphin-mistral-24b-venice-edition:free":{"id":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free","name":"Uncensored (free)","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-07-09","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":32768}},"deepseek/deepseek-v3.1-terminus:exacto":{"id":"deepseek/deepseek-v3.1-terminus:exacto","name":"DeepSeek V3.1 Terminus (exacto)","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":8192}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":200000,"output":8000}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2-0905:exacto":{"id":"moonshotai/kimi-k2-0905:exacto","name":"Kimi K2 Instruct 0905 (exacto)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2:free":{"id":"moonshotai/kimi-k2:free","name":"Kimi K2 (free)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32800,"output":32800}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro-preview-06-05":{"id":"google/gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3n-e4b-it:free":{"id":"google/gemma-3n-e4b-it:free","name":"Gemma 3n 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.031},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3n-e2b-it:free":{"id":"google/gemma-3n-e2b-it:free","name":"Gemma 3n 2B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5,"cache_read":0.025,"cache_write":0.083,"input_audio":0.5,"output_audio":0.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"google/gemma-3-12b-it:free":{"id":"google/gemma-3-12b-it:free","name":"Gemma 3 12B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":8192}},"google/gemma-3-4b-it:free":{"id":"google/gemma-3-4b-it:free","name":"Gemma 3 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":32768}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1050000,"output":66000}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Gemma 3 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01703,"output":0.06815},"limit":{"context":96000,"output":96000}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":96000,"output":96000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3-27b-it:free":{"id":"google/gemma-3-27b-it:free","name":"Gemma 3 27B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.6:exacto":{"id":"z-ai/glm-4.6:exacto","name":"GLM 4.6 (exacto)","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.9,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":65535}},"z-ai/glm-4.5-air:free":{"id":"z-ai/glm-4.5-air:free","name":"GLM 4.5 Air (free)","family":"glm-air","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3-coder:free":{"id":"qwen/qwen3-coder:free","name":"Qwen3 Coder 480B A35B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":128000,"output":66536}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":65536}},"qwen/qwen3-coder:exacto":{"id":"qwen/qwen3-coder:exacto","name":"Qwen3 Coder (exacto)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.53},"limit":{"context":131072,"output":32768}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen3.5 Plus 2026-02-15","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":65536}},"qwen/qwen3-235b-a22b-07-25":{"id":"qwen/qwen3-235b-a22b-07-25","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.85},"limit":{"context":262144,"output":131072}},"qwen/qwen3-next-80b-a3b-instruct:free":{"id":"qwen/qwen3-next-80b-a3b-instruct:free","name":"Qwen3 Next 80B A3B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"qwen/qwen3-4b:free":{"id":"qwen/qwen3-4b:free","name":"Qwen3 4B (free)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-30","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.078,"output":0.312},"limit":{"context":262144,"output":81920}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"Grok 3 Mini Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi - Agent Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"Grok 4.20 Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"Grok 3 Beta","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"meta-llama/llama-3.3-70b-instruct:free":{"id":"meta-llama/llama-3.3-70b-instruct:free","name":"Llama 3.3 70B Instruct (free)","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"meta-llama/llama-3.2-3b-instruct:free":{"id":"meta-llama/llama-3.2-3b-instruct:free","name":"Llama 3.2 3B Instruct (free)","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"mistralai/devstral-medium-2507":{"id":"mistralai/devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistralai/mistral-small-2603":{"id":"mistralai/mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/devstral-small-2505":{"id":"mistralai/devstral-small-2505","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.12},"limit":{"context":128000,"output":128000}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Devstral 2 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":96000,"output":8192}},"mistralai/devstral-small-2507":{"id":"mistralai/devstral-small-2507","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":131072}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-120b:exacto":{"id":"openai/gpt-oss-120b:exacto","name":"GPT OSS 120B (exacto)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":32768}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.28},"limit":{"context":131072,"output":32768}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b:free":{"id":"openai/gpt-oss-20b:free","name":"gpt-oss-20b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2e-7,"output":0.00000125,"cache_read":2e-8},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-120b:free":{"id":"openai/gpt-oss-120b:free","name":"gpt-oss-120b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":7.5e-7,"output":0.0000045,"cache_read":7.5e-8},"limit":{"context":400000,"output":128000}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax-01","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000000,"output":1000000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.15,"cache_read":0.28,"cache_write":1.15},"limit":{"context":196600,"output":118000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"bytedance-seed/seedream-4.5":{"id":"bytedance-seed/seedream-4.5","name":"Seedream 4.5","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":4096}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":128000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"black-forest-labs/flux.2-pro":{"id":"black-forest-labs/flux.2-pro","name":"FLUX.2 Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-flex":{"id":"black-forest-labs/flux.2-flex","name":"FLUX.2 Flex","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":67344,"output":67344}},"black-forest-labs/flux.2-max":{"id":"black-forest-labs/flux.2-max","name":"FLUX.2 Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-16","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-klein-4b":{"id":"black-forest-labs/flux.2-klein-4b","name":"FLUX.2 Klein 4B","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-14","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Hermes 4 405B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Hermes 4 70B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-3-llama-3.1-405b:free":{"id":"nousresearch/hermes-3-llama-3.1-405b:free","name":"Hermes 3 405B Instruct (free)","family":"hermes","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}}}},"github-models":{"id":"github-models","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://models.github.ai/inference","name":"GitHub Models","doc":"https://docs.github.com/en/github-models","models":{"ai21-labs/ai21-jamba-1.5-mini":{"id":"ai21-labs/ai21-jamba-1.5-mini","name":"AI21 Jamba 1.5 Mini","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"ai21-labs/ai21-jamba-1.5-large":{"id":"ai21-labs/ai21-jamba-1.5-large","name":"AI21 Jamba 1.5 Large","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"microsoft/phi-4-multimodal-instruct":{"id":"microsoft/phi-4-multimodal-instruct","name":"Phi-4-multimodal-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi-3-small instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi-3-medium instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/mai-ds-r1":{"id":"microsoft/mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi-3.5-MoE instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-mini-instruct":{"id":"microsoft/phi-3.5-mini-instruct","name":"Phi-3.5-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16000,"output":4096}},"microsoft/phi-3-mini-4k-instruct":{"id":"microsoft/phi-3-mini-4k-instruct","name":"Phi-3-mini instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-4-mini-reasoning":{"id":"microsoft/phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi-3.5-vision instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi-3-medium instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-3-mini-128k-instruct":{"id":"microsoft/phi-3-mini-128k-instruct","name":"Phi-3-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-reasoning":{"id":"microsoft/phi-4-reasoning","name":"Phi-4-Reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi-3-small instruct (8k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"core42/jais-30b-chat":{"id":"core42/jais-30b-chat","name":"JAIS 30b Chat","family":"jais","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2023-08-30","last_updated":"2023-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"mistral-ai/ministral-3b":{"id":"mistral-ai/ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/mistral-medium-2505":{"id":"mistral-ai/mistral-medium-2505","name":"Mistral Medium 3 (25.05)","family":"mistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-nemo":{"id":"mistral-ai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/mistral-large-2411":{"id":"mistral-ai/mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-small-2503":{"id":"mistral-ai/mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/codestral-2501":{"id":"mistral-ai/codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":8192}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-90b-vision-instruct":{"id":"meta/llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3.1-405b-instruct":{"id":"meta/meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3-8b-instruct":{"id":"meta/meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3-70b-instruct":{"id":"meta/meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/meta-llama-3.1-70b-instruct":{"id":"meta/meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3.1-8b-instruct":{"id":"meta/meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o1-mini":{"id":"openai/o1-mini","name":"OpenAI o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":65536}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"cohere/cohere-command-a":{"id":"cohere/cohere-command-a","name":"Cohere Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus-08-2024":{"id":"cohere/cohere-command-r-plus-08-2024","name":"Cohere Command R+ 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r":{"id":"cohere/cohere-command-r","name":"Cohere Command R","family":"command-r","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-11","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-08-2024":{"id":"cohere/cohere-command-r-08-2024","name":"Cohere Command R 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus":{"id":"cohere/cohere-command-r-plus","name":"Cohere Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-04-04","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}}}},"302ai":{"id":"302ai","env":["302AI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.302.ai/v1","name":"302.AI","doc":"https://doc.302.ai","models":{"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"qwen3-235b-a22b-instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.143},"limit":{"context":128000,"output":65536}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"Deepseek-Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"qwen-max-latest":{"id":"qwen-max-latest","name":"Qwen-Max-Latest","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.343,"output":1.372},"limit":{"context":131072,"output":8192}},"qwen3-max-2025-09-23":{"id":"qwen3-max-2025-09-23","name":"qwen3-max-2025-09-23","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":258048,"output":65536}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"gpt-5.2-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"claude-opus-4-1-20250805-thinking":{"id":"claude-opus-4-1-20250805-thinking","name":"claude-opus-4-1-20250805-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-27","last_updated":"2025-05-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"qwen3-coder-480b-a35b-instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":262144,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"gemini-2.5-flash-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":128000,"output":98304}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"kimi-k2-0905-preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.632,"output":2.53},"limit":{"context":262144,"output":262144}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"claude-sonnet-4-5-20250929-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"mistral-large-2512":{"id":"mistral-large-2512","name":"mistral-large-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":3.3},"limit":{"context":128000,"output":262144}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1000000,"output":65536}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"gpt-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":32768}},"doubao-seed-1-6-vision-250815":{"id":"doubao-seed-1-6-vision-250815","name":"doubao-seed-1-6-vision-250815","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":1.143},"limit":{"context":256000,"output":32000}},"doubao-seed-1-6-thinking-250715":{"id":"doubao-seed-1-6-thinking-250715","name":"doubao-seed-1-6-thinking-250715","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.121,"output":1.21},"limit":{"context":256000,"output":16000}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"doubao-seed-1-8-251215","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":0.286},"limit":{"context":224000,"output":64000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"ministral-14b-2512":{"id":"ministral-14b-2512","name":"ministral-14b-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":0.33},"limit":{"context":128000,"output":128000}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-26","last_updated":"2025-10-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":1000000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1000000,"output":32768}},"gemini-2.5-flash-nothink":{"id":"gemini-2.5-flash-nothink","name":"gemini-2.5-flash-nothink","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-24","last_updated":"2025-06-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.86},"limit":{"context":128000,"output":16384}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"claude-opus-4-5-20251101-thinking":{"id":"claude-opus-4-5-20251101-thinking","name":"claude-opus-4-5-20251101-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"gpt-5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"deepseek-chat":{"id":"deepseek-chat","name":"Deepseek-Chat","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1000000,"output":32768}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"gemini-2.5-flash-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":30},"limit":{"context":32768,"output":32768}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"gemini-3-pro-image-preview","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":32768,"output":64000}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax-M1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":1.254},"limit":{"context":1000000,"output":128000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.575,"output":2.3},"limit":{"context":262144,"output":262144}},"gpt-5-thinking":{"id":"gpt-5-thinking","name":"gpt-5-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"deepseek-v3.2-thinking":{"id":"deepseek-v3.2-thinking","name":"DeepSeek-V3.2-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"chatgpt-4o-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-08","last_updated":"2024-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":16384}},"qwen-plus":{"id":"qwen-plus","name":"Qwen-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":1.2},"limit":{"context":1000000,"output":32768}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":1000000,"output":131072}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"kimi-k2-thinking-turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.265,"output":9.119},"limit":{"context":262144,"output":262144}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1000000,"output":64000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"gemini-2.0-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-11","release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":2000000,"output":8192}},"doubao-seed-code-preview-251028":{"id":"doubao-seed-code-preview-251028","name":"doubao-seed-code-preview-251028","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.14},"limit":{"context":256000,"output":32000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":1.08},"limit":{"context":128000,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.86},"limit":{"context":64000,"output":16384}},"qwen-flash":{"id":"qwen-flash","name":"Qwen-Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.22},"limit":{"context":1000000,"output":32768}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.145,"output":0.43},"limit":{"context":128000,"output":32768}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"gpt-5.1-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":128000,"output":16384}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"output":65536}},"gpt-4o":{"id":"gpt-4o","name":"gpt-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"grok-4.1":{"id":"grok-4.1","name":"grok-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10},"limit":{"context":200000,"output":64000}}}},"github-copilot":{"id":"github-copilot","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.githubcopilot.com","name":"GitHub Copilot","doc":"https://docs.github.com/en/copilot","models":{"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-27","last_updated":"2025-08-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"claude-sonnet-4.6":{"id":"claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":128000,"output":32000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"claude-haiku-4.5":{"id":"claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1-Codex-mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":16384}},"claude-opus-4.5":{"id":"claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":160000,"input":128000,"output":32000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":216000,"input":128000,"output":16000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"claude-sonnet-4.5":{"id":"claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"claude-opus-4.6":{"id":"claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":64000}},"claude-opus-41":{"id":"claude-opus-41","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":80000,"output":16000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":4096}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}}}},"moonshotai":{"id":"moonshotai","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.ai/v1","name":"Moonshot AI","doc":"https://platform.moonshot.ai/docs/api/chat","models":{"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}}}},"google-vertex":{"id":"google-vertex","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex","name":"Vertex","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/models","models":{"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":65536,"output":65536}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"zai-org/glm-5-maas":{"id":"zai-org/glm-5-maas","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.1},"limit":{"context":202752,"output":131072},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"zai-org/glm-4.7-maas":{"id":"zai-org/glm-4.7-maas","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-06","last_updated":"2026-01-06","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"deepseek-ai/deepseek-v3.1-maas":{"id":"deepseek-ai/deepseek-v3.1-maas","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":163840,"output":32768},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"qwen/qwen3-235b-a22b-instruct-2507-maas":{"id":"qwen/qwen3-235b-a22b-instruct-2507-maas","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":16384},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"meta/llama-4-maverick-17b-128e-instruct-maas":{"id":"meta/llama-4-maverick-17b-128e-instruct-maas","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.15},"limit":{"context":524288,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"meta/llama-3.3-70b-instruct-maas":{"id":"meta/llama-3.3-70b-instruct-maas","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"openai/gpt-oss-20b-maas":{"id":"openai/gpt-oss-20b-maas","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.25},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-120b-maas":{"id":"openai/gpt-oss-120b-maas","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":32768}}}},"privatemode-ai":{"id":"privatemode-ai","env":["PRIVATEMODE_API_KEY","PRIVATEMODE_ENDPOINT"],"npm":"@ai-sdk/openai-compatible","api":"http://localhost:8080/v1","name":"Privatemode AI","doc":"https://docs.privatemode.ai/api/overview","models":{"gemma-3-27b":{"id":"gemma-3-27b","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper large-v3","family":"whisper","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2023-09-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"qwen3-embedding-4b":{"id":"qwen3-embedding-4b","name":"Qwen3-Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-06","last_updated":"2025-06-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":2560}},"qwen3-coder-30b-a3b":{"id":"qwen3-coder-30b-a3b","name":"Qwen3-Coder 30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}}}},"google":{"id":"google","env":["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],"npm":"@ai-sdk/google","name":"Google","doc":"https://ai.google.dev/gemini-api/docs/pricing","models":{"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemini-3.1-flash-image-preview":{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":60},"limit":{"context":131072,"output":32768}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"gemini-live-2.5-flash":{"id":"gemini-live-2.5-flash","name":"Gemini Live 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":128000,"output":8000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-live-2.5-flash-preview-native-audio":{"id":"gemini-live-2.5-flash-preview-native-audio","name":"Gemini Live 2.5 Flash Preview Native Audio","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-09-18","modalities":{"input":["text","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":131072,"output":65536}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-tts":{"id":"gemini-2.5-flash-preview-tts","name":"Gemini 2.5 Flash Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0.5,"output":10},"limit":{"context":8000,"output":16000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"input_audio":0.3},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-2.5-pro-preview-tts":{"id":"gemini-2.5-pro-preview-tts","name":"Gemini 2.5 Pro Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":1,"output":20},"limit":{"context":8000,"output":16000}},"gemini-2.5-flash-image-preview":{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-1.5-flash-8b":{"id":"gemini-1.5-flash-8b","name":"Gemini 1.5 Flash-8B","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-03","last_updated":"2024-10-03","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.0375,"output":0.15,"cache_read":0.01},"limit":{"context":1000000,"output":8192}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"gemini-1.5-flash":{"id":"gemini-1.5-flash","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.01875},"limit":{"context":1000000,"output":8192}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"gemini-1.5-pro":{"id":"gemini-1.5-pro","name":"Gemini 1.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-02-15","last_updated":"2024-02-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.3125},"limit":{"context":1000000,"output":8192}}}},"vivgrid":{"id":"vivgrid","env":["VIVGRID_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.vivgrid.com/v1","name":"Vivgrid","doc":"https://docs.vivgrid.com/models","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42},"limit":{"context":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}}}},"moonshotai-cn":{"id":"moonshotai-cn","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.cn/v1","name":"Moonshot AI (China)","doc":"https://platform.moonshot.cn/docs/api/chat","models":{"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}}}},"sap-ai-core":{"id":"sap-ai-core","env":["AICORE_SERVICE_KEY"],"npm":"@jerome-benoit/sap-ai-provider-v2","name":"SAP AI Core","doc":"https://help.sap.com/docs/sap-ai-core","models":{"anthropic--claude-4.5-opus":{"id":"anthropic--claude-4.5-opus","name":"anthropic--claude-4.5-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic--claude-4-sonnet":{"id":"anthropic--claude-4-sonnet","name":"anthropic--claude-4-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic--claude-4.5-sonnet":{"id":"anthropic--claude-4.5-sonnet","name":"anthropic--claude-4.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"input_audio":1},"limit":{"context":1048576,"output":65536}},"anthropic--claude-3-sonnet":{"id":"anthropic--claude-3-sonnet","name":"anthropic--claude-3-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":4096}},"anthropic--claude-3.7-sonnet":{"id":"anthropic--claude-3.7-sonnet","name":"anthropic--claude-3.7-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"sonar":{"id":"sonar","name":"sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"anthropic--claude-3.5-sonnet":{"id":"anthropic--claude-3.5-sonnet","name":"anthropic--claude-3.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"sonar-deep-research":{"id":"sonar-deep-research","name":"sonar-deep-research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"anthropic--claude-4.6-sonnet":{"id":"anthropic--claude-4.6-sonnet","name":"anthropic--claude-4.6-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"anthropic--claude-4.5-haiku":{"id":"anthropic--claude-4.5-haiku","name":"anthropic--claude-4.5-haiku","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"gpt-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"anthropic--claude-3-opus":{"id":"anthropic--claude-3-opus","name":"anthropic--claude-3-opus","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"sonar-pro":{"id":"sonar-pro","name":"sonar-pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"anthropic--claude-3-haiku":{"id":"anthropic--claude-3-haiku","name":"anthropic--claude-3-haiku","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic--claude-4.6-opus":{"id":"anthropic--claude-4.6-opus","name":"anthropic--claude-4.6-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"anthropic--claude-4-opus":{"id":"anthropic--claude-4-opus","name":"anthropic--claude-4-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}}}},"zhipuai":{"id":"zhipuai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/paas/v4","name":"Zhipu AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}}}},"venice":{"id":"venice","env":["VENICE_API_KEY"],"npm":"venice-ai-sdk-provider","name":"Venice AI","doc":"https://docs.venice.ai","models":{"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen 3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":128000,"output":16384}},"google-gemma-3-27b-it":{"id":"google-gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-04","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":198000,"output":16384}},"openai-gpt-4o-2024-11-20":{"id":"openai-gpt-4o-2024-11-20","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.125,"output":12.5},"limit":{"context":128000,"output":16384}},"claude-opus-45":{"id":"claude-opus-45","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-06","last_updated":"2026-01-28","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":198000,"output":49500}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen 3 Coder 480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3},"limit":{"context":256000,"output":65536}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":1000000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.87,"cache_read":0.03},"limit":{"context":256000,"output":10000}},"zai-org-glm-5":{"id":"zai-org-glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":198000,"output":32000}},"zai-org-glm-4.7":{"id":"zai-org-glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-24","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.65,"cache_read":0.11},"limit":{"context":198000,"output":16384}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.6,"output":18,"cache_read":0.36,"cache_write":4.5},"limit":{"context":1000000,"output":64000}},"zai-org-glm-4.6":{"id":"zai-org-glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2024-04-01","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":2.75,"cache_read":0.3},"limit":{"context":198000,"output":16384}},"openai-gpt-53-codex":{"id":"openai-gpt-53-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":400000,"output":128000}},"kimi-k2-5":{"id":"kimi-k2-5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-01-27","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":3.5,"cache_read":0.11},"limit":{"context":256000,"output":65536}},"mistral-small-3-2-24b-instruct":{"id":"mistral-small-3-2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-15","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09375,"output":0.25},"limit":{"context":256000,"output":16384}},"mistral-31-24b":{"id":"mistral-31-24b","name":"Venice Medium","family":"mistral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-03-18","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":128000,"output":4096}},"grok-4-20-multi-agent-beta":{"id":"grok-4-20-multi-agent-beta","name":"Grok 4.20 Multi-Agent Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":7.5,"cache_read":0.25,"context_over_200k":{"input":5,"output":15,"cache_read":0.25}},"limit":{"context":2000000,"output":128000}},"openai-gpt-54-pro":{"id":"openai-gpt-54-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":37.5,"output":225,"context_over_200k":{"input":75,"output":337.5}},"limit":{"context":1000000,"output":128000}},"qwen3-4b":{"id":"qwen3-4b","name":"Venice Small","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":32000,"output":4096}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":3.75,"cache_read":0.07},"limit":{"context":256000,"output":65536}},"grok-4-20-beta":{"id":"grok-4-20-beta","name":"Grok 4.20 Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":7.5,"cache_read":0.25,"context_over_200k":{"input":5,"output":15,"cache_read":0.25}},"limit":{"context":2000000,"output":128000}},"olafangensan-glm-4.7-flash-heretic":{"id":"olafangensan-glm-4.7-flash-heretic","name":"GLM 4.7 Flash Heretic","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.8},"limit":{"context":200000,"output":24000}},"minimax-m25":{"id":"minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.19,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"zai-org-glm-4.7-flash":{"id":"zai-org-glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":16384}},"qwen3-coder-480b-a35b-instruct-turbo":{"id":"qwen3-coder-480b-a35b-instruct-turbo","name":"Qwen 3 Coder 480B Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":256000,"output":65536}},"openai-gpt-oss-120b":{"id":"openai-gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":16384}},"grok-41-fast":{"id":"grok-41-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-12-01","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.625,"cache_read":0.0625},"limit":{"context":1000000,"output":30000}},"openai-gpt-52":{"id":"openai-gpt-52","name":"GPT-5.2","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-13","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"openai-gpt-54":{"id":"openai-gpt-54","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.13,"output":18.8,"cache_read":0.313},"limit":{"context":1000000,"output":131072}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-10","release_date":"2025-12-04","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.33,"output":0.48,"cache_read":0.16},"limit":{"context":160000,"output":32768}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.5,"cache_write":0.5,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1000000,"output":32768}},"openai-gpt-4o-mini-2024-07-18":{"id":"openai-gpt-4o-mini-2024-07-18","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1875,"output":0.75,"cache_read":0.09375},"limit":{"context":128000,"output":16384}},"llama-3.3-70b":{"id":"llama-3.3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":128000,"output":4096}},"qwen3-next-80b":{"id":"qwen3-next-80b","name":"Qwen 3 Next 80b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.9},"limit":{"context":256000,"output":16384}},"hermes-3-llama-3.1-405b":{"id":"hermes-3-llama-3.1-405b","name":"Hermes 3 Llama 3.1 405b","family":"hermes","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3},"limit":{"context":128000,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-12-10","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3.2,"cache_read":0.375},"limit":{"context":256000,"output":65536}},"qwen3-5-9b":{"id":"qwen3-5-9b","name":"Qwen 3.5 9B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":65536}},"minimax-m21":{"id":"minimax-m21","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"qwen3-5-35b-a3b":{"id":"qwen3-5-35b-a3b","name":"Qwen 3.5 35B A3B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-25","last_updated":"2026-03-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3125,"output":1.25,"cache_read":0.15625},"limit":{"context":256000,"output":65536}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen 3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":3.5},"limit":{"context":128000,"output":16384}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-12-02","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.625},"limit":{"context":198000,"output":32768}},"llama-3.2-3b":{"id":"llama-3.2-3b","name":"Llama 3.2 3B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-10-03","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored 1.1","family":"venice","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-03-18","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.9},"limit":{"context":32000,"output":8192}},"nvidia-nemotron-3-nano-30b-a3b":{"id":"nvidia-nemotron-3-nano-30b-a3b","name":"NVIDIA Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":16384}},"openai-gpt-52-codex":{"id":"openai-gpt-52-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-01-15","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"minimax-m27":{"id":"minimax-m27","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.375,"output":1.5,"cache_read":0.075},"limit":{"context":198000,"output":32768}},"venice-uncensored-role-play":{"id":"venice-uncensored-role-play","name":"Venice Role Play Uncensored","family":"venice","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-20","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":128000,"output":4096}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3 VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-16","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.5},"limit":{"context":256000,"output":16384}},"claude-sonnet-45":{"id":"claude-sonnet-45","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-01-15","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75,"cache_read":0.375,"cache_write":4.69},"limit":{"context":198000,"output":49500}}}},"nova":{"id":"nova","env":["NOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.nova.amazon.com/v1","name":"Nova","doc":"https://nova.amazon.com/dev/documentation","models":{"nova-2-lite-v1":{"id":"nova-2-lite-v1","name":"Nova 2 Lite","family":"nova-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}},"nova-2-pro-v1":{"id":"nova-2-pro-v1","name":"Nova 2 Pro","family":"nova-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2026-01-03","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}}}},"zai-coding-plan":{"id":"zai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/coding/paas/v4","name":"Z.AI Coding Plan","doc":"https://docs.z.ai/devpack/overview","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}}}},"opencode-go":{"id":"opencode-go","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/go/v1","name":"OpenCode Go","doc":"https://opencode.ai/docs/zen","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":65536}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax-m2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}}}},"drun":{"id":"drun","env":["DRUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://chat.d.run/v1","name":"D.Run (China)","doc":"https://www.d.run","models":{"public/deepseek-v3":{"id":"public/deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":131072,"output":8192}},"public/deepseek-r1":{"id":"public/deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32000}},"public/minimax-m25":{"id":"public/minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.16},"limit":{"context":204800,"output":131072}}}},"firmware":{"id":"firmware","env":["FIRMWARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://app.frogbot.ai/api/v1","name":"Firmware","doc":"https://docs.frogbot.ai","models":{"gpt-5-4":{"id":"gpt-5-4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":272000,"output":128000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":198000,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-17","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"deepseek-v3-2":{"id":"deepseek-v3-2","name":"DeepSeek v3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":1.68,"cache_read":0.28},"limit":{"context":128000,"output":8192}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":128000}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"minimax-m2-5":{"id":"minimax-m2-5","name":"MiniMax-M2.5","family":"minimax","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-01-15","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":192000,"output":8192}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"gpt-5-3-codex":{"id":"gpt-5-3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2026-01-31","release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2},"limit":{"context":131072,"output":32768}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":400000,"output":128000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"ovhcloud":{"id":"ovhcloud","env":["OVHCLOUD_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1","name":"OVHcloud AI Endpoints","doc":"https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//","models":{"meta-llama-3_3-70b-instruct":{"id":"meta-llama-3_3-70b-instruct","name":"Meta-Llama-3_3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"mistral-7b-instruct-v0.3":{"id":"mistral-7b-instruct-v0.3","name":"Mistral-7B-Instruct-v0.3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":65536,"output":65536}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral-Small-3.2-24B-Instruct-2506","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.31},"limit":{"context":131072,"output":131072}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.25},"limit":{"context":32768,"output":32768}},"qwen2.5-coder-32b-instruct":{"id":"qwen2.5-coder-32b-instruct","name":"Qwen2.5-Coder-32B-Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.96,"output":0.96},"limit":{"context":32768,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.47},"limit":{"context":131072,"output":131072}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek-R1-Distill-Llama-70B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-30","last_updated":"2025-01-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.01,"output":1.01},"limit":{"context":32768,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.26},"limit":{"context":262144,"output":262144}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-11","last_updated":"2025-06-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":131072,"output":131072}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral-Nemo-Instruct-2407","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":65536,"output":65536}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.18},"limit":{"context":131072,"output":131072}},"mixtral-8x7b-instruct-v0.1":{"id":"mixtral-8x7b-instruct-v0.1","name":"Mixtral-8x7B-Instruct-v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"output":32768}}}},"stackit":{"id":"stackit","env":["STACKIT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1","name":"STACKIT","doc":"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models","models":{"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"E5 Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":4096,"output":4096}},"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8":{"id":"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.27},"limit":{"context":128000,"output":8192}},"neuralmagic/Mistral-Nemo-Instruct-2407-FP8":{"id":"neuralmagic/Mistral-Nemo-Instruct-2407-FP8","name":"Mistral Nemo","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-05-17","last_updated":"2025-05-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":37000,"output":8192}},"Qwen/Qwen3-VL-Embedding-8B":{"id":"Qwen/Qwen3-VL-Embedding-8B","name":"Qwen3-VL Embedding 8B","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8","name":"Qwen3-VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.64,"output":1.91},"limit":{"context":218000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":131000,"output":8192}},"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic":{"id":"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}}}},"cloudferro-sherlock":{"id":"cloudferro-sherlock","env":["CLOUDFERRO_SHERLOCK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-sherlock.cloudferro.com/openai/v1/","name":"CloudFerro Sherlock","doc":"https://docs.sherlock.cloudferro.com/","models":{"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196000,"output":196000}},"speakleash/Bielik-11B-v2.6-Instruct":{"id":"speakleash/Bielik-11B-v2.6-Instruct","name":"Bielik 11B v2.6 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"speakleash/Bielik-11B-v3.0-Instruct":{"id":"speakleash/Bielik-11B-v3.0-Instruct","name":"Bielik 11B v3.0 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10-09","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":70000,"output":70000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":131000,"output":131000}}}},"requesty":{"id":"requesty","env":["REQUESTY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://router.requesty.ai/v1","name":"Requesty","doc":"https://requesty.ai/solution/llm-routing/models","models":{"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.55},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":2.375},"limit":{"context":1048576,"output":65536}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","audio","image","video"],"output":["text","audio","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":128000,"output":32000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":16000,"output":4000}},"anthropic/claude-3-7-sonnet":{"id":"anthropic/claude-3-7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":62000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"xai/grok-4-fast":{"id":"xai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.2},"limit":{"context":2000000,"output":64000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":3},"limit":{"context":256000,"output":64000}}}},"qihang-ai":{"id":"qihang-ai","env":["QIHANG_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qhaigc.net/v1","name":"QiHang","doc":"https://www.qhaigc.net/docs","models":{"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.71,"output":3.57},"limit":{"context":200000,"output":32000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.14},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.71,"context_over_200k":{"input":0.09,"output":0.71}},"limit":{"context":1048576,"output":65536}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.43,"context_over_200k":{"input":0.07,"output":0.43}},"limit":{"context":1048576,"output":65536}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":2.14},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":272000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.71},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.57,"output":3.43},"limit":{"context":1000000,"output":65000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.29},"limit":{"context":200000,"output":64000}}}},"siliconflow-cn":{"id":"siliconflow-cn","env":["SILICONFLOW_CN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.cn/v1","name":"SiliconFlow (China)","doc":"https://cloud.siliconflow.com/models","models":{"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"Pro/zai-org/GLM-4.7":{"id":"Pro/zai-org/GLM-4.7","name":"Pro/zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"Pro/zai-org/GLM-5":{"id":"Pro/zai-org/GLM-5","name":"Pro/zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"Pro/MiniMaxAI/MiniMax-M2.5":{"id":"Pro/MiniMaxAI/MiniMax-M2.5","name":"Pro/MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.22},"limit":{"context":192000,"output":131000}},"Pro/MiniMaxAI/MiniMax-M2.1":{"id":"Pro/MiniMaxAI/MiniMax-M2.1","name":"Pro/MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"Pro/deepseek-ai/DeepSeek-R1":{"id":"Pro/deepseek-ai/DeepSeek-R1","name":"Pro/deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.2":{"id":"Pro/deepseek-ai/DeepSeek-V3.2","name":"Pro/deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3":{"id":"Pro/deepseek-ai/DeepSeek-V3","name":"Pro/deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","name":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"Pro/moonshotai/Kimi-K2-Instruct-0905":{"id":"Pro/moonshotai/Kimi-K2-Instruct-0905","name":"Pro/moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2.5":{"id":"Pro/moonshotai/Kimi-K2.5","name":"Pro/moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2-Thinking":{"id":"Pro/moonshotai/Kimi-K2-Thinking","name":"Pro/moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"PaddlePaddle/PaddleOCR-VL-1.5":{"id":"PaddlePaddle/PaddleOCR-VL-1.5","name":"PaddlePaddle/PaddleOCR-VL-1.5","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"PaddlePaddle/PaddleOCR-VL":{"id":"PaddlePaddle/PaddleOCR-VL","name":"PaddlePaddle/PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"Kwaipilot/KAT-Dev":{"id":"Kwaipilot/KAT-Dev","name":"Kwaipilot/KAT-Dev","family":"kat-coder","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"deepseek-ai/DeepSeek-OCR":{"id":"deepseek-ai/DeepSeek-OCR","name":"deepseek-ai/DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2025-10-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"ascend-tribe/pangu-pro-moe":{"id":"ascend-tribe/pangu-pro-moe","name":"ascend-tribe/pangu-pro-moe","family":"pangu","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3.5-9B":{"id":"Qwen/Qwen3.5-9B","name":"Qwen/Qwen3.5-9B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-122B-A10B":{"id":"Qwen/Qwen3.5-122B-A10B","name":"Qwen/Qwen3.5-122B-A10B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":2.32},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen/Qwen3.5-397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-35B-A3B":{"id":"Qwen/Qwen3.5-35B-A3B","name":"Qwen/Qwen3.5-35B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":1.86},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-4B":{"id":"Qwen/Qwen3.5-4B","name":"Qwen/Qwen3.5-4B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-27B":{"id":"Qwen/Qwen3.5-27B","name":"Qwen/Qwen3.5-27B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.09},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}}}},"helicone":{"id":"helicone","env":["HELICONE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ai-gateway.helicone.ai/v1","name":"Helicone","doc":"https://helicone.ai/models","models":{"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Anthropic: Claude 4.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"OpenAI: GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"OpenAI: GPT-5 Pro","family":"gpt-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":128000,"output":32768}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"OpenAI GPT-4o-mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"xAI: Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"OpenAI GPT-5 Chat Latest","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-09","release_date":"2024-09-30","last_updated":"2024-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"llama-4-scout":{"id":"llama-4-scout","name":"Meta Llama 4 Scout 17B 16E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3},"limit":{"context":131072,"output":8192}},"codex-mini-latest":{"id":"codex-mini-latest","name":"OpenAI Codex Mini Latest","family":"gpt-codex-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"qwen2.5-coder-7b-fast":{"id":"qwen2.5-coder-7b-fast","name":"Qwen2.5 Coder 7B fast","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-15","last_updated":"2024-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.09},"limit":{"context":32000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Anthropic: Claude Opus 4.1","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":8192}},"llama-3.1-8b-instruct-turbo":{"id":"llama-3.1-8b-instruct-turbo","name":"Meta Llama 3.1 8B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"output":128000}},"grok-3":{"id":"grok-3","name":"xAI Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":131072}},"ernie-4.5-21b-a3b-thinking":{"id":"ernie-4.5-21b-a3b-thinking","name":"Baidu Ernie 4.5 21B A3B Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":128000,"output":8000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"xAI Grok Code Fast 1","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-25","last_updated":"2024-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"llama-prompt-guard-2-22m":{"id":"llama-prompt-guard-2-22m","name":"Meta Llama Prompt Guard 2 22M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Meta Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.39},"limit":{"context":128000,"output":16400}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"xAI Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Anthropic: Claude Sonnet 4.5","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-4.1-mini-2025-04-14":{"id":"gpt-4.1-mini-2025-04-14","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Google Gemini 2.5 Flash","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.3},"limit":{"context":1048576,"output":65535}},"llama-guard-4":{"id":"llama-guard-4","name":"Meta Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.21},"limit":{"context":131072,"output":1024}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"xAI Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":30000}},"o1":{"id":"o1","name":"OpenAI: o1","family":"o","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.1":{"id":"gpt-5.1","name":"OpenAI GPT-5.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi K2 (09/05)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.39999999999999997},"limit":{"context":262144,"output":16384}},"grok-4":{"id":"grok-4","name":"xAI Grok 4","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-09","last_updated":"2024-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":256000}},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Meta Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.08},"limit":{"context":131072,"output":32678}},"sonar":{"id":"sonar","name":"Perplexity Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":4096}},"o3":{"id":"o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.95},"limit":{"context":262144,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"Zai GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44999999999999996,"output":1.5},"limit":{"context":204800,"output":131072}},"sonar-reasoning":{"id":"sonar-reasoning","name":"Perplexity Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":40960}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"OpenAI GPT-4.1 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998},"limit":{"context":1047576,"output":32768}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Anthropic: Claude Sonnet 4.5 (20250929)","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Google Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998,"cache_write":0.09999999999999999},"limit":{"context":1048576,"output":65535}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7999999999999999,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"OpenAI GPT-OSS 120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.13},"limit":{"context":128000,"output":4096}},"deepseek-v3.1-terminus":{"id":"deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1,"cache_read":0.21600000000000003},"limit":{"context":128000,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"OpenAI GPT-4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"claude-3.5-sonnet-v2":{"id":"claude-3.5-sonnet-v2","name":"Anthropic: Claude 3.5 Sonnet v2","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"mistral-small":{"id":"mistral-small","name":"Mistral Small","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-02","release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":75,"output":200},"limit":{"context":128000,"output":128000}},"o3-pro":{"id":"o3-pro","name":"OpenAI o3 Pro","family":"o-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":128000,"output":16400}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.3},"limit":{"context":262144,"output":262144}},"qwen3-vl-235b-a22b-instruct":{"id":"qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":256000,"output":16384}},"qwen3-235b-a22b-thinking":{"id":"qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9000000000000004},"limit":{"context":262144,"output":81920}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"grok-3-mini":{"id":"grok-3-mini","name":"xAI Grok 3 Mini","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":131072}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Anthropic: Claude 3 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Anthropic: Claude 4.5 Haiku (20251001)","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"kimi-k2-0711":{"id":"kimi-k2-0711","name":"Kimi K2 (07/11)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5700000000000001,"output":2.3},"limit":{"context":131072,"output":16384}},"gpt-5":{"id":"gpt-5","name":"OpenAI GPT-5","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"OpenAI o4 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Meta Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.7899999999999999},"limit":{"context":131072,"output":32678}},"llama-4-maverick":{"id":"llama-4-maverick","name":"Meta Llama 4 Maverick 17B 128E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":8192}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":2},"limit":{"context":256000,"output":262144}},"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Google Gemma 2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-25","last_updated":"2024-06-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek-tng-r1t2-chimera":{"id":"deepseek-tng-r1t2-chimera","name":"DeepSeek TNG R1T2 Chimera","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-02","last_updated":"2025-07-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":130000,"output":163840}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Sonar Pro","family":"sonar-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":4096}},"claude-opus-4":{"id":"claude-opus-4","name":"Anthropic: Claude Opus 4","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"OpenAI: GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral-Large","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Anthropic: Claude Opus 4.5","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"OpenAI ChatGPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":128000,"output":16384}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Meta Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.049999999999999996},"limit":{"context":16384,"output":16384}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Google Gemini 3 Pro Preview","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.19999999999999998},"limit":{"context":1048576,"output":65536}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":16384}},"llama-prompt-guard-2-86m":{"id":"llama-prompt-guard-2-86m","name":"Meta Llama Prompt Guard 2 86M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"o3-mini":{"id":"o3-mini","name":"OpenAI o3 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2023-10","release_date":"2023-10-01","last_updated":"2023-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":41000,"output":41000}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"xAI Grok 4 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"OpenAI GPT-5 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"OpenAI GPT-OSS 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.19999999999999998},"limit":{"context":131072,"output":131072}},"hermes-2-pro-llama-3-8b":{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.14},"limit":{"context":131072,"output":131072}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"OpenAI GPT-5.1 Chat","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Anthropic: Claude Opus 4.1 (20250805)","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Google Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.3125,"cache_write":1.25},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"OpenAI GPT-5 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.39999999999999997,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"o1-mini":{"id":"o1-mini","name":"OpenAI: o1-mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-4o":{"id":"gpt-4o","name":"OpenAI GPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"vercel":{"id":"vercel","env":["AI_GATEWAY_API_KEY"],"npm":"@ai-sdk/gateway","name":"Vercel AI Gateway","doc":"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway","models":{"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"INTELLECT 3","family":"intellect","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"zai/glm-5":{"id":"zai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai/glm-4.7-flashx":{"id":"zai/glm-4.7-flashx","name":"GLM 4.7 FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai/glm-4.5-air":{"id":"zai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"zai/glm-4.5":{"id":"zai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":131072}},"zai/glm-4.7-flash":{"id":"zai/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.39999999999999997},"limit":{"context":200000,"output":131000}},"zai/glm-4.6":{"id":"zai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":200000,"output":96000}},"zai/glm-4.7":{"id":"zai/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":120000}},"zai/glm-4.6v-flash":{"id":"zai/glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":24000}},"zai/glm-5-turbo":{"id":"zai/glm-5-turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24},"limit":{"context":202800,"output":131100}},"zai/glm-4.5v":{"id":"zai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":66000,"output":66000}},"zai/glm-4.6v":{"id":"zai/glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9,"cache_read":0.05},"limit":{"context":128000,"output":24000}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"Nvidia Nemotron Nano 12B V2 VL","family":"nemotron","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B V2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nemotron 3 Nano 30B A3B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"arcee-ai/trinity-large-preview":{"id":"arcee-ai/trinity-large-preview","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131000,"output":131000}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.15},"limit":{"context":131072,"output":131072}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.29},"limit":{"context":262144,"output":32000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3,"cache_read":0.19999999999999998},"limit":{"context":1000000,"output":128000}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.024999999999999998},"limit":{"context":128000,"output":128000}},"inception/mercury-coder-small":{"id":"inception/mercury-coder-small","name":"Mercury Coder Small Beta","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32000,"output":16384}},"voyage/voyage-3-large":{"id":"voyage/voyage-3-large","name":"voyage-3-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-code-3":{"id":"voyage/voyage-code-3","name":"voyage-code-3","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-law-2":{"id":"voyage/voyage-law-2","name":"voyage-law-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-finance-2":{"id":"voyage/voyage-finance-2","name":"voyage-finance-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-code-2":{"id":"voyage/voyage-code-2","name":"voyage-code-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-lite":{"id":"voyage/voyage-4-lite","name":"voyage-4-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-3.5-lite":{"id":"voyage/voyage-3.5-lite","name":"voyage-3.5-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-large":{"id":"voyage/voyage-4-large","name":"voyage-4-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-3.5":{"id":"voyage/voyage-3.5","name":"voyage-3.5","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4":{"id":"voyage/voyage-4","name":"voyage-4","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"amazon/nova-2-lite":{"id":"amazon/nova-2-lite","name":"Nova 2 Lite","family":"nova","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":1000000}},"amazon/titan-embed-text-v2":{"id":"amazon/titan-embed-text-v2","name":"Titan Text Embeddings V2","family":"titan-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-04","last_updated":"2024-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"amazon/nova-lite":{"id":"amazon/nova-lite","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"amazon/nova-pro":{"id":"amazon/nova-pro","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"amazon/nova-micro":{"id":"amazon/nova-micro","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"alibaba/qwen-3-235b":{"id":"alibaba/qwen-3-235b","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-max-preview":{"id":"alibaba/qwen3-max-preview","name":"Qwen3 Max Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"alibaba/qwen3-next-80b-a3b-thinking":{"id":"alibaba/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":65536}},"alibaba/qwen3-max-thinking":{"id":"alibaba/qwen3-max-thinking","name":"Qwen 3 Max Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":256000,"output":65536}},"alibaba/qwen3-vl-instruct":{"id":"alibaba/qwen3-vl-instruct","name":"Qwen3 VL Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":129024}},"alibaba/qwen3-embedding-8b":{"id":"alibaba/qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen3-coder-next":{"id":"alibaba/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":256000,"output":256000}},"alibaba/qwen3-coder":{"id":"alibaba/qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.38,"output":1.53},"limit":{"context":262144,"output":66536}},"alibaba/qwen-3-30b":{"id":"alibaba/qwen-3-30b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-embedding-0.6b":{"id":"alibaba/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen-3-14b":{"id":"alibaba/qwen-3-14b","name":"Qwen3-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-235b-a22b-thinking":{"id":"alibaba/qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9},"limit":{"context":262114,"output":262114}},"alibaba/qwen3-vl-thinking":{"id":"alibaba/qwen3-vl-thinking","name":"Qwen3 VL Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":8.4},"limit":{"context":131072,"output":129024}},"alibaba/qwen3.5-flash":{"id":"alibaba/qwen3.5-flash","name":"Qwen 3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.001,"cache_write":0.125},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3-next-80b-a3b-instruct":{"id":"alibaba/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":262144,"output":32768}},"alibaba/qwen3.5-plus":{"id":"alibaba/qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04,"cache_write":0.5},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3-max":{"id":"alibaba/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"alibaba/qwen-3-32b":{"id":"alibaba/qwen-3-32b","name":"Qwen 3.32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-coder-plus":{"id":"alibaba/qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1000000,"output":1000000}},"alibaba/qwen3-embedding-4b":{"id":"alibaba/qwen3-embedding-4b","name":"Qwen3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen3-coder-30b-a3b":{"id":"alibaba/qwen3-coder-30b-a3b","name":"Qwen 3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"bfl/flux-pro-1.0-fill":{"id":"bfl/flux-pro-1.0-fill","name":"FLUX.1 Fill [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1":{"id":"bfl/flux-pro-1.1","name":"FLUX1.1 [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-max":{"id":"bfl/flux-kontext-max","name":"FLUX.1 Kontext Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-pro":{"id":"bfl/flux-kontext-pro","name":"FLUX.1 Kontext Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1-ultra":{"id":"bfl/flux-pro-1.1-ultra","name":"FLUX1.1 [pro] Ultra","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"mistral/codestral-embed":{"id":"mistral/codestral-embed","name":"Codestral Embed","family":"codestral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"mistral/devstral-small-2":{"id":"mistral/devstral-small-2","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/devstral-2":{"id":"mistral/devstral-2","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/mistral-large-3":{"id":"mistral/mistral-large-3","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"mistral/mistral-embed":{"id":"mistral/mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"mistral/ministral-14b":{"id":"mistral/ministral-14b","name":"Ministral 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":256000,"output":256000}},"mistral/mistral-nemo":{"id":"mistral/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"mistral/mistral-medium":{"id":"mistral/mistral-medium","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":64000}},"mistral/devstral-small":{"id":"mistral/devstral-small","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":64000}},"mistral/codestral":{"id":"mistral/codestral","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"mistral/mixtral-8x22b-instruct":{"id":"mistral/mixtral-8x22b-instruct","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"mistral/mistral-small":{"id":"mistral/mistral-small","name":"Mistral Small (latest)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2024-09-01","last_updated":"2024-09-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"mistral/ministral-8b":{"id":"mistral/ministral-8b","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"mistral/pixtral-large":{"id":"mistral/pixtral-large","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral/pixtral-12b":{"id":"mistral/pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"mistral/magistral-small":{"id":"mistral/magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral/magistral-medium":{"id":"mistral/magistral-medium","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}},"mistral/ministral-3b":{"id":"mistral/ministral-3b","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"kwaipilot/kat-coder-pro-v1":{"id":"kwaipilot/kat-coder-pro-v1","name":"KAT-Coder-Pro V1","family":"kat-coder","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"deepseek/deepseek-v3":{"id":"deepseek/deepseek-v3","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.77,"output":0.77},"limit":{"context":163840,"output":16384}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1},"limit":{"context":163840,"output":128000}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4,"cache_read":0.22},"limit":{"context":163842,"output":8000}},"deepseek/deepseek-v3.2-thinking":{"id":"deepseek/deepseek-v3.2-thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"moonshotai/kimi-k2-turbo":{"id":"moonshotai/kimi-k2-turbo","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.4,"output":10},"limit":{"context":256000,"output":16384}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":131072,"output":16384}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.47,"output":2,"cache_read":0.14},"limit":{"context":216144,"output":216144}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262114,"output":262114}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"google/gemini-embedding-001":{"id":"google/gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/imagen-4.0-fast-generate-001":{"id":"google/imagen-4.0-fast-generate-001","name":"Imagen 4 Fast","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/text-embedding-005":{"id":"google/text-embedding-005","name":"Text Embedding 005","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08","last_updated":"2024-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1000000,"output":64000}},"google/imagen-4.0-ultra-generate-001":{"id":"google/imagen-4.0-ultra-generate-001","name":"Imagen 4 Ultra","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image Preview (Nano Banana 2)","family":"gemini","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":131072,"output":32768}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1000000,"output":65000}},"google/text-multilingual-embedding-002":{"id":"google/text-multilingual-embedding-002","name":"Text Multilingual Embedding 002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-embedding-2":{"id":"google/gemini-embedding-2","name":"Gemini Embedding 2","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Nano Banana (Gemini 2.5 Flash Image)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemini-3-pro-image":{"id":"google/gemini-3-pro-image","name":"Nano Banana Pro (Gemini 3 Pro Image)","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":65536,"output":32768}},"google/gemini-2.5-flash-image-preview":{"id":"google/gemini-2.5-flash-image-preview","name":"Nano Banana Preview (Gemini 2.5 Flash Image Preview)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/imagen-4.0-generate-001":{"id":"google/imagen-4.0-generate-001","name":"Imagen 4","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"meituan/longcat-flash-thinking":{"id":"meituan/longcat-flash-thinking","name":"LongCat Flash Thinking","family":"longcat","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":1.5},"limit":{"context":128000,"output":8192}},"meituan/longcat-flash-thinking-2601":{"id":"meituan/longcat-flash-thinking-2601","name":"LongCat Flash Thinking 2601","family":"longcat","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32768,"output":32768}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"LongCat Flash Chat","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-30","last_updated":"2025-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"bytedance/seed-1.6":{"id":"bytedance/seed-1.6","name":"Seed 1.6","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":32000}},"bytedance/seed-1.8":{"id":"bytedance/seed-1.8","name":"Seed 1.8","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":64000}},"meta/llama-3.1-8b":{"id":"meta/llama-3.1-8b","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.05},"limit":{"context":131072,"output":16384}},"meta/llama-3.2-11b":{"id":"meta/llama-3.2-11b","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":8192}},"meta/llama-3.1-70b":{"id":"meta/llama-3.1-70b","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta/llama-3.2-90b":{"id":"meta/llama-3.2-90b","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-1b":{"id":"meta/llama-3.2-1b","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-3b":{"id":"meta/llama-3.2-3b","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":8192}},"meta/llama-4-maverick":{"id":"meta/llama-4-maverick","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.3-70b":{"id":"meta/llama-3.3-70b","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-scout":{"id":"meta/llama-4-scout","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"vercel/v0-1.5-md":{"id":"vercel/v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"vercel/v0-1.0-md":{"id":"vercel/v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT 5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":128000,"output":272000}},"openai/text-embedding-ada-002":{"id":"openai/text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT 4o Mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/text-embedding-3-small":{"id":"openai/text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/text-embedding-3-large":{"id":"openai/text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":12289,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3 Pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.1-thinking":{"id":"openai/gpt-5.1-thinking","name":"GPT 5.1 Thinking","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT 5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/codex-mini":{"id":"openai/codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.38},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT 5.4 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"gpt-oss-safeguard-20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3,"cache_read":0.04},"limit":{"context":131072,"input":65536,"output":65536}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 ","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT 5.4 Nano","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":131072,"input":98304,"output":32768}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":8192,"input":4096,"output":4096}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT 5.4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1 Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"cohere/embed-v4.0":{"id":"cohere/embed-v4.0","name":"Embed v4.0","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"cohere/command-a":{"id":"cohere/command-a","name":"Command A","family":"command","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"minimax/minimax-m2.1-lightning":{"id":"minimax/minimax-m2.1-lightning","name":"MiniMax M2.1 Lightning","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.4,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"MiniMax M2.5 High Speed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4,"cache_read":0.03,"cache_write":0.375},"limit":{"context":0,"output":0}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"Minimax M2.7","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 High Speed","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131100}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.15,"cache_read":0.03,"cache_write":0.38},"limit":{"context":262114,"output":262114}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"recraft/recraft-v2":{"id":"recraft/recraft-v2","name":"Recraft V2","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"recraft/recraft-v3":{"id":"recraft/recraft-v3","name":"Recraft V3","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":8000}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":8000}},"perplexity/sonar-reasoning":{"id":"perplexity/sonar-reasoning","name":"Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":8000}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-sonnet-20240620":{"id":"anthropic/claude-3.5-sonnet-20240620","name":"Claude 3.5 Sonnet (2024-06-20)","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":256000}},"xai/grok-4.20-non-reasoning-beta":{"id":"xai/grok-4.20-non-reasoning-beta","name":"Grok 4.20 Beta Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-non-reasoning":{"id":"xai/grok-4.20-non-reasoning","name":"Grok 4.20 Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image":{"id":"xai/grok-imagine-image","name":"Grok Imagine Image","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4.20-reasoning":{"id":"xai/grok-4.20-reasoning","name":"Grok 4.20 Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4.20-reasoning-beta":{"id":"xai/grok-4.20-reasoning-beta","name":"Grok 4.20 Beta Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-multi-agent":{"id":"xai/grok-4.20-multi-agent","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image-pro":{"id":"xai/grok-imagine-image-pro","name":"Grok Imagine Image Pro","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4.20-multi-agent-beta":{"id":"xai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi Agent Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-3-fast":{"id":"xai/grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"xai/grok-3-mini-fast":{"id":"xai/grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-2-vision":{"id":"xai/grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}}}},"openai":{"id":"openai","env":["OPENAI_API_KEY"],"npm":"@ai-sdk/openai","name":"OpenAI","doc":"https://platform.openai.com/docs/models","models":{"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":272000,"output":272000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2022-12","release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"codex-mini-latest":{"id":"codex-mini-latest","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-05-13":{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"o3-deep-research":{"id":"o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"o1":{"id":"o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"o4-mini-deep-research":{"id":"o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":100000,"output":32000}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-3.5-turbo":{"id":"gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"context_over_200k":{"input":60,"output":270}},"limit":{"context":1050000,"input":922000,"output":128000}},"o1-pro":{"id":"o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"gpt-4o-2024-08-06":{"id":"gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}}}},"moark":{"id":"moark","env":["MOARK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://moark.com/v1","name":"Moark","doc":"https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":14},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.1,"output":8.4},"limit":{"context":204800,"output":131072}}}},"morph":{"id":"morph","env":["MORPH_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.morphllm.com/v1","name":"Morph","doc":"https://docs.morphllm.com/api-reference/introduction","models":{"auto":{"id":"auto","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.55},"limit":{"context":32000,"output":32000}},"morph-v3-fast":{"id":"morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"morph-v3-large":{"id":"morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}}}},"cohere":{"id":"cohere","env":["COHERE_API_KEY"],"npm":"@ai-sdk/cohere","name":"Cohere","doc":"https://docs.cohere.com/docs/models","models":{"c4ai-aya-expanse-32b":{"id":"c4ai-aya-expanse-32b","name":"Aya Expanse 32B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":128000,"output":4000}},"command-a-03-2025":{"id":"command-a-03-2025","name":"Command A","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"command-r7b-arabic-02-2025":{"id":"command-r7b-arabic-02-2025","name":"Command R7B Arabic","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"command-a-translate-08-2025":{"id":"command-a-translate-08-2025","name":"Command A Translate","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":8000}},"command-r-08-2024":{"id":"command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"command-r-plus-08-2024":{"id":"command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Command A Reasoning","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":32000}},"c4ai-aya-expanse-8b":{"id":"c4ai-aya-expanse-8b","name":"Aya Expanse 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":8000,"output":4000}},"c4ai-aya-vision-8b":{"id":"c4ai-aya-vision-8b","name":"Aya Vision 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"c4ai-aya-vision-32b":{"id":"c4ai-aya-vision-32b","name":"Aya Vision 32B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"command-r7b-12-2024":{"id":"command-r7b-12-2024","name":"Command R7B","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"command-a-vision-07-2025":{"id":"command-a-vision-07-2025","name":"Command A Vision","family":"command-a","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":8000}}}},"v0":{"id":"v0","env":["V0_API_KEY"],"npm":"@ai-sdk/vercel","name":"v0","doc":"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel","models":{"v0-1.0-md":{"id":"v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0-1.5-lg","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":512000,"output":32000}}}},"minimax":{"id":"minimax","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax (minimax.io)","doc":"https://platform.minimax.io/docs/guides/quickstart","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"vultr":{"id":"vultr","env":["VULTR_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.vultrinference.com/v1","name":"Vultr","doc":"https://api.vultrinference.com/","models":{"Llama-3_1-Nemotron-Ultra-253B-v1":{"id":"Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama 3.1 Nemotron Ultra 253B v1","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.8},"limit":{"context":32000,"output":4096}},"DeepSeek-R1-Distill-Qwen-32B":{"id":"DeepSeek-R1-Distill-Qwen-32B","name":"DeepSeek R1 Distill Qwen 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":130000,"output":4096}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196000,"output":4096}},"Kimi-K2.5":{"id":"Kimi-K2.5","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.75},"limit":{"context":261000,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-23","last_updated":"2025-06-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":130000,"output":8192}},"DeepSeek-V3.2":{"id":"DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":163000,"output":4096}},"GLM-5-FP8":{"id":"GLM-5-FP8","name":"GLM 5 FP8","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":3.1},"limit":{"context":202000,"output":131072}},"NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4":{"id":"NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4","name":"NVIDIA Nemotron 3 Super 120B A12B NVFP4","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":260000,"output":8192}},"DeepSeek-R1-Distill-Llama-70B":{"id":"DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":130000,"output":4096}}}},"baseten":{"id":"baseten","env":["BASETEN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.baseten.co/v1","name":"Baseten","doc":"https://docs.baseten.co/development/model-apis/overview","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":200000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":202752,"output":131072}},"nvidia/Nemotron-120B-A12B":{"id":"nvidia/Nemotron-120B-A12B","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.75},"limit":{"context":262144,"output":32678}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204000,"output":204000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":164000,"output":131000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-01","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":163800,"output":131100},"status":"deprecated"},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.77,"output":0.77},"limit":{"context":164000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-09-05","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-01-30","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":8192}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":128000,"output":128000}}}},"jiekou":{"id":"jiekou","env":["JIEKOU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.jiekou.ai/openai","name":"Jiekou.AI","doc":"https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev","models":{"gpt-5-codex":{"id":"gpt-5-codex","name":"gpt-5-codex","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":108},"limit":{"context":400000,"output":272000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":22.5},"limit":{"context":200000,"output":65536}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65536}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"gpt-5-chat-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"gemini-2.5-pro-preview-06-05","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":200000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"gpt-5.1-codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-0709":{"id":"grok-4-0709","name":"grok-4-0709","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":256000,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"gpt-5.2-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"claude-opus-4-6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"grok-code-fast-1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.35},"limit":{"context":256000,"output":256000}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"gemini-2.5-flash-preview-05-20","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.135,"output":3.15},"limit":{"context":1048576,"output":200000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":2.25},"limit":{"context":1048576,"output":65535}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"o3":{"id":"o3","name":"o3","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40},"limit":{"context":131072,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"claude-opus-4-20250514","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"gpt-5.1-codex-mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.575,"output":12.6},"limit":{"context":400000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.5},"limit":{"context":20000,"output":64000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"gemini-2.5-flash-lite-preview-06-17","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","video","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"gpt-5.1-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"gpt-5.2-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18.9,"output":151.2},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":10.8},"limit":{"context":1048576,"output":65536}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":131072,"output":131072}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"claude-sonnet-4-20250514","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":65535}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36},"limit":{"context":400000,"output":128000}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":128000}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":65536,"output":16384}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.14},"limit":{"context":163840,"output":163840}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","family":"ernie","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":131072,"output":16384}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"qwen/qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":131072}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}}}},"meganova":{"id":"meganova","env":["MEGANOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.meganova.ai/v1","name":"Meganova","doc":"https://docs.meganova.ai","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.9},"limit":{"context":202752,"output":131072}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":202752,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56},"limit":{"context":202752,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":32000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":131072}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-10-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.15},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.88},"limit":{"context":163840,"output":163840}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.8},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.6},"limit":{"context":262144,"output":262144}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":16384}},"Qwen/Qwen3.5-Plus":{"id":"Qwen/Qwen3.5-Plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":16384,"output":16384}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":65536}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}}}},"perplexity":{"id":"perplexity","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/perplexity","name":"Perplexity","doc":"https://docs.perplexity.ai","models":{"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":4096}},"sonar":{"id":"sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"sonar-pro":{"id":"sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}}}},"huggingface":{"id":"huggingface","env":["HF_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://router.huggingface.co/v1","name":"Hugging Face","doc":"https://huggingface.co/docs/inference-providers","models":{"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":4096}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3-Coder-Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Embedding-4B":{"id":"Qwen/Qwen3-Embedding-4B","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen 3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2},"limit":{"context":262144,"output":131072}}}},"anthropic":{"id":"anthropic","env":["ANTHROPIC_API_KEY"],"npm":"@ai-sdk/anthropic","name":"Anthropic","doc":"https://docs.anthropic.com/en/docs/about-claude/models","models":{"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku-latest":{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-3-sonnet-20240229":{"id":"claude-3-sonnet-20240229","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"claude-sonnet-4-0":{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-0":{"id":"claude-opus-4-0","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-3-7-sonnet-latest":{"id":"claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-opus-20240229":{"id":"claude-3-opus-20240229","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}}}},"tencent-coding-plan":{"id":"tencent-coding-plan","env":["TENCENT_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.lkeap.cloud.tencent.com/coding/v3","name":"Tencent Coding Plan (China)","doc":"https://cloud.tencent.com/document/product/1772/128947","models":{"hunyuan-turbos":{"id":"hunyuan-turbos","name":"Hunyuan-TurboS","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"tc-code-latest":{"id":"tc-code-latest","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"hunyuan-t1":{"id":"hunyuan-t1","name":"Hunyuan-T1","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-instruct":{"id":"hunyuan-2.0-instruct","name":"Tencent HY 2.0 Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-thinking":{"id":"hunyuan-2.0-thinking","name":"Tencent HY 2.0 Think","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":32768}}}},"google-vertex-anthropic":{"id":"google-vertex-anthropic","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex/anthropic","name":"Vertex (Anthropic)","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude","models":{"claude-sonnet-4-5@20250929":{"id":"claude-sonnet-4-5@20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-1@20250805":{"id":"claude-opus-4-1@20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-7-sonnet@20250219":{"id":"claude-3-7-sonnet@20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4@20250514":{"id":"claude-opus-4@20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-opus-4-5@20251101":{"id":"claude-opus-4-5@20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku@20241022":{"id":"claude-3-5-haiku@20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-sonnet-4@20250514":{"id":"claude-sonnet-4@20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-5-sonnet@20241022":{"id":"claude-3-5-sonnet@20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-opus-4-6@default":{"id":"claude-opus-4-6@default","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"claude-haiku-4-5@20251001":{"id":"claude-haiku-4-5@20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-6@default":{"id":"claude-sonnet-4-6@default","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}}}},"friendli":{"id":"friendli","env":["FRIENDLI_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.friendli.ai/serverless/v1","name":"Friendli","doc":"https://friendli.ai/docs/guides/serverless_endpoints/introduction","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":202752}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":202752}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-13","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":8000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":0.6},"limit":{"context":131072,"output":131072}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}}}},"kilo":{"id":"kilo","env":["KILO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.kilo.ai/api/gateway","name":"Kilo Gateway","doc":"https://kilo.ai","models":{"giga-potato-thinking":{"id":"giga-potato-thinking","name":"Giga Potato Thinking (free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"corethink:free":{"id":"corethink:free","name":"CoreThink (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":78000,"output":8192}},"morph-warp-grep-v2":{"id":"morph-warp-grep-v2","name":"Morph: WarpGrep V2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"giga-potato":{"id":"giga-potato","name":"Giga Potato (free)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Prime Intellect: INTELLECT-3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"allenai/olmo-2-0325-32b-instruct":{"id":"allenai/olmo-2-0325-32b-instruct","name":"AllenAI: Olmo 2 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":128000,"output":32768}},"allenai/olmo-3-7b-instruct":{"id":"allenai/olmo-3-7b-instruct","name":"AllenAI: Olmo 3 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"AllenAI: Olmo 3 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"AllenAI: Molmo2 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-09","last_updated":"2026-01-31","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"output":36864}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"AllenAI: Olmo 3.1 32B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"output":32768}},"allenai/olmo-3-7b-think":{"id":"allenai/olmo-3-7b-think","name":"AllenAI: Olmo 3 7B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"AllenAI: Olmo 3.1 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"Nex AGI: DeepSeek V3.1 Nex N1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":163840}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"NVIDIA: Llama 3.1 Nemotron 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":131072,"output":16384}},"nvidia/nemotron-3-super-120b-a12b:free":{"id":"nvidia/nemotron-3-super-120b-a12b:free","name":"NVIDIA: Nemotron 3 Super (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"NVIDIA: Llama 3.3 Nemotron Super 49B V1.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"NVIDIA: Nemotron Nano 12B 2 VL","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"NVIDIA: Nemotron Nano 9B V2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"NVIDIA: Nemotron 3 Nano 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":262144,"output":52429}},"ibm-granite/granite-4.0-h-micro":{"id":"ibm-granite/granite-4.0-h-micro","name":"IBM: Granite 4.0 Micro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.017,"output":0.11},"limit":{"context":131000,"output":32768}},"arcee-ai/coder-large":{"id":"arcee-ai/coder-large","name":"Arcee AI: Coder Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":0.8},"limit":{"context":32768,"output":32768}},"arcee-ai/virtuoso-large":{"id":"arcee-ai/virtuoso-large","name":"Arcee AI: Virtuoso Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":1.2},"limit":{"context":131072,"output":64000}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Arcee AI: Trinity Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"arcee-ai/maestro-reasoning":{"id":"arcee-ai/maestro-reasoning","name":"Arcee AI: Maestro Reasoning","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":3.3},"limit":{"context":131072,"output":32000}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Arcee AI: Trinity Large Preview (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131000,"output":26200}},"arcee-ai/spotlight":{"id":"arcee-ai/spotlight","name":"Arcee AI: Spotlight","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":131072,"output":65537}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi: MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29,"cache_read":0.045},"limit":{"context":262144,"output":65536}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Microsoft: Phi 4","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.14},"limit":{"context":16384,"output":16384}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"alfredpros/codellama-7b-instruct-solidity":{"id":"alfredpros/codellama-7b-instruct-solidity","name":"AlfredPros: CodeLLaMa 7B Instruct Solidity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"liquid/lfm-2.2-6b":{"id":"liquid/lfm-2.2-6b","name":"LiquidAI: LFM2-2.6B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"liquid/lfm-2-24b-a2b":{"id":"liquid/lfm-2-24b-a2b","name":"LiquidAI: LFM2-24B-A2B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.12},"limit":{"context":32768,"output":32768}},"liquid/lfm2-8b-a1b":{"id":"liquid/lfm2-8b-a1b","name":"LiquidAI: LFM2-8B-A1B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"upstage/solar-pro-3":{"id":"upstage/solar-pro-3","name":"Upstage: Solar Pro 3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"switchpoint/router":{"id":"switchpoint/router","name":"Switchpoint Router","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-07-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.4},"limit":{"context":131072,"output":32768}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Inception: Mercury 2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Inception: Mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Inception: Mercury Coder","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"kilo-auto/balanced":{"id":"kilo-auto/balanced","name":"Kilo Auto Balanced","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3},"limit":{"context":204800,"output":131072}},"kilo-auto/free":{"id":"kilo-auto/free","name":"Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"kilo-auto/small":{"id":"kilo-auto/small","name":"Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"kilo-auto/frontier":{"id":"kilo-auto/frontier","name":"Kilo Auto Frontier","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon: Nova Micro 1.0","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14},"limit":{"context":128000,"output":5120}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon: Nova Lite 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":300000,"output":5120}},"amazon/nova-premier-v1":{"id":"amazon/nova-premier-v1","name":"Amazon: Nova Premier 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":32000}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon: Nova 2 Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65535}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon: Nova Pro 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":300000,"output":5120}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":16384,"output":2048}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"EssentialAI: Rnj 1 Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":6554}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"MythoMax 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.06},"limit":{"context":4096,"output":4096}},"alibaba/tongyi-deepresearch-30b-a3b":{"id":"alibaba/tongyi-deepresearch-30b-a3b","name":"Tongyi DeepResearch 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.45},"limit":{"context":131072,"output":131072}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"AionLabs: Aion-1.0-Mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":1.4},"limit":{"context":131072,"output":32768}},"aion-labs/aion-2.0":{"id":"aion-labs/aion-2.0","name":"AionLabs: Aion-2.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":131072,"output":32768}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"AionLabs: Aion-RP 1.0 (8B)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":32768,"output":32768}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"AionLabs: Aion-1.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4,"output":8},"limit":{"context":131072,"output":32768}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"StepFun: Step 3.5 Flash (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"StepFun: Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"relace/relace-search":{"id":"relace/relace-search","name":"Relace: Relace Search","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":256000,"output":128000}},"relace/relace-apply-3":{"id":"relace/relace-apply-3","name":"Relace: Relace Apply 3","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-09-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.25},"limit":{"context":256000,"output":128000}},"thedrummer/rocinante-12b":{"id":"thedrummer/rocinante-12b","name":"TheDrummer: Rocinante 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.43},"limit":{"context":32768,"output":32768}},"thedrummer/cydonia-24b-v4.1":{"id":"thedrummer/cydonia-24b-v4.1","name":"TheDrummer: Cydonia 24B V4.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"output":131072}},"thedrummer/unslopnemo-12b":{"id":"thedrummer/unslopnemo-12b","name":"TheDrummer: UnslopNemo 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"thedrummer/skyfall-36b-v2":{"id":"thedrummer/skyfall-36b-v2","name":"TheDrummer: Skyfall 36B V2","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":0.8},"limit":{"context":32768,"output":32768}},"mancer/weaver":{"id":"mancer/weaver","name":"Mancer: Weaver (alpha)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":1},"limit":{"context":8000,"output":2000}},"tencent/hunyuan-a13b-instruct":{"id":"tencent/hunyuan-a13b-instruct","name":"Tencent: Hunyuan A13B Instruct","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131072,"output":131072}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kwaipilot: KAT-Coder-Pro V1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.207,"output":0.828,"cache_read":0.0414},"limit":{"context":256000,"output":128000}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek: R1 0528","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.15,"cache_read":0.2},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek: R1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek: DeepSeek V3.2 Speciale","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek: DeepSeek V3.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":32768,"output":7168}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek: DeepSeek V3 0324","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.77,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek: R1 Distill Llama 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.8,"cache_read":0.015},"limit":{"context":131072,"output":16384}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek: DeepSeek V3.1 Terminus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.21,"output":0.79,"cache_read":0.13},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek: DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38,"cache_read":0.125},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek: DeepSeek V3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":0.89,"cache_read":0.15},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-qwen-32b":{"id":"deepseek/deepseek-r1-distill-qwen-32b","name":"DeepSeek: R1 Distill Qwen 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.29},"limit":{"context":32768,"output":32768}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek: DeepSeek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"alpindale/goliath-120b":{"id":"alpindale/goliath-120b","name":"Goliath 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-11-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.75,"output":7.5},"limit":{"context":6144,"output":1024}},"openrouter/hunter-alpha":{"id":"openrouter/hunter-alpha","name":"Hunter Alpha","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1048576,"output":32000}},"openrouter/auto":{"id":"openrouter/auto","name":"Auto Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["image","text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000000,"output":32768}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":32768}},"openrouter/healer-alpha":{"id":"openrouter/healer-alpha","name":"Healer Alpha","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["audio","image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32000}},"openrouter/bodybuilder":{"id":"openrouter/bodybuilder","name":"Body Builder (beta)","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768},"status":"beta"},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"MoonshotAI: Kimi K2 0711","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131000,"output":26215}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"MoonshotAI: Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":131072,"output":26215}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"MoonshotAI: Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.2},"limit":{"context":262144,"output":65535}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"MoonshotAI: Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2,"cache_read":0.2},"limit":{"context":131072,"output":65535}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"Baidu: ERNIE 4.5 VL 424B A47B ","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"Baidu: ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.56},"limit":{"context":30000,"output":8000}},"baidu/ernie-4.5-21b-a3b-thinking":{"id":"baidu/ernie-4.5-21b-a3b-thinking","name":"Baidu: ERNIE 4.5 21B A3B Thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"Baidu: ERNIE 4.5 300B A47B ","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21b-a3b":{"id":"baidu/ernie-4.5-21b-a3b","name":"Baidu: ERNIE 4.5 21B A3B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Google: Gemini 2.5 Flash Lite Preview 09-2025","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Google: Gemini 3.1 Pro Preview Custom Tools","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Google: Gemini 2.5 Pro Preview 05-06","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65535}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"reasoning":2.5,"cache_read":0.03,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-2.5-pro-preview":{"id":"google/gemini-2.5-pro-preview","name":"Google: Gemini 2.5 Pro Preview 06-05","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-05","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":65536,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Google: Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"cache_write":0.083333},"limit":{"context":1048576,"output":8192}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Google: Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Google: Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"reasoning":3,"cache_read":0.05,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Google: Gemma 2 27B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.65},"limit":{"context":8192,"output":2048}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Google: Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Google: Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-lite-001":{"id":"google/gemini-2.0-flash-lite-001","name":"Google: Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Google: Nano Banana (Gemini 2.5 Flash Image)","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-08","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemini-3-pro-image-preview":{"id":"google/gemini-3-pro-image-preview","name":"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":65536,"output":32768}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Google: Gemma 2 9B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":1639}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Google: Gemma 3n 4B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":6554}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Google: Gemini 3 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-18","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"cache_read":0.2,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Google: Gemma 3 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.13,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Google: Gemma 3 4B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.08},"limit":{"context":131072,"output":19200}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Google: Gemma 3 27B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Google: Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z.ai: GLM 5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":2.3},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"Z.ai: GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85,"cache_read":0.025},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"Z.ai: GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.175},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"Z.ai: GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":202752,"output":40551}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z.ai: GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.175},"limit":{"context":204800,"output":204800}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z.ai: GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.98,"cache_read":0.2},"limit":{"context":202752,"output":65535}},"z-ai/glm-4-32b":{"id":"z-ai/glm-4-32b","name":"Z.ai: GLM 4 32B ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"Z.ai: GLM 4.5V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"Z.ai: GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-01-10","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":131072,"output":131072}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Deep Cogito: Cogito v2.1 671B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":32768}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan: LongCat Flash Chat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8,"cache_read":0.2},"limit":{"context":131072,"output":131072}},"bytedance/ui-tars-1.5-7b":{"id":"bytedance/ui-tars-1.5-7b","name":"ByteDance: UI-TARS 7B ","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"output":2048}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-07-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":0.65},"limit":{"context":6144,"output":4096}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen: Qwen3.5-27B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.195,"output":1.56},"limit":{"context":262144,"output":65536}},"qwen/qwen-vl-plus":{"id":"qwen/qwen-vl-plus","name":"Qwen: Qwen VL Plus","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1365,"output":0.4095,"cache_read":0.042},"limit":{"context":131072,"output":8192}},"qwen/qwen-vl-max":{"id":"qwen/qwen-vl-max","name":"Qwen: Qwen VL Max","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen: Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0975,"output":0.78},"limit":{"context":131072,"output":32768}},"qwen/qwen-2.5-vl-7b-instruct":{"id":"qwen/qwen-2.5-vl-7b-instruct","name":"Qwen: Qwen2.5-VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-28","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"output":6554}},"qwen/qwen3-max-thinking":{"id":"qwen/qwen3-max-thinking","name":"Qwen: Qwen3 Max Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.78,"output":3.9},"limit":{"context":262144,"output":32768}},"qwen/qwen3-14b":{"id":"qwen/qwen3-14b","name":"Qwen: Qwen3 14B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.025},"limit":{"context":40960,"output":40960}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen: Qwen3.5-35B-A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1625,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.4},"limit":{"context":32768,"output":32768}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen: Qwen3 Coder Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.195,"output":0.975,"cache_read":0.06},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-vl-8b-thinking":{"id":"qwen/qwen3-vl-8b-thinking","name":"Qwen: Qwen3 VL 8B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.117,"output":1.365},"limit":{"context":131072,"output":32768}},"qwen/qwen2.5-vl-32b-instruct":{"id":"qwen/qwen2.5-vl-32b-instruct","name":"Qwen: Qwen2.5 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.025},"limit":{"context":128000,"output":16384}},"qwen/qwen-max":{"id":"qwen/qwen-max","name":"Qwen: Qwen-Max ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-03","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.04,"output":4.16,"cache_read":0.32},"limit":{"context":32768,"output":8192}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen: Qwen2.5 Coder 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":32768,"output":6554}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen: Qwen3 Coder Next","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.75,"cache_read":0.035},"limit":{"context":262144,"output":65536}},"qwen/qwen-turbo":{"id":"qwen/qwen-turbo","name":"Qwen: Qwen-Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0325,"output":0.13,"cache_read":0.01},"limit":{"context":131072,"output":8192}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen: Qwen3 Coder 480B A35B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1,"cache_read":0.022},"limit":{"context":262144,"output":52429}},"qwen/qwen3-8b":{"id":"qwen/qwen3-8b","name":"Qwen: Qwen3 8B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.05},"limit":{"context":40960,"output":8192}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen: Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"qwen/qwen3-235b-a22b-2507":{"id":"qwen/qwen3-235b-a22b-2507","name":"Qwen: Qwen3 235B A22B Instruct 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.071,"output":0.1},"limit":{"context":262144,"output":52429}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen: Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":2.34},"limit":{"context":262144,"output":65536}},"qwen/qwen-2.5-7b-instruct":{"id":"qwen/qwen-2.5-7b-instruct","name":"Qwen: Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.1},"limit":{"context":32768,"output":6554}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-11-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2,"cache_read":0.015},"limit":{"context":32768,"output":8192}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen: Qwen3.5 Plus 2026-02-15","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":1.56},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen: Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.3,"cache_read":0.04},"limit":{"context":262144,"output":262144}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen: Qwen2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen: Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.455,"output":1.82,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen: Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen: Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.88,"cache_read":0.11},"limit":{"context":262144,"output":52429}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.39},"limit":{"context":32768,"output":16384}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"Qwen: Qwen3 VL 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":1.56},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen: Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.6},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen: Qwen3 30B A3B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":32768,"output":6554}},"qwen/qwen-plus":{"id":"qwen/qwen-plus","name":"Qwen: Qwen-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen: Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-9b":{"id":"qwen/qwen3.5-9b","name":"Qwen: Qwen3.5-9B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":32768}},"qwen/qwen-plus-2025-07-28":{"id":"qwen/qwen-plus-2025-07-28","name":"Qwen: Qwen Plus 0728","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"Qwen: Qwen3 VL 30B A3B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen: Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":131072,"output":52429}},"qwen/qwen3-vl-32b-instruct":{"id":"qwen/qwen3-vl-32b-instruct","name":"Qwen: Qwen3 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.104,"output":0.416},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"Qwen: Qwen3 VL 8B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen: Qwen3.5-122B-A10B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.08},"limit":{"context":262144,"output":65536}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen: Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"qwen/qwen3-30b-a3b":{"id":"qwen/qwen3-30b-a3b","name":"Qwen: Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.28,"cache_read":0.03},"limit":{"context":40960,"output":40960}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen: Qwen3 Coder Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3.25,"cache_read":0.2},"limit":{"context":1000000,"output":65536}},"qwen/qwen-plus-2025-07-28:thinking":{"id":"qwen/qwen-plus-2025-07-28:thinking","name":"Qwen: Qwen Plus 0728 (thinking)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen3.5-flash-02-23":{"id":"qwen/qwen3.5-flash-02-23","name":"Qwen: Qwen3.5-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"eleutherai/llemma_7b":{"id":"eleutherai/llemma_7b","name":"EleutherAI: Llemma 7b","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"xAI: Grok 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"xAI: Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"xAI: Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"xAI: Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":51200}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"xAI: Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"xAI: Grok 3 Mini Beta","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"xAI: Grok 3 Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-code-fast-1:optimized:free":{"id":"x-ai/grok-code-fast-1:optimized:free","name":"xAI: Grok Code Fast 1 Optimized (experimental, free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":10000}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"xAI: Grok 4.20 Multi-Agent Beta","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"xAI: Grok 4.20 Beta","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"xAI: Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Meta: Llama 4 Scout","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":327680,"output":16384}},"meta-llama/llama-3.1-70b-instruct":{"id":"meta-llama/llama-3.1-70b-instruct","name":"Meta: Llama 3.1 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":26215}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Meta: Llama 3.3 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Meta: Llama 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Meta: Llama 3.2 11B Vision Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.049,"output":0.049},"limit":{"context":131072,"output":16384}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Meta: Llama 3.2 3B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":80000,"output":16384}},"meta-llama/llama-guard-3-8b":{"id":"meta-llama/llama-guard-3-8b","name":"Llama Guard 3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06},"limit":{"context":131072,"output":26215}},"meta-llama/llama-3.2-1b-instruct":{"id":"meta-llama/llama-3.2-1b-instruct","name":"Meta: Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.027,"output":0.2},"limit":{"context":60000,"output":12000}},"meta-llama/llama-3.1-405b-instruct":{"id":"meta-llama/llama-3.1-405b-instruct","name":"Meta: Llama 3.1 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":131000,"output":26200}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Meta: Llama 4 Maverick","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-12-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048576,"output":16384}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Meta: Llama 3.1 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Meta: Llama Guard 4 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":163840,"output":32768}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Meta: Llama 3 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.04},"limit":{"context":8192,"output":16384}},"meta-llama/llama-3.1-405b":{"id":"meta-llama/llama-3.1-405b","name":"Meta: Llama 3.1 405B (base)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":32768,"output":32768}},"tngtech/deepseek-r1t2-chimera":{"id":"tngtech/deepseek-r1t2-chimera","name":"TNG: DeepSeek R1T2 Chimera","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85,"cache_read":0.125},"limit":{"context":163840,"output":163840}},"mistralai/voxtral-small-24b-2507":{"id":"mistralai/voxtral-small-24b-2507","name":"Mistral: Voxtral Small 24B 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32000,"output":6400}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Mistral: Ministral 3 3B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":32768}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral: Saba","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":32768,"output":32768}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral: Mistral Medium 3","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-24b-instruct-2501":{"id":"mistralai/mistral-small-24b-instruct-2501","name":"Mistral: Mistral Small 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":32768,"output":16384}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Mistral: Codestral 2508","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":51200}},"mistralai/pixtral-large-2411":{"id":"mistralai/pixtral-large-2411","name":"Mistral: Pixtral Large 2411","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral: Mistral Small 3.1 24B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.56,"cache_read":0.015},"limit":{"context":128000,"output":131072}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral: Mistral Small Creative","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"output":32768}},"mistralai/mistral-large-2512":{"id":"mistralai/mistral-large-2512","name":"Mistral: Mistral Large 3 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":52429}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Mistral: Ministral 3 8B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"output":32768}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Mistral: Ministral 3 14B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"output":52429}},"mistralai/devstral-medium":{"id":"mistralai/devstral-medium","name":"Mistral: Devstral Medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-large-2407":{"id":"mistralai/mistral-large-2407","name":"Mistral Large 2407","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral: Mistral Nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":16384}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Mistral: Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.025},"limit":{"context":262144,"output":65536}},"mistralai/devstral-small":{"id":"mistralai/devstral-small","name":"Mistral: Devstral Small 1.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral: Mistral Small 3.2 24B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18,"cache_read":0.03},"limit":{"context":131072,"output":131072}},"mistralai/mixtral-8x22b-instruct":{"id":"mistralai/mixtral-8x22b-instruct","name":"Mistral: Mixtral 8x22B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":65536,"output":13108}},"mistralai/mistral-large-2411":{"id":"mistralai/mistral-large-2411","name":"Mistral Large 2411","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":26215}},"mistralai/mistral-7b-instruct-v0.1":{"id":"mistralai/mistral-7b-instruct-v0.1","name":"Mistral: Mistral 7B Instruct v0.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":2824,"output":565}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":25600}},"mistralai/mixtral-8x7b-instruct":{"id":"mistralai/mixtral-8x7b-instruct","name":"Mistral: Mixtral 8x7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-12-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.54,"output":0.54},"limit":{"context":32768,"output":16384}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral: Mistral Medium 3.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"OpenAI: GPT-4o (2024-11-20)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"OpenAI: GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-02-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"OpenAI: GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"OpenAI: GPT-5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"OpenAI: GPT-4o-mini Search Preview","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-4o:extended":{"id":"openai/gpt-4o:extended","name":"OpenAI: GPT-4o (extended)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":18},"limit":{"context":128000,"output":64000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"OpenAI: GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-2024-05-13":{"id":"openai/gpt-4o-2024-05-13","name":"OpenAI: GPT-4o (2024-05-13)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"openai/gpt-4o-audio-preview":{"id":"openai/gpt-4o-audio-preview","name":"OpenAI: GPT-4o Audio","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-15","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-2024-07-18":{"id":"openai/gpt-4o-mini-2024-07-18","name":"OpenAI: GPT-4o-mini (2024-07-18)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"OpenAI: GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-audio":{"id":"openai/gpt-audio","name":"OpenAI: GPT Audio","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI: o3 Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"openai/gpt-3.5-turbo-16k":{"id":"openai/gpt-3.5-turbo-16k","name":"OpenAI: GPT-3.5 Turbo 16k","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16385,"output":4096}},"openai/o1":{"id":"openai/o1","name":"OpenAI: o1","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"OpenAI: GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-image-mini":{"id":"openai/gpt-5-image-mini","name":"OpenAI: GPT-5 Image Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2.5,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"OpenAI: GPT-5.2 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI: o4 Mini Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"OpenAI: GPT-5 Chat","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"OpenAI: GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"OpenAI: o3","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"OpenAI: GPT-4 Turbo Preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"OpenAI: GPT-5 Image","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":10,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"OpenAI: GPT-4.1 Nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1047576,"output":32768}},"openai/gpt-3.5-turbo-0613":{"id":"openai/gpt-3.5-turbo-0613","name":"OpenAI: GPT-3.5 Turbo (older v0613)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":4095,"output":4096}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"OpenAI: GPT-3.5 Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI: gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.039,"output":0.19},"limit":{"context":131072,"output":26215}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI: GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"OpenAI: GPT-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/o3-pro":{"id":"openai/o3-pro","name":"OpenAI: o3 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"OpenAI: GPT-4 Turbo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-09-13","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI: GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI: o4 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"OpenAI: GPT-4.1 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-4-0314":{"id":"openai/gpt-4-0314","name":"OpenAI: GPT-4 (older v0314)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-audio-mini":{"id":"openai/gpt-audio-mini","name":"OpenAI: GPT Audio Mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"output":16384}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"OpenAI: GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"OpenAI: GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"OpenAI: GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2026-03-04","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"openai/gpt-4-1106-preview":{"id":"openai/gpt-4-1106-preview","name":"OpenAI: GPT-4 Turbo (older v1106)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"OpenAI: gpt-oss-safeguard-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.037},"limit":{"context":131072,"output":65536}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI: o1-pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"release_date":"2025-03-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"OpenAI: GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"OpenAI: GPT-5.2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI: o3 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-20","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"OpenAI: GPT-4o (2024-08-06)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"OpenAI: GPT-5 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":26215}},"openai/gpt-4":{"id":"openai/gpt-4","name":"OpenAI: GPT-4","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-14","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"OpenAI: GPT-5 Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"OpenAI: GPT-3.5 Turbo Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4095,"output":4096}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI: o3 Mini High","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI: o4 Mini High","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-04-17","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"OpenAI: GPT-4o","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"OpenAI: GPT-4o Search Preview","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph: Morph V3 Fast","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":81920,"output":38000}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph: Morph V3 Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":262144,"output":131072}},"cohere/command-r-08-2024":{"id":"cohere/command-r-08-2024","name":"Cohere: Command R (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+ (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"cohere/command-r7b-12-2024":{"id":"cohere/command-r7b-12-2024","name":"Cohere: Command R7B (12-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"cohere/command-a":{"id":"cohere/command-a","name":"Cohere: Command A","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8192}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax: MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax: MiniMax-01","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000192,"output":1000192}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax: MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03},"limit":{"context":196608,"output":39322}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax: MiniMax M2-her","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":65536,"output":2048}},"minimax/minimax-m2.5:free":{"id":"minimax/minimax-m2.5:free","name":"MiniMax: MiniMax M2.5 (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax: MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.255,"output":1,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax: MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.2,"cache_read":0.029},"limit":{"context":196608,"output":196608}},"sao10k/l3.1-70b-hanami-x1":{"id":"sao10k/l3.1-70b-hanami-x1","name":"Sao10K: Llama 3.1 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-08","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":16000,"output":16000}},"sao10k/l3-lunaris-8b":{"id":"sao10k/l3-lunaris-8b","name":"Sao10K: Llama 3 8B Lunaris","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.05},"limit":{"context":8192,"output":8192}},"sao10k/l3.1-euryale-70b":{"id":"sao10k/l3.1-euryale-70b","name":"Sao10K: Llama 3.1 Euryale 70B v2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":0.85},"limit":{"context":131072,"output":16384}},"sao10k/l3-euryale-70b":{"id":"sao10k/l3-euryale-70b","name":"Sao10k: Llama 3 Euryale 70B v2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3.3-euryale-70b":{"id":"sao10k/l3.3-euryale-70b","name":"Sao10K: Llama 3.3 Euryale 70B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.75},"limit":{"context":131072,"output":16384}},"writer/palmyra-x5":{"id":"writer/palmyra-x5","name":"Writer: Palmyra X5","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Perplexity: Sonar Reasoning Pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Perplexity: Sonar","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127072,"output":25415}},"perplexity/sonar-deep-research":{"id":"perplexity/sonar-deep-research","name":"Perplexity: Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Perplexity: Sonar Pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar-pro-search":{"id":"perplexity/sonar-pro-search","name":"Perplexity: Sonar Pro Search","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-31","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"bytedance-seed/seed-2.0-mini":{"id":"bytedance-seed/seed-2.0-mini","name":"ByteDance Seed: Seed-2.0-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-27","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"output":131072}},"bytedance-seed/seed-1.6":{"id":"bytedance-seed/seed-1.6","name":"ByteDance Seed: Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-1.6-flash":{"id":"bytedance-seed/seed-1.6-flash","name":"ByteDance Seed: Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-2.0-lite":{"id":"bytedance-seed/seed-2.0-lite","name":"ByteDance Seed: Seed-2.0-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":131072}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Anthropic: Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Anthropic: Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Anthropic: Claude 3 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Anthropic: Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":1000000,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Anthropic: Claude Haiku 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.7-sonnet:thinking":{"id":"anthropic/claude-3.7-sonnet:thinking","name":"Anthropic: Claude 3.7 Sonnet (thinking)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Anthropic: Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-24","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Anthropic: Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Anthropic: Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Anthropic: Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"ai21/jamba-large-1.7":{"id":"ai21/jamba-large-1.7","name":"AI21: Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":256000,"output":4096}},"kilo/auto":{"id":"kilo/auto","name":"Kilo: Auto","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"kilo/auto-free":{"id":"kilo/auto-free","name":"Deprecated Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"kilo/auto-small":{"id":"kilo/auto-small","name":"Deprecated Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection: Inflection 3 Productivity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection: Inflection 3 Pi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Nous: Hermes 4 405B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":26215}},"nousresearch/hermes-3-llama-3.1-70b":{"id":"nousresearch/hermes-3-llama-3.1-70b","name":"Nous: Hermes 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":131072,"output":32768}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Nous: Hermes 4 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.055},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-3-llama-3.1-405b":{"id":"nousresearch/hermes-3-llama-3.1-405b","name":"Nous: Hermes 3 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1},"limit":{"context":131072,"output":16384}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"NousResearch: Hermes 2 Pro - Llama-3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-05-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}}}},"nano-gpt":{"id":"nano-gpt","env":["NANO_GPT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://nano-gpt.com/api/v1","name":"NanoGPT","doc":"https://docs.nano-gpt.com","models":{"exa-research-pro":{"id":"exa-research-pro","name":"Exa (Research Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":16384,"input":16384,"output":16384}},"gemini-2.0-pro-exp-02-05":{"id":"gemini-2.0-pro-exp-02-05","name":"Gemini 2.0 Pro 0205","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.956},"limit":{"context":2097152,"input":2097152,"output":8192}},"qwen-image":{"id":"qwen-image","name":"Qwen Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3-70B-Shakudo":{"id":"Llama-3.3-70B-Shakudo","name":"Llama 3.3 70B Shakudo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"ernie-4.5-8k-preview":{"id":"ernie-4.5-8k-preview","name":"Ernie 4.5 8k Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":2.6},"limit":{"context":8000,"input":8000,"output":16384}},"claude-3-7-sonnet-thinking:128000":{"id":"claude-3-7-sonnet-thinking:128000","name":"Claude 3.7 Sonnet Thinking (128K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"phi-4-multimodal-instruct":{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.11},"limit":{"context":128000,"input":128000,"output":16384}},"z-image-turbo":{"id":"z-image-turbo","name":"Z Image Turbo","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter":{"id":"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter","name":"Llama 3.3+ 70B TenyxChat DaybreakStorywriter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"mistral-small-31-24b-instruct":{"id":"mistral-small-31-24b-instruct","name":"Mistral Small 31 24b Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"input":128000,"output":131072}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0","name":"Llama 3.3 70B Omega Directive Unslop v2.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Baichuan-M2":{"id":"Baichuan-M2","name":"Baichuan M2 32B Medical","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15.73,"output":15.73},"limit":{"context":32768,"input":32768,"output":32768}},"doubao-1.5-vision-pro-32k":{"id":"doubao-1.5-vision-pro-32k","name":"Doubao 1.5 Vision Pro 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.459,"output":1.377},"limit":{"context":32000,"input":32000,"output":8192}},"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink v2 ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-ArliAI-RPMax-v1.4":{"id":"Llama-3.3-70B-ArliAI-RPMax-v1.4","name":"Llama 3.3 70B RPMax v1.4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"jamba-large-1.6":{"id":"jamba-large-1.6","name":"Jamba Large 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"Llama-3.3-70B-Aurora-Borealis":{"id":"Llama-3.3-70B-Aurora-Borealis","name":"Llama 3.3 70B Aurora Borealis","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"ernie-x1-32k":{"id":"ernie-x1-32k","name":"Ernie X1 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"Llama-3.3-70B-Magnum-v4-SE":{"id":"Llama-3.3-70B-Magnum-v4-SE","name":"Llama 3.3 70B Magnum v4 SE","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":64000,"input":64000,"output":65536}},"KAT-Coder-Pro-V1":{"id":"KAT-Coder-Pro-V1","name":"KAT Coder Pro V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6},"limit":{"context":256000,"input":256000,"output":32768}},"hunyuan-turbos-20250226":{"id":"hunyuan-turbos-20250226","name":"Hunyuan Turbo S","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.187,"output":0.374},"limit":{"context":24000,"input":24000,"output":8192}},"jamba-large-1.7":{"id":"jamba-large-1.7","name":"Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"mercury-coder-small":{"id":"mercury-coder-small","name":"Mercury Coder Small","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-1-5-thinking-pro-vision-250415":{"id":"doubao-1-5-thinking-pro-vision-250415","name":"Doubao 1.5 Thinking Pro Vision","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"yi-medium-200k":{"id":"yi-medium-200k","name":"Yi Medium 200k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-01","last_updated":"2024-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":2.499},"limit":{"context":200000,"input":200000,"output":4096}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"deepseek-chat-cheaper":{"id":"deepseek-chat-cheaper","name":"DeepSeek V3/Chat Cheaper","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"step-r1-v-mini":{"id":"step-r1-v-mini","name":"Step R1 V Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":11},"limit":{"context":128000,"input":128000,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 0605","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"yi-lightning":{"id":"yi-lightning","name":"Yi Lightning","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-16","last_updated":"2024-10-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":12000,"input":12000,"output":4096}},"deepseek-reasoner-cheaper":{"id":"deepseek-reasoner-cheaper","name":"Deepseek R1 Cheaper","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":65536}},"ernie-4.5-turbo-vl-32k":{"id":"ernie-4.5-turbo-vl-32k","name":"Ernie 4.5 Turbo VL 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.495,"output":1.43},"limit":{"context":32000,"input":32000,"output":16384}},"v0-1.0-md":{"id":"v0-1.0-md","name":"v0 1.0 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"Llama-3.3-70B-Ignition-v0.1":{"id":"Llama-3.3-70B-Ignition-v0.1","name":"Llama 3.3 70B Ignition v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-z1-air":{"id":"glm-z1-air","name":"GLM Z1 Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"input":32000,"output":16384}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"Llama-3.3-70B-RAWMAW":{"id":"Llama-3.3-70B-RAWMAW","name":"Llama 3.3 70B RAWMAW","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Magistral-Small-2506":{"id":"Magistral-Small-2506","name":"Magistral Small 2506","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":32768,"input":32768,"output":32768}},"ernie-x1-turbo-32k":{"id":"ernie-x1-turbo-32k","name":"Ernie X1 Turbo 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.165,"output":0.66},"limit":{"context":32000,"input":32000,"output":16384}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Reasoning Pro","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":7.9985},"limit":{"context":127000,"input":127000,"output":128000}},"deepseek-r1-sambanova":{"id":"deepseek-r1-sambanova","name":"DeepSeek R1 Fast","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":6.987},"limit":{"context":128000,"input":128000,"output":4096}},"claude-3-7-sonnet-thinking:1024":{"id":"claude-3-7-sonnet-thinking:1024","name":"Claude 3.7 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP":{"id":"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP","name":"Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v3":{"id":"Llama-3.3-70B-ArliAI-RPMax-v3","name":"Llama 3.3 70B ArliAI RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen-long":{"id":"qwen-long","name":"Qwen Long 10M","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":10000000,"input":10000000,"output":8192}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Progenitor-V3.3":{"id":"Llama-3.3-70B-Progenitor-V3.3","name":"Llama 3.3 70B Progenitor V3.3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Iceblink-v2":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2","name":"GLM 4.5 Air Derestricted Iceblink v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":158600,"input":158600,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"study_gpt-chatgpt-4o-latest":{"id":"study_gpt-chatgpt-4o-latest","name":"Study Mode","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.994},"limit":{"context":200000,"input":200000,"output":16384}},"qwq-32b":{"id":"qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25599999,"output":0.30499999},"limit":{"context":128000,"input":128000,"output":32768}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 0506","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-MS-Nevoria":{"id":"Llama-3.3-70B-MS-Nevoria","name":"Llama 3.3 70B MS Nevoria","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-1-6-250615":{"id":"doubao-seed-1-6-250615","name":"Doubao Seed 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":0.51},"limit":{"context":256000,"input":256000,"output":16384}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash 0520","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048000,"input":1048000,"output":65536}},"glm-4":{"id":"glm-4","name":"GLM-4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-01-16","last_updated":"2024-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":14.994},"limit":{"context":128000,"input":128000,"output":4096}},"azure-gpt-4-turbo":{"id":"azure-gpt-4-turbo","name":"Azure gpt-4-turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.005},"limit":{"context":128000,"input":128000,"output":4096}},"Llama-3.3-70B-Legion-V2.1":{"id":"Llama-3.3-70B-Legion-V2.1","name":"Llama 3.3 70B Legion V2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-3-7-sonnet-thinking:32768":{"id":"claude-3-7-sonnet-thinking:32768","name":"Claude 3.7 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"asi1-mini":{"id":"asi1-mini","name":"ASI1 Mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"input":128000,"output":16384}},"gemini-exp-1206":{"id":"gemini-exp-1206","name":"Gemini 2.0 Pro 1206","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.258,"output":4.998},"limit":{"context":2097152,"input":2097152,"output":8192}},"qwen-max":{"id":"qwen-max","name":"Qwen 2.5 Max","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5997,"output":6.392},"limit":{"context":32000,"input":32000,"output":8192}},"brave":{"id":"brave","name":"Brave (Answers)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"doubao-1-5-thinking-pro-250415":{"id":"doubao-1-5-thinking-pro-250415","name":"Doubao 1.5 Thinking Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"claude-sonnet-4-thinking:64000":{"id":"claude-sonnet-4-thinking:64000","name":"Claude 4 Sonnet Thinking (64K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"GLM-4.5-Air-Derestricted-Steam-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Steam-ReExtract","name":"GLM 4.5 Air Derestricted Steam ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"kimi-k2-instruct-fast":{"id":"kimi-k2-instruct-fast","name":"Kimi K2 0711 Fast","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"Llama-3.3-70B-GeneticLemonade-Opus":{"id":"Llama-3.3-70B-GeneticLemonade-Opus","name":"Llama 3.3 70B GeneticLemonade Opus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Big-Tiger-v3":{"id":"Gemma-3-27B-Big-Tiger-v3","name":"Gemma 3 27B Big Tiger v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-2-0-mini-260215":{"id":"doubao-seed-2-0-mini-260215","name":"Doubao Seed 2.0 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0493,"output":0.4845},"limit":{"context":256000,"input":256000,"output":32000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"Claude Sonnet 4.5 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"glm-4-air":{"id":"glm-4-air","name":"GLM-4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":4096}},"GLM-4.5-Air-Derestricted-Iceblink-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"gemini-2.0-pro-reasoner":{"id":"gemini-2.0-pro-reasoner","name":"Gemini 2.0 Pro Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.292,"output":4.998},"limit":{"context":128000,"input":128000,"output":65536}},"gemini-2.0-flash-001":{"id":"gemini-2.0-flash-001","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":1000000,"input":1000000,"output":8192}},"glm-4-plus":{"id":"glm-4-plus","name":"GLM-4 Plus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.497,"output":7.497},"limit":{"context":128000,"input":128000,"output":4096}},"gemini-2.0-flash-exp-image-generation":{"id":"gemini-2.0-flash-exp-image-generation","name":"Gemini Text + Image","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":32767,"input":32767,"output":8192}},"GLM-4.5-Air-Derestricted":{"id":"GLM-4.5-Air-Derestricted","name":"GLM 4.5 Air Derestricted","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":202600,"input":202600,"output":98304}},"gemini-2.0-flash-thinking-exp-1219":{"id":"gemini-2.0-flash-thinking-exp-1219","name":"Gemini 2.0 Flash Thinking 1219","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-19","last_updated":"2024-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":32767,"input":32767,"output":8192}},"glm-4.1v-thinking-flashx":{"id":"glm-4.1v-thinking-flashx","name":"GLM 4.1V Thinking FlashX","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"Llama-3.3-70B-StrawberryLemonade-v1.0":{"id":"Llama-3.3-70B-StrawberryLemonade-v1.0","name":"Llama 3.3 70B StrawberryLemonade v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Fallen-v1":{"id":"Llama-3.3-70B-Fallen-v1","name":"Llama 3.3 70B Fallen v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Nidum-Uncensored":{"id":"Gemma-3-27B-Nidum-Uncensored","name":"Gemma 3 27B Nidum Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":96000}},"Llama-3.3-70B-Electranova-v1.0":{"id":"Llama-3.3-70B-Electranova-v1.0","name":"Llama 3.3 70B Electranova v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"grok-3-fast-beta":{"id":"grok-3-fast-beta","name":"Grok 3 Fast Beta","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":131072,"input":131072,"output":131072}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04998,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":8192}},"Llama-3.3-70B-Sapphira-0.1":{"id":"Llama-3.3-70B-Sapphira-0.1","name":"Llama 3.3 70B Sapphira 0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-pro-preview-03-25":{"id":"gemini-2.5-pro-preview-03-25","name":"Gemini 2.5 Pro Preview 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"step-2-16k-exp":{"id":"step-2-16k-exp","name":"Step-2 16k Exp","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.004,"output":19.992},"limit":{"context":16000,"input":16000,"output":8192}},"chroma":{"id":"chroma","name":"Chroma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"sonar":{"id":"sonar","name":"Perplexity Simple","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.003,"output":1.003},"limit":{"context":127000,"input":127000,"output":128000}},"fastgpt":{"id":"fastgpt","name":"Web Answer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-08-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.5,"output":7.5},"limit":{"context":32768,"input":32768,"output":32768}},"claude-sonnet-4-thinking:8192":{"id":"claude-sonnet-4-thinking:8192","name":"Claude 4 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Electra-R1":{"id":"Llama-3.3-70B-Electra-R1","name":"Llama 3.3 70B Electra R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Fallen-R1-v1":{"id":"Llama-3.3-70B-Fallen-R1-v1","name":"Llama 3.3 70B Fallen R1 v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-it-Abliterated":{"id":"Gemma-3-27B-it-Abliterated","name":"Gemma 3 27B IT Abliterated","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.42,"output":0.42},"limit":{"context":32768,"input":32768,"output":96000}},"doubao-1.5-pro-256k":{"id":"doubao-1.5-pro-256k","name":"Doubao 1.5 Pro 256k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.799,"output":1.445},"limit":{"context":256000,"input":256000,"output":16384}},"claude-opus-4-thinking":{"id":"claude-opus-4-thinking","name":"Claude 4 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":8192}},"doubao-1-5-thinking-vision-pro-250428":{"id":"doubao-1-5-thinking-vision-pro-250428","name":"Doubao 1.5 Thinking Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":1.43},"limit":{"context":128000,"input":128000,"output":16384}},"doubao-seed-2-0-lite-260215":{"id":"doubao-seed-2-0-lite-260215","name":"Doubao Seed 2.0 Lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1462,"output":0.8738},"limit":{"context":256000,"input":256000,"output":32000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude 4 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"qwen25-vl-72b-instruct":{"id":"qwen25-vl-72b-instruct","name":"Qwen25 VL 72b","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":32000,"input":32000,"output":32768}},"azure-gpt-4o":{"id":"azure-gpt-4o","name":"Azure gpt-4o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Deep Research","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-25","last_updated":"2025-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.4,"output":13.6},"limit":{"context":60000,"input":60000,"output":128000}},"ernie-4.5-turbo-128k":{"id":"ernie-4.5-turbo-128k","name":"Ernie 4.5 Turbo 128k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":0.55},"limit":{"context":128000,"input":128000,"output":16384}},"azure-o1":{"id":"azure-o1","name":"Azure o1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"gemini-3-pro-preview-thinking":{"id":"gemini-3-pro-preview-thinking","name":"Gemini 3 Pro Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"grok-3-mini-beta":{"id":"grok-3-mini-beta","name":"Grok 3 Mini Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"input":131072,"output":131072}},"claude-opus-4-1-thinking":{"id":"claude-opus-4-1-thinking","name":"Claude 4.1 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-flash-nothinking":{"id":"gemini-2.5-flash-nothinking","name":"Gemini 2.5 Flash (No Thinking)","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"Doubao Seed 1.8","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.612,"output":6.12},"limit":{"context":128000,"input":128000,"output":8192}},"claude-3-7-sonnet-thinking:8192":{"id":"claude-3-7-sonnet-thinking:8192","name":"Claude 3.7 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"qvq-max":{"id":"qvq-max","name":"Qwen: QvQ Max","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-28","last_updated":"2025-03-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":5.3},"limit":{"context":128000,"input":128000,"output":8192}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"auto-model-basic":{"id":"auto-model-basic","name":"Auto model (Basic)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1","name":"Llama 3.3 70B Omega Directive Unslop v2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4},"limit":{"context":200000,"input":200000,"output":8192}},"glm-4-plus-0111":{"id":"glm-4-plus-0111","name":"GLM 4 Plus 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":9.996},"limit":{"context":128000,"input":128000,"output":4096}},"Llama-3.3-70B-Bigger-Body":{"id":"Llama-3.3-70B-Bigger-Body","name":"Llama 3.3 70B Bigger Body","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"KAT-Coder-Air-V1":{"id":"KAT-Coder-Air-V1","name":"KAT Coder Air V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-25","last_updated":"2025-10-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.53},"limit":{"context":200000,"input":200000,"output":131072}},"doubao-seed-1-6-flash-250615":{"id":"doubao-seed-1-6-flash-250615","name":"Doubao Seed 1.6 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0374,"output":0.374},"limit":{"context":256000,"input":256000,"output":16384}},"glm-4-air-0111":{"id":"glm-4-air-0111","name":"GLM 4 Air 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-11","last_updated":"2025-01-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":0.1394},"limit":{"context":128000,"input":128000,"output":4096}},"phi-4-mini-instruct":{"id":"phi-4-mini-instruct","name":"Phi 4 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"jamba-mini-1.6":{"id":"jamba-mini-1.6","name":"Jamba Mini 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0 1.5 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Cohere Command A (08/2025)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"input":256000,"output":8192}},"kimi-thinking-preview":{"id":"kimi-thinking-preview","name":"Kimi Thinking Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":31.46,"output":31.46},"limit":{"context":128000,"input":128000,"output":16384}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude 3.5 Sonnet Old","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek Chat 0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"claude-sonnet-4-thinking:1024":{"id":"claude-sonnet-4-thinking:1024","name":"Claude 4 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Incandescent-Malevolence":{"id":"Llama-3.3-70B-Incandescent-Malevolence","name":"Llama 3.3 70B Incandescent Malevolence","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1343,"output":0.3349},"limit":{"context":32000,"input":32000,"output":8192}},"Llama-3.3-70B-Forgotten-Safeword-3.6":{"id":"Llama-3.3-70B-Forgotten-Safeword-3.6","name":"Llama 3.3 70B Forgotten Safeword 3.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"step-2-mini":{"id":"step-2-mini","name":"Step-2 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.408},"limit":{"context":8000,"input":8000,"output":4096}},"Mistral-Nemo-12B-Instruct-2407":{"id":"Mistral-Nemo-12B-Instruct-2407","name":"Mistral Nemo 12B Instruct 2407","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":16384,"input":16384,"output":16384}},"Baichuan4-Turbo":{"id":"Baichuan4-Turbo","name":"Baichuan 4 Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.42,"output":2.42},"limit":{"context":128000,"input":128000,"output":32768}},"ernie-5.0-thinking-latest":{"id":"ernie-5.0-thinking-latest","name":"Ernie 5.0 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":32768}},"Gemma-3-27B-Glitter":{"id":"Gemma-3-27B-Glitter","name":"Gemma 3 27B Glitter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-thinking:32000":{"id":"claude-opus-4-thinking:32000","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"auto-model-premium":{"id":"auto-model-premium","name":"Auto model (Premium)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"gemini-2.0-flash-thinking-exp-01-21":{"id":"gemini-2.0-flash-thinking-exp-01-21","name":"Gemini 2.0 Flash Thinking 0121","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-21","last_updated":"2025-01-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":1.003},"limit":{"context":1000000,"input":1000000,"output":8192}},"claude-sonnet-4-thinking:32768":{"id":"claude-sonnet-4-thinking:32768","name":"Claude 4 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"claude-opus-4-1-thinking:32768":{"id":"claude-opus-4-1-thinking:32768","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"jamba-large":{"id":"jamba-large","name":"Jamba Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":128000,"input":128000,"output":65536}},"Llama-3.3-70B-MiraiFanfare":{"id":"Llama-3.3-70B-MiraiFanfare","name":"Llama 3.3 70b Mirai Fanfare","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":32768,"input":32768,"output":16384}},"venice-uncensored:web":{"id":"venice-uncensored:web","name":"Venice Uncensored Web","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-01","last_updated":"2024-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":80000,"input":80000,"output":16384}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2002,"output":6.001},"limit":{"context":256000,"input":256000,"output":32768}},"gemini-2.5-flash-lite-preview-09-2025-thinking":{"id":"gemini-2.5-flash-lite-preview-09-2025-thinking","name":"Gemini 2.5 Flash Lite Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"ernie-x1-32k-preview":{"id":"ernie-x1-32k-preview","name":"Ernie X1 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"glm-z1-airx":{"id":"glm-z1-airx","name":"GLM Z1 AirX","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"input":32000,"output":16384}},"ernie-x1.1-preview":{"id":"ernie-x1.1-preview","name":"ERNIE X1.1","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":64000,"input":64000,"output":8192}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"input":200000,"output":64000}},"exa-research":{"id":"exa-research","name":"Exa (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":8192,"input":8192,"output":8192}},"Llama-3.3-70B-Mokume-Gane-R1":{"id":"Llama-3.3-70B-Mokume-Gane-R1","name":"Llama 3.3 70B Mokume Gane R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-4.1v-thinking-flash":{"id":"glm-4.1v-thinking-flash","name":"GLM 4.1V Thinking Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"Llama-3.3-70B-GeneticLemonade-Unleashed-v3":{"id":"Llama-3.3-70B-GeneticLemonade-Unleashed-v3","name":"Llama 3.3 70B GeneticLemonade Unleashed v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Predatorial-Extasy":{"id":"Llama-3.3-70B-Predatorial-Extasy","name":"Llama 3.3 70B Predatorial Extasy","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek V3/Deepseek Chat","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"glm-4-airx":{"id":"glm-4-airx","name":"GLM-4 AirX","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":8000,"input":8000,"output":4096}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"doubao-seed-1-6-thinking-250615":{"id":"doubao-seed-1-6-thinking-250615","name":"Doubao Seed 1.6 Thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":2.04},"limit":{"context":256000,"input":256000,"output":16384}},"claude-3-7-sonnet-thinking":{"id":"claude-3-7-sonnet-thinking","name":"Claude 3.7 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"GLM-4.5-Air-Derestricted-Steam":{"id":"GLM-4.5-Air-Derestricted-Steam","name":"GLM 4.5 Air Derestricted Steam","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":220600,"input":220600,"output":65536}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.3328},"limit":{"context":1000000,"input":1000000,"output":131072}},"ernie-5.0-thinking-preview":{"id":"ernie-5.0-thinking-preview","name":"Ernie 5.0 Thinking Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"claude-opus-4-thinking:1024":{"id":"claude-opus-4-thinking:1024","name":"Claude 4 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Strawberrylemonade-v1.2":{"id":"Llama-3.3-70B-Strawberrylemonade-v1.2","name":"Llama 3.3 70B StrawberryLemonade v1.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Vulpecula-R1":{"id":"Llama-3.3-70B-Vulpecula-R1","name":"Llama 3.3 70B Vulpecula R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.6-Derestricted-v5":{"id":"GLM-4.6-Derestricted-v5","name":"GLM 4.6 Derestricted v5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":131072,"input":131072,"output":8192}},"Llama-3.3-70B-Cirrus-x1":{"id":"Llama-3.3-70B-Cirrus-x1","name":"Llama 3.3 70B Cirrus x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v2":{"id":"Llama-3.3-70B-ArliAI-RPMax-v2","name":"Llama 3.3 70B ArliAI RPMax v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-code-preview-latest":{"id":"doubao-seed-code-preview-latest","name":"Doubao Seed Code Preview","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":256000,"input":256000,"output":16384}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":128000}},"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1":{"id":"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1","name":"Llama 3.3+ 70B New Dawn v1.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen3-vl-235b-a22b-thinking":{"id":"qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":6},"limit":{"context":32768,"input":32768,"output":32768}},"claude-sonnet-4-thinking":{"id":"claude-sonnet-4-thinking","name":"Claude 4 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Qwen2.5-32B-EVA-v0.2":{"id":"Qwen2.5-32B-EVA-v0.2","name":"Qwen 2.5 32b EVA","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":24576,"input":24576,"output":8192}},"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0 1.5 LG","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Cu-Mai-R1":{"id":"Llama-3.3-70B-Cu-Mai-R1","name":"Llama 3.3 70B Cu Mai R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"hidream":{"id":"hidream","name":"Hidream","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"auto-model":{"id":"auto-model","name":"Auto model","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1000000,"input":1000000,"output":1000000}},"jamba-mini-1.7":{"id":"jamba-mini-1.7","name":"Jamba Mini 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"doubao-seed-2-0-pro-260215":{"id":"doubao-seed-2-0-pro-260215","name":"Doubao Seed 2.0 Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.876},"limit":{"context":256000,"input":256000,"output":128000}},"Llama-3.3-70B-Nova":{"id":"Llama-3.3-70B-Nova","name":"Llama 3.3 70B Nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-preview-09-2025-thinking":{"id":"gemini-2.5-flash-preview-09-2025-thinking","name":"Gemini 2.5 Flash Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Sapphira-0.2":{"id":"Llama-3.3-70B-Sapphira-0.2","name":"Llama 3.3 70B Sapphira 0.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"auto-model-standard":{"id":"auto-model-standard","name":"Auto model (Standard)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"grok-3-mini-fast-beta":{"id":"grok-3-mini-fast-beta","name":"Grok 3 Mini Fast Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4},"limit":{"context":131072,"input":131072,"output":131072}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3995,"output":1.2002},"limit":{"context":995904,"input":995904,"output":32768}},"Meta-Llama-3-1-8B-Instruct-FP8":{"id":"Meta-Llama-3-1-8B-Instruct-FP8","name":"Llama 3.1 8B (decentralized)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"input":128000,"output":16384}},"step-3":{"id":"step-3","name":"Step-3","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2499,"output":0.6494},"limit":{"context":65536,"input":65536,"output":8192}},"Gemma-3-27B-it":{"id":"Gemma-3-27B-it","name":"Gemma 3 27B IT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"universal-summarizer":{"id":"universal-summarizer","name":"Universal Summarizer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-05-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":30},"limit":{"context":32768,"input":32768,"output":32768}},"deepclaude":{"id":"deepclaude","name":"DeepClaude","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"brave-pro":{"id":"brave-pro","name":"Brave (Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"claude-3-7-sonnet-reasoner":{"id":"claude-3-7-sonnet-reasoner","name":"Claude 3.7 Sonnet Reasoner","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-29","last_updated":"2025-03-29","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":1000000,"input":1000000,"output":8192}},"claude-opus-4-thinking:8192":{"id":"claude-opus-4-thinking:8192","name":"Claude 4 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-opus-4-thinking:32768":{"id":"claude-opus-4-thinking:32768","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"glm-zero-preview":{"id":"glm-zero-preview","name":"GLM Zero Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.802,"output":1.802},"limit":{"context":8000,"input":8000,"output":4096}},"azure-gpt-4o-mini":{"id":"azure-gpt-4o-mini","name":"Azure gpt-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"deepseek-math-v2":{"id":"deepseek-math-v2","name":"DeepSeek Math V2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"input":128000,"output":65536}},"glm-4-long":{"id":"glm-4-long","name":"GLM-4 Long","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":4096}},"GLM-4.5-Air-Derestricted-Iceblink":{"id":"GLM-4.5-Air-Derestricted-Iceblink","name":"GLM 4.5 Air Derestricted Iceblink","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"claude-opus-4-1-thinking:1024":{"id":"claude-opus-4-1-thinking:1024","name":"Claude 4.1 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"qwen3-vl-235b-a22b-instruct-original":{"id":"qwen3-vl-235b-a22b-instruct-original","name":"Qwen3 VL 235B A22B Instruct Original","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":32768,"input":32768,"output":32768}},"Llama-3.3+(3.1v3.3)-70B-Hanami-x1":{"id":"Llama-3.3+(3.1v3.3)-70B-Hanami-x1","name":"Llama 3.3+ 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-1-thinking:8192":{"id":"claude-opus-4-1-thinking:8192","name":"Claude 4.1 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Damascus-R1":{"id":"Llama-3.3-70B-Damascus-R1","name":"Damascus R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-ArliAI-RPMax-v3":{"id":"Gemma-3-27B-ArliAI-RPMax-v3","name":"Gemma 3 27B RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-preview-05-20:thinking":{"id":"gemini-2.5-flash-preview-05-20:thinking","name":"Gemini 2.5 Flash 0520 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048000,"input":1048000,"output":65536}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude 4 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"claude-opus-4-1-thinking:32000":{"id":"claude-opus-4-1-thinking:32000","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"sarvan-medium":{"id":"sarvan-medium","name":"Sarvam Medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3-70B-Anthrobomination":{"id":"Llama-3.3-70B-Anthrobomination","name":"Llama 3.3 70B Anthrobomination","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":16384}},"Baichuan4-Air":{"id":"Baichuan4-Air","name":"Baichuan 4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.157,"output":0.157},"limit":{"context":32768,"input":32768,"output":32768}},"jamba-mini":{"id":"jamba-mini","name":"Jamba Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"KAT-Coder-Exp-72B-1010":{"id":"KAT-Coder-Exp-72B-1010","name":"KAT Coder Exp 72B 1010","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"gemini-2.5-flash-preview-04-17:thinking":{"id":"gemini-2.5-flash-preview-04-17:thinking","name":"Gemini 2.5 Flash Preview Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"brave-research":{"id":"brave-research","name":"Brave (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":16384,"input":16384,"output":16384}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude 4.1 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Argunaut-1-SFT":{"id":"Llama-3.3-70B-Argunaut-1-SFT","name":"Llama 3.3 70B Argunaut 1 SFT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-5-20251101:thinking":{"id":"claude-opus-4-5-20251101:thinking","name":"Claude 4.5 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"grok-3-beta":{"id":"grok-3-beta","name":"Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":131072,"input":131072,"output":131072}},"azure-o3-mini":{"id":"azure-o3-mini","name":"Azure o3-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.088,"output":4.3996},"limit":{"context":200000,"input":200000,"output":65536}},"QwQ-32B-ArliAI-RpR-v1":{"id":"QwQ-32B-ArliAI-RpR-v1","name":"QwQ 32b Arli V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"input":32768,"output":32768}},"Llama-3.3-70B-Forgotten-Abomination-v5.0":{"id":"Llama-3.3-70B-Forgotten-Abomination-v5.0","name":"Llama 3.3 70B Forgotten Abomination v5.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-2-0-code-preview-260215":{"id":"doubao-seed-2-0-code-preview-260215","name":"Doubao Seed 2.0 Code Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.893},"limit":{"context":256000,"input":256000,"output":128000}},"Llama-3.3-70B-Mhnnn-x1":{"id":"Llama-3.3-70B-Mhnnn-x1","name":"Llama 3.3 70B Mhnnn x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"hunyuan-t1-latest":{"id":"hunyuan-t1-latest","name":"Hunyuan T1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-22","last_updated":"2025-03-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.66},"limit":{"context":256000,"input":256000,"output":16384}},"Gemma-3-27B-CardProjector-v4":{"id":"Gemma-3-27B-CardProjector-v4","name":"Gemma 3 27B CardProjector v4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-4-flash":{"id":"glm-4-flash","name":"GLM-4 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":4096}},"learnlm-1.5-pro-experimental":{"id":"learnlm-1.5-pro-experimental","name":"Gemini LearnLM Experimental","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.502,"output":10.506},"limit":{"context":32767,"input":32767,"output":8192}},"Llama-3.3-70B-Dark-Ages-v0.1":{"id":"Llama-3.3-70B-Dark-Ages-v0.1","name":"Llama 3.3 70B Dark Ages v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"yi-large":{"id":"yi-large","name":"Yi Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.196,"output":3.196},"limit":{"context":32000,"input":32000,"output":4096}},"exa-answer":{"id":"exa-answer","name":"Exa (Answer)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":4096,"input":4096,"output":4096}},"gemini-2.5-pro-exp-03-25":{"id":"gemini-2.5-pro-exp-03-25","name":"Gemini 2.5 Pro Experimental 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"LLM360/K2-Think":{"id":"LLM360/K2-Think","name":"K2-Think","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":32768}},"abacusai/Dracarys-72B-Instruct":{"id":"abacusai/Dracarys-72B-Instruct","name":"Llama 3.1 70B Dracarys 2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B":{"id":"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B","name":"Nemotron Tenyxchat Storybreaker 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B":{"id":"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B","name":"Llama 3.05 Storybreaker Ministral 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"Olmo 3 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.44999999999999996},"limit":{"context":128000,"input":128000,"output":8192}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"Molmo 2 8B","family":"allenai","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"input":36864,"output":36864}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"Olmo 3.1 32B Instruct","family":"allenai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"input":65536,"output":8192}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"Olmo 3.1 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"input":65536,"output":8192}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"DeepSeek V3.1 Nex N1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":128000,"input":128000,"output":8192}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-5:thinking":{"id":"zai-org/glm-5:thinking","name":"GLM 5 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF":{"id":"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF","name":"Nvidia Nemotron 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.357,"output":0.408},"limit":{"context":16384,"input":16384,"output":8192}},"nvidia/Llama-3.3-Nemotron-Super-49B-v1":{"id":"nvidia/Llama-3.3-Nemotron-Super-49B-v1","name":"Nvidia Nemotron Super 49B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1","name":"Nvidia Nemotron Ultra 253B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.8},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nvidia Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":256000,"input":256000,"output":262144}},"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5":{"id":"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5","name":"Nvidia Nemotron Super 49B v1.5","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond":{"id":"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond","name":"MS3.2 24B Magnum Diamond","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":32768}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.045000000000000005,"output":0.15},"limit":{"context":131072,"input":131072,"output":8192}},"arcee-ai/trinity-large":{"id":"arcee-ai/trinity-large","name":"Trinity Large","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131072,"input":131072,"output":8192}},"meganova-ai/manta-flash-1.0":{"id":"meganova-ai/manta-flash-1.0","name":"Manta Flash 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":16384,"input":16384,"output":16384}},"meganova-ai/manta-pro-1.0":{"id":"meganova-ai/manta-pro-1.0","name":"Manta Pro 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.5},"limit":{"context":32768,"input":32768,"output":32768}},"meganova-ai/manta-mini-1.0":{"id":"meganova-ai/manta-mini-1.0","name":"Manta Mini 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":8192,"input":8192,"output":8192}},"xiaomi/mimo-v2-flash-original":{"id":"xiaomi/mimo-v2-flash-original","name":"MiMo V2 Flash Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-thinking":{"id":"xiaomi/mimo-v2-flash-thinking","name":"MiMo V2 Flash (Thinking)","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-thinking-original":{"id":"xiaomi/mimo-v2-flash-thinking-original","name":"MiMo V2 Flash (Thinking) Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"microsoft/MAI-DS-R1-FP8":{"id":"microsoft/MAI-DS-R1-FP8","name":"Microsoft DeepSeek R1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":8192}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":65536,"input":65536,"output":8192}},"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5":{"id":"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5","name":"Llama 3 70B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":8192,"input":8192,"output":8192}},"featherless-ai/Qwerky-72B":{"id":"featherless-ai/Qwerky-72B","name":"Qwerky 72B","family":"qwerky","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32000,"input":32000,"output":8192}},"TEE/glm-5":{"id":"TEE/glm-5","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":3.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/deepseek-v3.1":{"id":"TEE/deepseek-v3.1","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":164000,"input":164000,"output":8192}},"TEE/glm-4.7-flash":{"id":"TEE/glm-4.7-flash","name":"GLM 4.7 Flash TEE","family":"glm-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/qwen3-coder":{"id":"TEE/qwen3-coder","name":"Qwen3 Coder 480B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":128000,"input":128000,"output":32768}},"TEE/glm-4.6":{"id":"TEE/glm-4.6","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":2},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/deepseek-r1-0528":{"id":"TEE/deepseek-r1-0528","name":"DeepSeek R1 0528 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65536}},"TEE/minimax-m2.1":{"id":"TEE/minimax-m2.1","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":200000,"input":200000,"output":131072}},"TEE/qwen3.5-397b-a17b":{"id":"TEE/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-28","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"TEE/gpt-oss-120b":{"id":"TEE/gpt-oss-120b","name":"GPT-OSS 120B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"TEE/kimi-k2.5":{"id":"TEE/kimi-k2.5","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/qwen3-30b-a3b-instruct-2507":{"id":"TEE/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.44999999999999996},"limit":{"context":262000,"input":262000,"output":32768}},"TEE/kimi-k2.5-thinking":{"id":"TEE/kimi-k2.5-thinking","name":"Kimi K2.5 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/qwen2.5-vl-72b-instruct":{"id":"TEE/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B TEE","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":65536,"input":65536,"output":8192}},"TEE/deepseek-v3.2":{"id":"TEE/deepseek-v3.2","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1},"limit":{"context":164000,"input":164000,"output":65536}},"TEE/glm-4.7":{"id":"TEE/glm-4.7","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.3},"limit":{"context":131000,"input":131000,"output":65535}},"TEE/kimi-k2-thinking":{"id":"TEE/kimi-k2-thinking","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/llama3-3-70b":{"id":"TEE/llama3-3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"TEE/gemma-3-27b-it":{"id":"TEE/gemma-3-27b-it","name":"Gemma 3 27B TEE","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"TEE/gpt-oss-20b":{"id":"TEE/gpt-oss-20b","name":"GPT-OSS 20B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon Nova Micro 1.0","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0357,"output":0.1394},"limit":{"context":128000,"input":128000,"output":5120}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon Nova Lite 1.0","family":"nova-lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0595,"output":0.238},"limit":{"context":300000,"input":300000,"output":5120}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5099999999999999,"output":4.25},"limit":{"context":1000000,"input":1000000,"output":65535}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":3.1959999999999997},"limit":{"context":300000,"input":300000,"output":32000}},"anthracite-org/magnum-v2-72b":{"id":"anthracite-org/magnum-v2-72b","name":"Magnum V2 72B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"RNJ-1 Instruct 8B","family":"rnj","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-13","last_updated":"2025-12-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-4-405b":{"id":"NousResearch 2/hermes-4-405b","name":"Hermes 4 Large","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-3-llama-3.1-70b":{"id":"NousResearch 2/hermes-3-llama-3.1-70b","name":"Hermes 3 70B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.408},"limit":{"context":65536,"input":65536,"output":8192}},"NousResearch 2/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch 2/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes-3 Mistral 24B (Preview)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":32768}},"NousResearch 2/hermes-4-70b":{"id":"NousResearch 2/hermes-4-70b","name":"Hermes 4 Medium","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-4-405b:thinking":{"id":"NousResearch 2/hermes-4-405b:thinking","name":"Hermes 4 Large (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/Hermes-4-70B:thinking":{"id":"NousResearch 2/Hermes-4-70B:thinking","name":"Hermes 4 (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-17","last_updated":"2025-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"pamanseau/OpenReasoning-Nemotron-32B":{"id":"pamanseau/OpenReasoning-Nemotron-32B","name":"OpenReasoning Nemotron 32B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":32768,"input":32768,"output":65536}},"MiniMaxAI/MiniMax-M1-80k":{"id":"MiniMaxAI/MiniMax-M1-80k","name":"MiniMax M1 80K","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6052,"output":2.4225000000000003},"limit":{"context":1000000,"input":1000000,"output":131072}},"deepseek-ai/deepseek-v3.2-exp-thinking":{"id":"deepseek-ai/deepseek-v3.2-exp-thinking","name":"DeepSeek V3.2 Exp Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":163840}},"deepseek-ai/DeepSeek-V3.1:thinking":{"id":"deepseek-ai/DeepSeek-V3.1:thinking","name":"DeepSeek V3.1 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/deepseek-v3.2-exp":{"id":"deepseek-ai/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus:thinking":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus:thinking","name":"DeepSeek V3.1 Terminus (Thinking)","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"raifle/sorcererlm-8x22b":{"id":"raifle/sorcererlm-8x22b","name":"SorcererLM 8x22B","family":"mixtral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.505,"output":4.505},"limit":{"context":16000,"input":16000,"output":8192}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"Aion 1.0 mini (DeepSeek)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.394},"limit":{"context":131072,"input":131072,"output":8192}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"Llama 3.1 8b (uncensored)","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":32768,"input":32768,"output":16384}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"Aion 1.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.995,"output":7.99},"limit":{"context":65536,"input":65536,"output":8192}},"mlabonne/NeuralDaredevil-8B-abliterated":{"id":"mlabonne/NeuralDaredevil-8B-abliterated","name":"Neural Daredevil 8B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44,"output":0.44},"limit":{"context":8192,"input":8192,"output":8192}},"unsloth/gemma-3-1b-it":{"id":"unsloth/gemma-3-1b-it","name":"Gemma 3 1B IT","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.272,"output":0.272},"limit":{"context":128000,"input":128000,"output":131072}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"Gemma 3 4B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"Gemma 3 27B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2992,"output":0.2992},"limit":{"context":128000,"input":128000,"output":96000}},"meituan-longcat/LongCat-Flash-Chat-FP8":{"id":"meituan-longcat/LongCat-Flash-Chat-FP8","name":"LongCat Flash","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-31","last_updated":"2025-08-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.7},"limit":{"context":128000,"input":128000,"output":32768}},"cognitivecomputations/dolphin-2.9.2-qwen2-72b":{"id":"cognitivecomputations/dolphin-2.9.2-qwen2-72b","name":"Dolphin 72b","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":8192,"input":8192,"output":4096}},"Infermatic/MN-12B-Inferor-v0.0":{"id":"Infermatic/MN-12B-Inferor-v0.0","name":"Mistral Nemo Inferor 12B","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"Hunyuan MT 7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":20},"limit":{"context":8192,"input":8192,"output":8192}},"Gryphe/MythoMax-L2-13b":{"id":"Gryphe/MythoMax-L2-13b","name":"MythoMax 13B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":4000,"input":4000,"output":4096}},"CrucibleLab/L3.3-70B-Loki-V2.0":{"id":"CrucibleLab/L3.3-70B-Loki-V2.0","name":"L3.3 70B Loki v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"soob3123/Veiled-Calla-12B":{"id":"soob3123/Veiled-Calla-12B","name":"Veiled Calla 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"soob3123/amoral-gemma3-27B-v2":{"id":"soob3123/amoral-gemma3-27B-v2","name":"Amoral Gemma3 27B v2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-23","last_updated":"2025-05-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"soob3123/GrayLine-Qwen3-8B":{"id":"soob3123/GrayLine-Qwen3-8B","name":"Grayline Qwen3 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":16384,"input":16384,"output":32768}},"NeverSleep/Llama-3-Lumimaid-70B-v0.1":{"id":"NeverSleep/Llama-3-Lumimaid-70B-v0.1","name":"Lumimaid 70b","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":8192}},"NeverSleep/Lumimaid-v0.2-70B":{"id":"NeverSleep/Lumimaid-v0.2-70B","name":"Lumimaid v0.2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1.5},"limit":{"context":16384,"input":16384,"output":8192}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"DeepSeek Prover v2 671B","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":160000,"input":160000,"output":16384}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-v3.2:thinking":{"id":"deepseek/deepseek-v3.2:thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"MarinaraSpaghetti/NemoMix-Unleashed-12B":{"id":"MarinaraSpaghetti/NemoMix-Unleashed-12B","name":"NemoMix 12B Unleashed","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/kimi-k2.5:thinking":{"id":"moonshotai/kimi-k2.5:thinking","name":"Kimi K2.5 Thinking","family":"kimi-thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"moonshotai/kimi-k2-thinking-turbo-original":{"id":"moonshotai/kimi-k2-thinking-turbo-original","name":"Kimi K2 Thinking Turbo Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8},"limit":{"context":256000,"input":256000,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2-instruct-0711":{"id":"moonshotai/kimi-k2-instruct-0711","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":8192}},"moonshotai/Kimi-Dev-72B":{"id":"moonshotai/Kimi-Dev-72B","name":"Kimi Dev 72B","family":"kimi","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2-thinking-original":{"id":"moonshotai/kimi-k2-thinking-original","name":"Kimi K2 Thinking Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"input":256000,"output":16384}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B","family":"ernie","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.5599999999999999},"limit":{"context":32768,"input":32768,"output":16384}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"ERNIE 4.5 300B","family":"ernie","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.15},"limit":{"context":131072,"input":131072,"output":16384}},"google/gemini-flash-1.5":{"id":"google/gemini-flash-1.5","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":2000000,"input":2000000,"output":8192}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"google/gemini-3-flash-preview-thinking":{"id":"google/gemini-3-flash-preview-thinking","name":"Gemini 3 Flash Thinking","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"z-ai/glm-4.6:thinking":{"id":"z-ai/glm-4.6:thinking","name":"GLM 4.6 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v:thinking":{"id":"z-ai/glm-4.5v:thinking","name":"GLM 4.5V Thinking","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"stepfun-ai/step-3.5-flash:thinking":{"id":"stepfun-ai/step-3.5-flash:thinking","name":"Step 3.5 Flash Thinking","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Cogito v2.1 671B MoE","family":"cogito","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"input":128000,"output":16384}},"deepcogito/cogito-v1-preview-qwen-32B":{"id":"deepcogito/cogito-v1-preview-qwen-32B","name":"Cogito v1 Preview Qwen 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.7999999999999998,"output":1.7999999999999998},"limit":{"context":128000,"input":128000,"output":32768}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.2069999999999999},"limit":{"context":6144,"input":6144,"output":4096}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"inflatebot/MN-12B-Mag-Mell-R1":{"id":"inflatebot/MN-12B-Mag-Mell-R1","name":"Mag Mell R1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16":{"id":"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16","name":"Llama 3.1 70B Celeste v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"x-ai/grok-4-fast:thinking":{"id":"x-ai/grok-4-fast:thinking","name":"Grok 4 Fast Thinking","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"input":256000,"output":131072}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4-07-09":{"id":"x-ai/grok-4-07-09","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"input":256000,"output":131072}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Llama 4 Scout","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.085,"output":0.46},"limit":{"context":328000,"input":328000,"output":65536}},"meta-llama/llama-3.2-90b-vision-instruct":{"id":"meta-llama/llama-3.2-90b-vision-instruct","name":"Llama 3.2 Medium","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9009999999999999,"output":0.9009999999999999},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.23},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Llama 3.2 3b Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0306,"output":0.0493},"limit":{"context":131072,"input":131072,"output":8192}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Llama 4 Maverick","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18000000000000002,"output":0.8},"limit":{"context":1048576,"input":1048576,"output":65536}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":131072,"input":131072,"output":16384}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":128000,"input":128000,"output":8192}},"tngtech/tng-r1t-chimera":{"id":"tngtech/tng-r1t-chimera","name":"TNG R1T Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":65536}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral Saba","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.595},"limit":{"context":32000,"input":32000,"output":32768}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":8192}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.8999999999999999},"limit":{"context":256000,"input":256000,"output":32768}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":262144,"input":262144,"output":256000}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral Small Creative","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Ministral 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/mixtral-8x22b-instruct-v0.1":{"id":"mistralai/mixtral-8x22b-instruct-v0.1","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8999999999999999,"output":0.8999999999999999},"limit":{"context":65536,"input":65536,"output":32768}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Ministral 14B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Mistral Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.060000000000000005},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/mistral-tiny":{"id":"mistralai/mistral-tiny","name":"Mistral Tiny","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-12-11","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.25499999999999995},"limit":{"context":32000,"input":32000,"output":8192}},"mistralai/mistral-7b-instruct":{"id":"mistralai/mistral-7b-instruct","name":"Mistral 7B Instruct","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":262144,"input":262144,"output":65536}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":6.001},"limit":{"context":128000,"input":128000,"output":256000}},"mistralai/mixtral-8x7b-instruct-v0.1":{"id":"mistralai/mixtral-8x7b-instruct-v0.1","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"Tongyi-Zhiwen/QwenLong-L1-32B":{"id":"Tongyi-Zhiwen/QwenLong-L1-32B","name":"QwenLong L1 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.6},"limit":{"context":128000,"input":128000,"output":40960}},"ReadyArt/The-Omega-Abomination-L-70B-v1.0":{"id":"ReadyArt/The-Omega-Abomination-L-70B-v1.0","name":"The Omega Abomination V1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.95},"limit":{"context":16384,"input":16384,"output":16384}},"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0":{"id":"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0","name":"Omega Directive 24B Unslop v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":16384,"input":16384,"output":32768}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-2025-11-13":{"id":"openai/gpt-5.1-2025-11-13","name":"GPT-5.1 (2025-11-13)","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"input":1000000,"output":32768}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":256000,"input":256000,"output":32768}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT 5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-chat-latest":{"id":"openai/gpt-5-chat-latest","name":"GPT 5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT-4o mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.088,"output":0.35},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":20},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT 5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI o3 Deep Research","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT 5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT 5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI o4-mini Deep Research","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT 5.1 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"GPT-4 Turbo Preview","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.004999999999995},"limit":{"context":128000,"input":128000,"output":4096}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT 4.1 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2022-11-30","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":16385,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT 5.1 Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT 5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/o3-mini-low":{"id":"openai/o3-mini-low","name":"OpenAI o3-mini (Low)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"input":128000,"output":4096}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT 5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT 4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":128000,"input":128000,"output":32768}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI o1 Pro","family":"o-pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT 5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT 4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.993999999999998},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT 5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-pro-2025-06-10":{"id":"openai/o3-pro-2025-06-10","name":"OpenAI o3-pro (2025-06-10)","family":"o-pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-chat-latest":{"id":"openai/gpt-5.1-chat-latest","name":"GPT 5.1 Chat (Latest)","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":16384}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT 5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI o3-mini (High)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.64,"output":2.588},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI o4-mini high","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"GPT-4o Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.47,"output":5.88},"limit":{"context":128000,"input":128000,"output":16384}},"VongolaChouko/Starcannon-Unleashed-12B-v1.0":{"id":"VongolaChouko/Starcannon-Unleashed-12B-v1.0","name":"Mistral Nemo Starcannon 12b v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.856,"output":14.246},"limit":{"context":128000,"input":128000,"output":4096}},"cohere/command-r":{"id":"cohere/command-r","name":"Cohere: Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-11","last_updated":"2024-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.476,"output":1.428},"limit":{"context":128000,"input":128000,"output":4096}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"GLM 4 32B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"GLM 4 9B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"GLM Z1 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"GLM Z1 9B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-Z1-Rumination-32B-0414":{"id":"THUDM/GLM-Z1-Rumination-32B-0414","name":"GLM Z1 Rumination 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":65536}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax 01","family":"minimax","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.1219999999999999},"limit":{"context":1000192,"input":1000192,"output":16384}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":200000,"input":200000,"output":131072}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax M2-her","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-24","last_updated":"2026-01-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.30200000000000005,"output":1.2069999999999999},"limit":{"context":65532,"input":65532,"output":2048}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24b Instruct","family":"chutesai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"baseten/Kimi-K2-Instruct-FP4":{"id":"baseten/Kimi-K2-Instruct-FP4","name":"Kimi K2 0711 Instruct FP4","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":131072}},"GalrionSoftworks/MN-LooseCannon-12B-v1":{"id":"GalrionSoftworks/MN-LooseCannon-12B-v1","name":"MN-LooseCannon-12B-v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B":{"id":"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B","name":"Tongyi DeepResearch 30B A3B","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.24000000000000002},"limit":{"context":128000,"input":128000,"output":65536}},"Steelskull/L3.3-Electra-R1-70b":{"id":"Steelskull/L3.3-Electra-R1-70b","name":"Steelskull Electra R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evalebis-70b":{"id":"Steelskull/L3.3-MS-Evalebis-70b","name":"MS Evalebis 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Cu-Mai-R1-70b":{"id":"Steelskull/L3.3-Cu-Mai-R1-70b","name":"Llama 3.3 70B Cu Mai","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Nevoria-R1-70b":{"id":"Steelskull/L3.3-Nevoria-R1-70b","name":"Steelskull Nevoria R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Nevoria-70b":{"id":"Steelskull/L3.3-MS-Nevoria-70b","name":"Steelskull Nevoria 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evayale-70B":{"id":"Steelskull/L3.3-MS-Evayale-70B","name":"Evayale 70b ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Salesforce/Llama-xLAM-2-70b-fc-r":{"id":"Salesforce/Llama-xLAM-2-70b-fc-r","name":"Llama-xLAM-2 70B fc-r","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":128000,"input":128000,"output":16384}},"LatitudeGames/Wayfarer-Large-70B-Llama-3.3":{"id":"LatitudeGames/Wayfarer-Large-70B-Llama-3.3","name":"Llama 3.3 70B Wayfarer","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.700000007,"output":0.700000007},"limit":{"context":16384,"input":16384,"output":16384}},"TheDrummer 2/Cydonia-24B-v4.3":{"id":"TheDrummer 2/Cydonia-24B-v4.3","name":"The Drummer Cydonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Anubis-70B-v1":{"id":"TheDrummer 2/Anubis-70B-v1","name":"Anubis 70B v1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":65536,"input":65536,"output":16384}},"TheDrummer 2/Cydonia-24B-v4":{"id":"TheDrummer 2/Cydonia-24B-v4","name":"The Drummer Cydonia 24B v4","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2414},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/Magidonia-24B-v4.3":{"id":"TheDrummer 2/Magidonia-24B-v4.3","name":"The Drummer Magidonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Anubis-70B-v1.1":{"id":"TheDrummer 2/Anubis-70B-v1.1","name":"Anubis 70B v1.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":131072,"input":131072,"output":16384}},"TheDrummer 2/Rocinante-12B-v1.1":{"id":"TheDrummer 2/Rocinante-12B-v1.1","name":"Rocinante 12b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.595},"limit":{"context":16384,"input":16384,"output":8192}},"TheDrummer 2/Cydonia-24B-v2":{"id":"TheDrummer 2/Cydonia-24B-v2","name":"The Drummer Cydonia 24B v2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/skyfall-36b-v2":{"id":"TheDrummer 2/skyfall-36b-v2","name":"TheDrummer Skyfall 36B V2","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":64000,"input":64000,"output":32768}},"TheDrummer 2/UnslopNemo-12B-v4.1":{"id":"TheDrummer 2/UnslopNemo-12B-v4.1","name":"UnslopNemo 12b v4","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"TheDrummer 2/Cydonia-24B-v4.1":{"id":"TheDrummer 2/Cydonia-24B-v4.1","name":"The Drummer Cydonia 24B v4.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"shisa-ai/shisa-v2.1-llama3.3-70b":{"id":"shisa-ai/shisa-v2.1-llama3.3-70b","name":"Shisa V2.1 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32768,"input":32768,"output":4096}},"shisa-ai/shisa-v2-llama3.3-70b":{"id":"shisa-ai/shisa-v2-llama3.3-70b","name":"Shisa V2 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":128000,"input":128000,"output":16384}},"anthropic/claude-sonnet-4.6:thinking":{"id":"anthropic/claude-sonnet-4.6:thinking","name":"Claude Sonnet 4.6 Thinking","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:low":{"id":"anthropic/claude-opus-4.6:thinking:low","name":"Claude 4.6 Opus Thinking Low","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking":{"id":"anthropic/claude-opus-4.6:thinking","name":"Claude 4.6 Opus Thinking","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:medium":{"id":"anthropic/claude-opus-4.6:thinking:medium","name":"Claude 4.6 Opus Thinking Medium","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:max":{"id":"anthropic/claude-opus-4.6:thinking:max","name":"Claude 4.6 Opus Thinking Max","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude 4.6 Opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"miromind-ai/mirothinker-v1.5-235b":{"id":"miromind-ai/mirothinker-v1.5-235b","name":"MiroThinker v1.5 235B","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":32768,"input":32768,"output":4000}},"Sao10K/L3.1-70B-Hanami-x1":{"id":"Sao10K/L3.1-70B-Hanami-x1","name":"Llama 3.1 70B Hanami","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Sao10K/L3.3-70B-Euryale-v2.3":{"id":"Sao10K/L3.3-70B-Euryale-v2.3","name":"Llama 3.3 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3.1-70B-Euryale-v2.2":{"id":"Sao10K/L3.1-70B-Euryale-v2.2","name":"Llama 3.1 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.357},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3-8B-Stheno-v3.2":{"id":"Sao10K/L3-8B-Stheno-v3.2","name":"Sao10K Stheno 8b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated","name":"DeepSeek R1 Llama 70B Abliterated","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/Qwen2.5-32B-Instruct-abliterated":{"id":"huihui-ai/Qwen2.5-32B-Instruct-abliterated","name":"Qwen 2.5 32B Abliterated","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-06","last_updated":"2025-01-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"input":32768,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated","name":"DeepSeek R1 Qwen Abliterated","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.4},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/Llama-3.3-70B-Instruct-abliterated":{"id":"huihui-ai/Llama-3.3-70B-Instruct-abliterated","name":"Llama 3.3 70B Instruct abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated":{"id":"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated","name":"Nemotron 3.1 70B abliterated","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection 3 Productivity","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection 3 Pi","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"dmind/dmind-1-mini":{"id":"dmind/dmind-1-mini","name":"DMind-1-Mini","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":32768,"input":32768,"output":8192}},"dmind/dmind-1":{"id":"dmind/dmind-1","name":"DMind-1","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.6},"limit":{"context":32768,"input":32768,"output":8192}},"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2","name":"EVA-Qwen2.5-72B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","name":"EVA Llama 3.33 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","name":"EVA-LLaMA-3.33-70B-v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2","name":"EVA-Qwen2.5-32B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}}}},"cerebras":{"id":"cerebras","env":["CEREBRAS_API_KEY"],"npm":"@ai-sdk/cerebras","name":"Cerebras","doc":"https://inference-docs.cerebras.ai/models/overview","models":{"qwen-3-235b-a22b-instruct-2507":{"id":"qwen-3-235b-a22b-instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":131000,"output":32000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.69},"limit":{"context":131072,"output":32768}},"llama3.1-8b":{"id":"llama3.1-8b","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":32000,"output":8000}},"zai-glm-4.7":{"id":"zai-glm-4.7","name":"Z.AI GLM-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.25,"output":2.75,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":40000}}}},"azure":{"id":"azure","env":["AZURE_RESOURCE_NAME","AZURE_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.3-chat":{"id":"gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}}}},"cortecs":{"id":"cortecs","env":["CORTECS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cortecs.ai/v1","name":"Cortecs","doc":"https://api.cortecs.ai/v1/models","models":{"kimi-k2-instruct":{"id":"kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-07-11","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":2.646},"limit":{"context":131000,"output":131000}},"claude-opus4-6":{"id":"claude-opus4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":1000000,"output":1000000}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.164,"output":1.311},"limit":{"context":128000,"output":128000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.441,"output":1.984},"limit":{"context":262000,"output":262000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.34},"limit":{"context":131072,"output":131072}},"claude-4-6-sonnet":{"id":"claude-4-6-sonnet","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.59,"output":17.92},"limit":{"context":1000000,"output":1000000}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":2.46},"limit":{"context":131072,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.53},"limit":{"context":203000,"output":203000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.099,"output":0.33},"limit":{"context":16384,"output":16384}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.34},"limit":{"context":196000,"output":196000}},"devstral-small-2512":{"id":"devstral-small-2512","name":"Devstral Small 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"intellect-3":{"id":"intellect-3","name":"INTELLECT 3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.219,"output":1.202},"limit":{"context":128000,"output":128000}},"nova-pro-v1":{"id":"nova-pro-v1","name":"Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.016,"output":4.061},"limit":{"context":300000,"output":5000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT Oss 120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.76},"limit":{"context":256000,"output":256000}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":1.654},"limit":{"context":128000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.354,"output":9.417},"limit":{"context":1047576,"output":32768}},"llama-3.1-405b-instruct":{"id":"llama-3.1-405b-instruct","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"glm-4.7":{"id":"glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.23},"limit":{"context":198000,"output":198000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.656,"output":2.731},"limit":{"context":262000,"output":262000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.09,"output":5.43},"limit":{"context":200000,"output":200000}},"minimax-m2":{"id":"minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-11","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.57},"limit":{"context":400000,"output":400000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":1.18},"limit":{"context":196608,"output":196608}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.307,"output":16.536},"limit":{"context":200000,"output":64000}},"claude-opus4-5":{"id":"claude-opus4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":200000,"output":200000}},"claude-4-5-sonnet":{"id":"claude-4-5-sonnet","name":"Claude 4.5 Sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.259,"output":16.296},"limit":{"context":200000,"output":200000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.654,"output":11.024},"limit":{"context":1048576,"output":65535}}}},"xai":{"id":"xai","env":["XAI_API_KEY"],"npm":"@ai-sdk/xai","name":"xAI","doc":"https://docs.x.ai/docs/models","models":{"grok-2-1212":{"id":"grok-2-1212","name":"Grok 2 (1212)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-12-12","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-4.20-multi-agent-0309":{"id":"grok-4.20-multi-agent-0309","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-2":{"id":"grok-2","name":"Grok 2","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-3-fast-latest":{"id":"grok-3-fast-latest","name":"Grok 3 Fast Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"grok-2-vision":{"id":"grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"grok-2-vision-1212":{"id":"grok-2-vision-1212","name":"Grok 2 Vision (1212)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-beta":{"id":"grok-beta","name":"Grok Beta","family":"grok-beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":131072,"output":4096}},"grok-3-mini-fast":{"id":"grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-4-fast":{"id":"grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"grok-3-latest":{"id":"grok-3-latest","name":"Grok 3 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-4-1-fast":{"id":"grok-4-1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-2-vision-latest":{"id":"grok-2-vision-latest","name":"Grok 2 Vision Latest","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-3-mini-latest":{"id":"grok-3-mini-latest","name":"Grok 3 Mini Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-3-mini-fast-latest":{"id":"grok-3-mini-fast-latest","name":"Grok 3 Mini Fast Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-4.20-0309-reasoning":{"id":"grok-4.20-0309-reasoning","name":"Grok 4.20 (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-2-latest":{"id":"grok-2-latest","name":"Grok 2 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-vision-beta":{"id":"grok-vision-beta","name":"Grok Vision Beta","family":"grok-vision","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":8192,"output":4096}},"grok-4.20-0309-non-reasoning":{"id":"grok-4.20-0309-non-reasoning","name":"Grok 4.20 (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-3-fast":{"id":"grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}}}},"alibaba-cn":{"id":"alibaba-cn","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope.aliyuncs.com/compatible-mode/v1","name":"Alibaba (China)","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":131072,"output":8192}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen-math-plus":{"id":"qwen-math-plus","name":"Qwen Math Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-08-16","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"deepseek-v3-1":{"id":"deepseek-v3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":65536}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.15},"limit":{"context":202752,"output":16384}},"qwen2-5-coder-7b-instruct":{"id":"qwen2-5-coder-7b-instruct","name":"Qwen2.5-Coder 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":1.434},"limit":{"context":131072,"output":32768}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":1.147},"limit":{"context":65536,"output":8192}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"qwen-long":{"id":"qwen-long","name":"Qwen Long","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.287},"limit":{"context":10000000,"output":8192}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574,"reasoning":1.434},"limit":{"context":131072,"output":8192}},"qwq-32b":{"id":"qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.574},"limit":{"context":1000000,"output":65536}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.108,"output":0.431,"reasoning":1.076},"limit":{"context":131072,"output":32768}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.032,"output":0.032},"limit":{"context":53248,"output":4096}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.345,"output":1.377},"limit":{"context":131072,"output":8192}},"deepseek-r1-distill-qwen-14b":{"id":"deepseek-r1-distill-qwen-14b","name":"DeepSeek R1 Distill Qwen 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.431},"limit":{"context":32768,"output":16384}},"moonshot-kimi-k2-instruct":{"id":"moonshot-kimi-k2-instruct","name":"Moonshot Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":8192}},"qwen-doc-turbo":{"id":"qwen-doc-turbo","name":"Qwen Doc Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.087,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-07-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.044,"output":0.087,"reasoning":0.431},"limit":{"context":1000000,"output":16384}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.294,"output":6.881},"limit":{"context":131072,"output":8192}},"tongyi-intent-detect-v3":{"id":"tongyi-intent-detect-v3","name":"Tongyi Intent Detect V3","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.058,"output":0.144},"limit":{"context":8192,"output":1024}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.431},"limit":{"context":131072,"output":8192}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.287,"reasoning":0.717},"limit":{"context":131072,"output":8192}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":2.58,"reasoning":2.58},"limit":{"context":262144,"output":65536}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.147,"output":4.588},"limit":{"context":131072,"output":8192}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.087,"output":0.345,"input_audio":5.448},"limit":{"context":32768,"output":2048}},"qwen-plus-character":{"id":"qwen-plus-character","name":"Qwen Plus Character","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":32768,"output":4096}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.717},"limit":{"context":131072,"output":8192}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Moonshot Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.411},"limit":{"context":262144,"output":32768}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"deepseek-v3-2-exp":{"id":"deepseek-v3-2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.431},"limit":{"context":131072,"output":65536}},"deepseek-r1-distill-llama-8b":{"id":"deepseek-r1-distill-llama-8b","name":"DeepSeek R1 Distill Llama 8B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.216,"output":0.861},"limit":{"context":262144,"output":65536}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.259,"output":0.775},"limit":{"context":16384,"output":8192}},"qwen3.5-flash":{"id":"qwen3.5-flash","name":"Qwen3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-23","last_updated":"2026-02-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.172,"output":1.72,"reasoning":1.72},"limit":{"context":1000000,"output":65536}},"qwen2-5-math-7b-instruct":{"id":"qwen2-5-math-7b-instruct","name":"Qwen2.5-Math 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":4096,"output":3072}},"deepseek-r1-distill-qwen-1-5b":{"id":"deepseek-r1-distill-qwen-1-5b","name":"DeepSeek R1 Distill Qwen 1.5B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"deepseek-r1-distill-qwen-7b":{"id":"deepseek-r1-distill-qwen-7b","name":"DeepSeek R1 Distill Qwen 7B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.144},"limit":{"context":32768,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Moonshot Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":262144,"output":16384}},"deepseek-r1-distill-qwen-32b":{"id":"deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen-deep-research":{"id":"qwen-deep-research","name":"Qwen Deep Research","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.742,"output":23.367},"limit":{"context":1000000,"output":32768}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.143353,"output":1.433525,"reasoning":4.300576},"limit":{"context":262144,"output":32768}},"qwen2-5-math-72b-instruct":{"id":"qwen2-5-math-72b-instruct","name":"Qwen2.5-Math 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287,"reasoning":1.147},"limit":{"context":1000000,"output":32768}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574},"limit":{"context":131072,"output":32768}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.573,"output":3.44,"reasoning":3.44},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"qwen-math-turbo":{"id":"qwen-math-turbo","name":"Qwen Math Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":4096,"output":3072}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.216},"limit":{"context":1000000,"output":32768}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":8192}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.717,"output":0.717},"limit":{"context":34096,"output":4096}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.286705,"output":1.14682,"reasoning":2.867051},"limit":{"context":131072,"output":32768}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.101,"output":0.28},"limit":{"context":16384,"output":8192}},"qwen2-5-coder-32b-instruct":{"id":"qwen2-5-coder-32b-instruct","name":"Qwen2.5-Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}},"kimi/kimi-k2.5":{"id":"kimi/kimi-k2.5","name":"kimi/kimi-k2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"siliconflow/deepseek-r1-0528":{"id":"siliconflow/deepseek-r1-0528","name":"siliconflow/deepseek-r1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":163840,"output":32768}},"siliconflow/deepseek-v3-0324":{"id":"siliconflow/deepseek-v3-0324","name":"siliconflow/deepseek-v3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":163840,"output":163840}},"siliconflow/deepseek-v3.1-terminus":{"id":"siliconflow/deepseek-v3.1-terminus","name":"siliconflow/deepseek-v3.1-terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":65536}},"siliconflow/deepseek-v3.2":{"id":"siliconflow/deepseek-v3.2","name":"siliconflow/deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":163840,"output":65536}},"MiniMax/MiniMax-M2.5":{"id":"MiniMax/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.301,"output":1.205},"limit":{"context":204800,"output":131072}}}},"chutes":{"id":"chutes","env":["CHUTES_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.chutes.ai/v1","name":"Chutes","doc":"https://llm.chutes.ai/v1/models","models":{"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM 4.7 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.35},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.7-TEE":{"id":"zai-org/GLM-4.7-TEE","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.5},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6-TEE":{"id":"zai-org/GLM-4.6-TEE","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.7,"cache_read":0.2},"limit":{"context":202752,"output":65536}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"zai-org/GLM-5-TEE":{"id":"zai-org/GLM-5-TEE","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15,"cache_read":0.475},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM 4.6V","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.15},"limit":{"context":131072,"output":65536}},"zai-org/GLM-4.6-FP8":{"id":"zai-org/GLM-4.6-FP8","name":"GLM 4.6 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-TEE":{"id":"zai-org/GLM-4.5-TEE","name":"GLM 4.5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.55},"limit":{"context":131072,"output":65536}},"zai-org/GLM-5-Turbo":{"id":"zai-org/GLM-5-Turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":1.96,"cache_read":0.245},"limit":{"context":202752,"output":65535}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16","name":"NVIDIA Nemotron 3 Nano 30B A3B BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"NousResearch/Hermes-4.3-36B":{"id":"NousResearch/Hermes-4.3-36B","name":"Hermes 4.3 36B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":8192}},"NousResearch/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes 3 Mistral 24B Preview","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":32768,"output":32768}},"NousResearch/Hermes-4-14B":{"id":"NousResearch/Hermes-4-14B","name":"Hermes 4 14B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.05},"limit":{"context":40960,"output":40960}},"NousResearch/Hermes-4-405B-FP8-TEE":{"id":"NousResearch/Hermes-4-405B-FP8-TEE","name":"Hermes 4 405B FP8 TEE","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes 4 70B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":131072,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":262144,"output":32000}},"MiniMaxAI/MiniMax-M2.5-TEE":{"id":"MiniMaxAI/MiniMax-M2.5-TEE","name":"MiniMax M2.5 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.1,"cache_read":0.15},"limit":{"context":196608,"output":65536}},"MiniMaxAI/MiniMax-M2.1-TEE":{"id":"MiniMaxAI/MiniMax-M2.1-TEE","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12},"limit":{"context":196608,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus-TEE","name":"DeepSeek V3.1 Terminus TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":0.9},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-TEE","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.14},"limit":{"context":131072,"output":65536}},"deepseek-ai/DeepSeek-V3-0324-TEE":{"id":"deepseek-ai/DeepSeek-V3-0324-TEE","name":"DeepSeek V3 0324 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.19,"output":0.87,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-Speciale-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-Speciale-TEE","name":"DeepSeek V3.2 Speciale TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-TEE":{"id":"deepseek-ai/DeepSeek-R1-TEE","name":"DeepSeek R1 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-R1-Distill-Llama-70B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3.1-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-TEE","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528-TEE":{"id":"deepseek-ai/DeepSeek-R1-0528-TEE","name":"DeepSeek R1 0528 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":163840,"output":65536}},"rednote-hilab/dots.ocr":{"id":"rednote-hilab/dots.ocr","name":"dots.ocr","family":"rednote","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":131072,"output":131072}},"unsloth/Mistral-Nemo-Instruct-2407":{"id":"unsloth/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01},"limit":{"context":131072,"output":131072}},"unsloth/Mistral-Small-24B-Instruct-2501":{"id":"unsloth/Mistral-Small-24B-Instruct-2501","name":"Mistral Small 24B Instruct 2501","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"gemma 3 12b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"gemma 3 4b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.03},"limit":{"context":96000,"output":96000}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"gemma 3 27b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"unsloth/Llama-3.2-1B-Instruct":{"id":"unsloth/Llama-3.2-1B-Instruct","name":"Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"unsloth/Llama-3.2-3B-Instruct":{"id":"unsloth/Llama-3.2-3B-Instruct","name":"Llama 3.2 3B Instruct","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-02-12","last_updated":"2025-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":16384,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.195},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5-TEE":{"id":"moonshotai/Kimi-K2.5-TEE","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":65535}},"moonshotai/Kimi-K2-Thinking-TEE":{"id":"moonshotai/Kimi-K2-Thinking-TEE","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":262144,"output":65535}},"Qwen/Qwen3-30B-A3B":{"id":"Qwen/Qwen3-30B-A3B","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.33},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3.5-397B-A17B-TEE":{"id":"Qwen/Qwen3.5-397B-A17B-TEE","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":2.34,"cache_read":0.195},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE","name":"Qwen3 Coder 480B A35B Instruct FP8 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11},"limit":{"context":262144,"output":262144}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE","name":"Qwen3 235B A22B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.55,"cache_read":0.04},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":40960,"output":40960}},"Qwen/Qwen2.5-VL-72B-Instruct-TEE":{"id":"Qwen/Qwen2.5-VL-72B-Instruct-TEE","name":"Qwen2.5 VL 72B Instruct TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3Guard-Gen-0.6B":{"id":"Qwen/Qwen3Guard-Gen-0.6B","name":"Qwen3Guard Gen 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":16384,"output":16384}},"tngtech/DeepSeek-R1T-Chimera":{"id":"tngtech/DeepSeek-R1T-Chimera","name":"DeepSeek R1T Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":163840}},"tngtech/TNG-R1T-Chimera-Turbo":{"id":"tngtech/TNG-R1T-Chimera-Turbo","name":"TNG R1T Chimera Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.6},"limit":{"context":163840,"output":65536}},"tngtech/TNG-R1T-Chimera-TEE":{"id":"tngtech/TNG-R1T-Chimera-TEE","name":"TNG R1T Chimera TEE","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":65536}},"mistralai/Devstral-2-123B-Instruct-2512-TEE":{"id":"mistralai/Devstral-2-123B-Instruct-2512-TEE","name":"Devstral 2 123B Instruct 2512 TEE","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":262144,"output":65536}},"openai/gpt-oss-120b-TEE":{"id":"openai/gpt-oss-120b-TEE","name":"gpt oss 120b TEE","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.18},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt oss 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":131072,"output":131072}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18},"limit":{"context":131072,"output":131072}},"chutesai/Mistral-Small-3.1-24B-Instruct-2503":{"id":"chutesai/Mistral-Small-3.1-24B-Instruct-2503","name":"Mistral Small 3.1 24B Instruct 2503","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"miromind-ai/MiroThinker-v1.5-235B":{"id":"miromind-ai/MiroThinker-v1.5-235B","name":"MiroThinker V1.5 235B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.15},"limit":{"context":262144,"output":8192}},"OpenGVLab/InternVL3-78B-TEE":{"id":"OpenGVLab/InternVL3-78B-TEE","name":"InternVL3 78B TEE","family":"opengvlab","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-06","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":32768}}}}} diff --git a/packages/opencode/src/server/instance.ts b/packages/opencode/src/server/instance.ts index 65ea2fac2..4bd7802e2 100644 --- a/packages/opencode/src/server/instance.ts +++ b/packages/opencode/src/server/instance.ts @@ -4,6 +4,7 @@ import { proxy } from "hono/proxy" import type { UpgradeWebSocket } from "hono/ws" import z from "zod" import { createHash } from "node:crypto" +import * as fs from "node:fs/promises" import { Log } from "../util/log" import { Format } from "../format" import { TuiRoutes } from "./routes/tui" @@ -28,6 +29,7 @@ import { ExperimentalRoutes } from "./routes/experimental" import { ProviderRoutes } from "./routes/provider" import { EventRoutes } from "./routes/event" import { errorHandler } from "./middleware" +import { getMimeType } from "hono/utils/mime" const log = Log.create({ service: "server" }) @@ -285,13 +287,14 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono() if (embeddedWebUI) { const match = embeddedWebUI[path.replace(/^\//, "")] ?? embeddedWebUI["index.html"] ?? null if (!match) return c.json({ error: "Not Found" }, 404) - const file = Bun.file(match) - if (await file.exists()) { - c.header("Content-Type", file.type) - if (file.type.startsWith("text/html")) { + + if (await fs.exists(match)) { + const mime = getMimeType(match) ?? "text/plain" + c.header("Content-Type", mime) + if (mime.startsWith("text/html")) { c.header("Content-Security-Policy", DEFAULT_CSP) } - return c.body(await file.arrayBuffer()) + return c.body(new Uint8Array(await fs.readFile(match))) } else { return c.json({ error: "Not Found" }, 404) } diff --git a/packages/opencode/src/server/proxy.ts b/packages/opencode/src/server/proxy.ts index c489c6b42..c90a657dc 100644 --- a/packages/opencode/src/server/proxy.ts +++ b/packages/opencode/src/server/proxy.ts @@ -1,7 +1,6 @@ import type { Target } from "@/control-plane/types" -import { lazy } from "@/util/lazy" import { Hono } from "hono" -import { upgradeWebSocket } from "hono/bun" +import type { UpgradeWebSocket } from "hono/ws" const hop = new Set([ "connection", @@ -53,10 +52,10 @@ function send(ws: { send(data: string | ArrayBuffer | Uint8Array): void }, data: return ws.send(data) } -const app = lazy(() => +const app = (upgrade: UpgradeWebSocket) => new Hono().get( "/__workspace_ws", - upgradeWebSocket((c) => { + upgrade((c) => { const url = c.req.header("x-opencode-proxy-url") const queue: Msg[] = [] let remote: WebSocket | undefined @@ -96,8 +95,7 @@ const app = lazy(() => }, } }), - ), -) + ) export namespace ServerProxy { export function http(target: Extract, req: Request) { @@ -112,13 +110,18 @@ export namespace ServerProxy { ) } - export function websocket(target: Extract, req: Request, env: unknown) { + export function websocket( + upgrade: UpgradeWebSocket, + target: Extract, + req: Request, + env: unknown, + ) { const url = new URL(req.url) url.pathname = "/__workspace_ws" url.search = "" const next = new Headers(req.headers) next.set("x-opencode-proxy-url", socket(target.url)) - return app().fetch( + return app(upgrade).fetch( new Request(url, { method: req.method, headers: next, diff --git a/packages/opencode/src/server/router.ts b/packages/opencode/src/server/router.ts index b6f99ec73..55853d974 100644 --- a/packages/opencode/src/server/router.ts +++ b/packages/opencode/src/server/router.ts @@ -89,7 +89,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware } if (c.req.header("upgrade")?.toLowerCase() === "websocket") { - return ServerProxy.websocket(target, c.req.raw, c.env) + return ServerProxy.websocket(upgrade, target, c.req.raw, c.env) } const headers = new Headers(c.req.raw.headers) diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index b4c13bca0..68be1a6a5 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -843,19 +843,17 @@ export const SessionRoutes = lazy(() => ), validator("json", SessionPrompt.PromptInput.omit({ sessionID: true })), async (c) => { - c.status(204) - c.header("Content-Type", "application/json") - return stream(c, async () => { - const sessionID = c.req.valid("param").sessionID - const body = c.req.valid("json") - SessionPrompt.prompt({ ...body, sessionID }).catch((err) => { - log.error("prompt_async failed", { sessionID, error: err }) - Bus.publish(Session.Event.Error, { - sessionID, - error: new NamedError.Unknown({ message: err instanceof Error ? err.message : String(err) }).toObject(), - }) + const sessionID = c.req.valid("param").sessionID + const body = c.req.valid("json") + SessionPrompt.prompt({ ...body, sessionID }).catch((err) => { + log.error("prompt_async failed", { sessionID, error: err }) + Bus.publish(Session.Event.Error, { + sessionID, + error: new NamedError.Unknown({ message: err instanceof Error ? err.message : String(err) }).toObject(), }) }) + + return c.body(null, 204) }, ) .post( diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 3822da71e..c4f2a931b 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -2,6 +2,7 @@ import { Log } from "../util/log" import { describeRoute, generateSpecs, validator, resolver, openAPIRouteHandler } from "hono-openapi" import { Hono } from "hono" import { compress } from "hono/compress" +import { createNodeWebSocket } from "@hono/node-ws" import { cors } from "hono/cors" import { basicAuth } from "hono/basic-auth" import type { UpgradeWebSocket } from "hono/ws" @@ -9,8 +10,6 @@ import z from "zod" import { Auth } from "../auth" import { Flag } from "../flag/flag" import { ProviderID } from "../provider/schema" -import { createAdaptorServer, type ServerType } from "@hono/node-server" -import { createNodeWebSocket } from "@hono/node-ws" import { WorkspaceRouterMiddleware } from "./router" import { errors } from "./error" import { GlobalRoutes } from "./routes/global" @@ -19,6 +18,7 @@ import { lazy } from "@/util/lazy" import { errorHandler } from "./middleware" import { InstanceRoutes } from "./instance" import { initProjectors } from "./projectors" +import { createAdaptorServer, type ServerType } from "@hono/node-server" // @ts-ignore This global is needed to prevent ai-sdk from logging warnings to stdout https://github.com/vercel/ai/blob/2dc67e0ef538307f21368db32d5a12345d98831b/packages/ai/src/logger/log-warnings.ts#L85 globalThis.AI_SDK_LOG_WARNINGS = false @@ -42,7 +42,7 @@ export namespace Server { return false } - export const Default = lazy(() => create({}).app) + export const Default = lazy(() => create({})) export function ControlPlaneRoutes(upgrade: UpgradeWebSocket, app = new Hono(), opts?: { cors?: string[] }): Hono { return app @@ -54,6 +54,9 @@ export namespace Server { const password = Flag.OPENCODE_SERVER_PASSWORD if (!password) return next() const username = Flag.OPENCODE_SERVER_USERNAME ?? "opencode" + + if (c.req.query("auth_token")) c.req.raw.headers.set("authorization", `Basic ${c.req.query("auth_token")}`) + return basicAuth({ username, password })(c, next) }) .use(async (c, next) => { diff --git a/packages/opencode/src/shell/shell.ts b/packages/opencode/src/shell/shell.ts index df8e8eb7e..0044dda89 100644 --- a/packages/opencode/src/shell/shell.ts +++ b/packages/opencode/src/shell/shell.ts @@ -51,13 +51,13 @@ export namespace Shell { if (shell.startsWith("/") && name(shell) === "bash") return gitbash() || shell return shell } - return Bun.which(shell) || shell + return which(shell) || shell } function pick() { - const pwsh = Bun.which("pwsh") + const pwsh = which("pwsh.exe") if (pwsh) return pwsh - const powershell = Bun.which("powershell") + const powershell = which("powershell.exe") if (powershell) return powershell } diff --git a/packages/opencode/src/storage/json-migration.ts b/packages/opencode/src/storage/json-migration.ts index 828ce4799..400e3dc9e 100644 --- a/packages/opencode/src/storage/json-migration.ts +++ b/packages/opencode/src/storage/json-migration.ts @@ -1,5 +1,5 @@ -import { Database } from "bun:sqlite" -import { drizzle } from "drizzle-orm/bun-sqlite" +import type { SQLiteBunDatabase } from "drizzle-orm/bun-sqlite" +import type { NodeSQLiteDatabase } from "drizzle-orm/node-sqlite" import { Global } from "../global" import { Log } from "../util/log" import { ProjectTable } from "../project/project.sql" @@ -23,7 +23,7 @@ export namespace JsonMigration { progress?: (event: Progress) => void } - export async function run(sqlite: Database, options?: Options) { + export async function run(db: SQLiteBunDatabase | NodeSQLiteDatabase, options?: Options) { const storageDir = path.join(Global.Path.data, "storage") if (!existsSync(storageDir)) { @@ -43,13 +43,13 @@ export namespace JsonMigration { log.info("starting json to sqlite migration", { storageDir }) const start = performance.now() - const db = drizzle({ client: sqlite }) + // const db = drizzle({ client: sqlite }) // Optimize SQLite for bulk inserts - sqlite.exec("PRAGMA journal_mode = WAL") - sqlite.exec("PRAGMA synchronous = OFF") - sqlite.exec("PRAGMA cache_size = 10000") - sqlite.exec("PRAGMA temp_store = MEMORY") + db.run("PRAGMA journal_mode = WAL") + db.run("PRAGMA synchronous = OFF") + db.run("PRAGMA cache_size = 10000") + db.run("PRAGMA temp_store = MEMORY") const stats = { projects: 0, sessions: 0, @@ -146,7 +146,7 @@ export namespace JsonMigration { progress?.({ current, total, label: "starting" }) - sqlite.exec("BEGIN TRANSACTION") + db.run("BEGIN TRANSACTION") // Migrate projects first (no FK deps) // Derive all IDs from file paths, not JSON content @@ -400,7 +400,7 @@ export namespace JsonMigration { log.warn("skipped orphaned session shares", { count: orphans.shares }) } - sqlite.exec("COMMIT") + db.run("COMMIT") log.info("json migration complete", { projects: stats.projects, diff --git a/packages/opencode/test/server/project-init-git.test.ts b/packages/opencode/test/server/project-init-git.test.ts index 855997775..eca562a0f 100644 --- a/packages/opencode/test/server/project-init-git.test.ts +++ b/packages/opencode/test/server/project-init-git.test.ts @@ -19,7 +19,7 @@ afterEach(async () => { describe("project.initGit endpoint", () => { test("initializes git and reloads immediately", async () => { await using tmp = await tmpdir() - const app = Server.Default() + const app = Server.Default().app const seen: { directory?: string; payload: { type: string } }[] = [] const fn = (evt: { directory?: string; payload: { type: string } }) => { seen.push(evt) @@ -76,7 +76,7 @@ describe("project.initGit endpoint", () => { test("does not reload when the project is already git", async () => { await using tmp = await tmpdir({ git: true }) - const app = Server.Default() + const app = Server.Default().app const seen: { directory?: string; payload: { type: string } }[] = [] const fn = (evt: { directory?: string; payload: { type: string } }) => { seen.push(evt) diff --git a/packages/opencode/test/server/session-actions.test.ts b/packages/opencode/test/server/session-actions.test.ts index e6dba676c..004c2900a 100644 --- a/packages/opencode/test/server/session-actions.test.ts +++ b/packages/opencode/test/server/session-actions.test.ts @@ -42,7 +42,7 @@ describe("session action routes", () => { fn: async () => { const session = await Session.create({}) const cancel = spyOn(SessionPrompt, "cancel").mockResolvedValue() - const app = Server.Default() + const app = Server.Default().app const res = await app.request(`/session/${session.id}/abort`, { method: "POST", @@ -66,7 +66,7 @@ describe("session action routes", () => { const msg = await user(session.id, "hello") const busy = spyOn(SessionPrompt, "assertNotBusy").mockRejectedValue(new Session.BusyError(session.id)) const remove = spyOn(Session, "removeMessage").mockResolvedValue(msg.id) - const app = Server.Default() + const app = Server.Default().app const res = await app.request(`/session/${session.id}/message/${msg.id}`, { method: "DELETE", diff --git a/packages/opencode/test/server/session-messages.test.ts b/packages/opencode/test/server/session-messages.test.ts index 89e6fba5c..7ba95f3b1 100644 --- a/packages/opencode/test/server/session-messages.test.ts +++ b/packages/opencode/test/server/session-messages.test.ts @@ -60,7 +60,7 @@ describe("session messages endpoint", () => { fn: async () => { const session = await Session.create({}) const ids = await fill(session.id, 5) - const app = Server.Default() + const app = Server.Default().app const a = await app.request(`/session/${session.id}/message?limit=2`) expect(a.status).toBe(200) @@ -89,7 +89,7 @@ describe("session messages endpoint", () => { fn: async () => { const session = await Session.create({}) const ids = await fill(session.id, 3) - const app = Server.Default() + const app = Server.Default().app const res = await app.request(`/session/${session.id}/message`) expect(res.status).toBe(200) @@ -109,7 +109,7 @@ describe("session messages endpoint", () => { directory: tmp.path, fn: async () => { const session = await Session.create({}) - const app = Server.Default() + const app = Server.Default().app const bad = await app.request(`/session/${session.id}/message?limit=2&before=bad`) expect(bad.status).toBe(400) @@ -131,7 +131,7 @@ describe("session messages endpoint", () => { fn: async () => { const session = await Session.create({}) await fill(session.id, 520) - const app = Server.Default() + const app = Server.Default().app const res = await app.request(`/session/${session.id}/message?limit=510`) expect(res.status).toBe(200) diff --git a/packages/opencode/test/server/session-select.test.ts b/packages/opencode/test/server/session-select.test.ts index 345b43146..7558b4a6b 100644 --- a/packages/opencode/test/server/session-select.test.ts +++ b/packages/opencode/test/server/session-select.test.ts @@ -21,7 +21,7 @@ describe("tui.selectSession endpoint", () => { const session = await Session.create({}) // #when - const app = Server.Default() + const app = Server.Default().app const response = await app.request("/tui/select-session", { method: "POST", headers: { "Content-Type": "application/json" }, @@ -47,7 +47,7 @@ describe("tui.selectSession endpoint", () => { const nonExistentSessionID = "ses_nonexistent123" // #when - const app = Server.Default() + const app = Server.Default().app const response = await app.request("/tui/select-session", { method: "POST", headers: { "Content-Type": "application/json" }, @@ -69,7 +69,7 @@ describe("tui.selectSession endpoint", () => { const invalidSessionID = "invalid_session_id" // #when - const app = Server.Default() + const app = Server.Default().app const response = await app.request("/tui/select-session", { method: "POST", headers: { "Content-Type": "application/json" }, diff --git a/packages/opencode/test/storage/json-migration.test.ts b/packages/opencode/test/storage/json-migration.test.ts index a714f1147..e76401ae7 100644 --- a/packages/opencode/test/storage/json-migration.test.ts +++ b/packages/opencode/test/storage/json-migration.test.ts @@ -1,6 +1,6 @@ import { describe, test, expect, beforeEach, afterEach } from "bun:test" import { Database } from "bun:sqlite" -import { drizzle } from "drizzle-orm/bun-sqlite" +import { drizzle, SQLiteBunDatabase } from "drizzle-orm/bun-sqlite" import { migrate } from "drizzle-orm/bun-sqlite/migrator" import path from "path" import fs from "fs/promises" @@ -89,18 +89,21 @@ function createTestDb() { name: entry.name, })) .sort((a, b) => a.timestamp - b.timestamp) - migrate(drizzle({ client: sqlite }), migrations) - return sqlite + const db = drizzle({ client: sqlite }) + migrate(db, migrations) + + return [sqlite, db] as const } describe("JSON to SQLite migration", () => { let storageDir: string let sqlite: Database + let db: SQLiteBunDatabase beforeEach(async () => { storageDir = await setupStorageDir() - sqlite = createTestDb() + ;[sqlite, db] = createTestDb() }) afterEach(async () => { @@ -118,11 +121,10 @@ describe("JSON to SQLite migration", () => { sandboxes: ["/test/sandbox"], }) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.projects).toBe(1) - const db = drizzle({ client: sqlite }) const projects = db.select().from(ProjectTable).all() expect(projects.length).toBe(1) expect(projects[0].id).toBe(ProjectID.make("proj_test123abc")) @@ -143,11 +145,10 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.projects).toBe(1) - const db = drizzle({ client: sqlite }) const projects = db.select().from(ProjectTable).all() expect(projects.length).toBe(1) expect(projects[0].id).toBe(ProjectID.make("proj_filename")) // Uses filename, not JSON id @@ -164,11 +165,10 @@ describe("JSON to SQLite migration", () => { commands: { start: "npm run dev" }, }) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.projects).toBe(1) - const db = drizzle({ client: sqlite }) const projects = db.select().from(ProjectTable).all() expect(projects.length).toBe(1) expect(projects[0].id).toBe(ProjectID.make("proj_with_commands")) @@ -185,11 +185,10 @@ describe("JSON to SQLite migration", () => { sandboxes: [], }) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.projects).toBe(1) - const db = drizzle({ client: sqlite }) const projects = db.select().from(ProjectTable).all() expect(projects.length).toBe(1) expect(projects[0].id).toBe(ProjectID.make("proj_no_commands")) @@ -216,9 +215,8 @@ describe("JSON to SQLite migration", () => { share: { url: "https://example.com/share" }, }) - await JsonMigration.run(sqlite) + await JsonMigration.run(db) - const db = drizzle({ client: sqlite }) const sessions = db.select().from(SessionTable).all() expect(sessions.length).toBe(1) expect(sessions[0].id).toBe(SessionID.make("ses_test456def")) @@ -247,12 +245,11 @@ describe("JSON to SQLite migration", () => { JSON.stringify({ ...fixtures.part }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.messages).toBe(1) expect(stats?.parts).toBe(1) - const db = drizzle({ client: sqlite }) const messages = db.select().from(MessageTable).all() expect(messages.length).toBe(1) expect(messages[0].id).toBe(MessageID.make("msg_test789ghi")) @@ -287,12 +284,11 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.messages).toBe(1) expect(stats?.parts).toBe(1) - const db = drizzle({ client: sqlite }) const messages = db.select().from(MessageTable).all() expect(messages.length).toBe(1) expect(messages[0].id).toBe(MessageID.make("msg_test789ghi")) @@ -329,11 +325,10 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.messages).toBe(1) - const db = drizzle({ client: sqlite }) const messages = db.select().from(MessageTable).all() expect(messages.length).toBe(1) expect(messages[0].id).toBe(MessageID.make("msg_from_filename")) // Uses filename, not JSON id @@ -367,11 +362,10 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.parts).toBe(1) - const db = drizzle({ client: sqlite }) const parts = db.select().from(PartTable).all() expect(parts.length).toBe(1) expect(parts[0].id).toBe(PartID.make("prt_from_filename")) // Uses filename, not JSON id @@ -392,7 +386,7 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.sessions).toBe(0) }) @@ -420,11 +414,10 @@ describe("JSON to SQLite migration", () => { time: { created: 1700000000000, updated: 1700000001000 }, }) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.sessions).toBe(1) - const db = drizzle({ client: sqlite }) const sessions = db.select().from(SessionTable).all() expect(sessions.length).toBe(1) expect(sessions[0].id).toBe(SessionID.make("ses_migrated")) @@ -452,11 +445,10 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.sessions).toBe(1) - const db = drizzle({ client: sqlite }) const sessions = db.select().from(SessionTable).all() expect(sessions.length).toBe(1) expect(sessions[0].id).toBe(SessionID.make("ses_from_filename")) // Uses filename, not JSON id @@ -471,10 +463,9 @@ describe("JSON to SQLite migration", () => { sandboxes: [], }) - await JsonMigration.run(sqlite) - await JsonMigration.run(sqlite) + await JsonMigration.run(db) + await JsonMigration.run(db) - const db = drizzle({ client: sqlite }) const projects = db.select().from(ProjectTable).all() expect(projects.length).toBe(1) // Still only 1 due to onConflictDoNothing }) @@ -507,11 +498,10 @@ describe("JSON to SQLite migration", () => { ]), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.todos).toBe(2) - const db = drizzle({ client: sqlite }) const todos = db.select().from(TodoTable).orderBy(TodoTable.position).all() expect(todos.length).toBe(2) expect(todos[0].content).toBe("First todo") @@ -540,9 +530,8 @@ describe("JSON to SQLite migration", () => { ]), ) - await JsonMigration.run(sqlite) + await JsonMigration.run(db) - const db = drizzle({ client: sqlite }) const todos = db.select().from(TodoTable).orderBy(TodoTable.position).all() expect(todos.length).toBe(3) @@ -570,11 +559,10 @@ describe("JSON to SQLite migration", () => { ] await Bun.write(path.join(storageDir, "permission", "proj_test123abc.json"), JSON.stringify(permissionData)) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.permissions).toBe(1) - const db = drizzle({ client: sqlite }) const permissions = db.select().from(PermissionTable).all() expect(permissions.length).toBe(1) expect(permissions[0].project_id).toBe("proj_test123abc") @@ -600,11 +588,10 @@ describe("JSON to SQLite migration", () => { }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats?.shares).toBe(1) - const db = drizzle({ client: sqlite }) const shares = db.select().from(SessionShareTable).all() expect(shares.length).toBe(1) expect(shares[0].session_id).toBe("ses_test456def") @@ -616,7 +603,7 @@ describe("JSON to SQLite migration", () => { test("returns empty stats when storage directory does not exist", async () => { await fs.rm(storageDir, { recursive: true, force: true }) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats.projects).toBe(0) expect(stats.sessions).toBe(0) @@ -637,12 +624,11 @@ describe("JSON to SQLite migration", () => { }) await Bun.write(path.join(storageDir, "project", "broken.json"), "{ invalid json") - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats.projects).toBe(1) expect(stats.errors.some((x) => x.includes("failed to read") && x.includes("broken.json"))).toBe(true) - const db = drizzle({ client: sqlite }) const projects = db.select().from(ProjectTable).all() expect(projects.length).toBe(1) expect(projects[0].id).toBe(ProjectID.make("proj_test123abc")) @@ -666,10 +652,9 @@ describe("JSON to SQLite migration", () => { ]), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats.todos).toBe(2) - const db = drizzle({ client: sqlite }) const todos = db.select().from(TodoTable).orderBy(TodoTable.position).all() expect(todos.length).toBe(2) expect(todos[0].content).toBe("keep-0") @@ -714,13 +699,12 @@ describe("JSON to SQLite migration", () => { JSON.stringify({ id: "share_missing", secret: "secret", url: "https://missing.example.com" }), ) - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) expect(stats.todos).toBe(1) expect(stats.permissions).toBe(1) expect(stats.shares).toBe(1) - const db = drizzle({ client: sqlite }) expect(db.select().from(TodoTable).all().length).toBe(1) expect(db.select().from(PermissionTable).all().length).toBe(1) expect(db.select().from(SessionShareTable).all().length).toBe(1) @@ -823,7 +807,7 @@ describe("JSON to SQLite migration", () => { ) await Bun.write(path.join(storageDir, "session_share", "ses_broken.json"), "{ nope") - const stats = await JsonMigration.run(sqlite) + const stats = await JsonMigration.run(db) // Projects: proj_test123abc (valid), proj_missing_id (now derives id from filename) // Sessions: ses_test456def (valid), ses_missing_project (now uses dir path), @@ -837,7 +821,6 @@ describe("JSON to SQLite migration", () => { expect(stats.shares).toBe(1) expect(stats.errors.length).toBeGreaterThanOrEqual(6) - const db = drizzle({ client: sqlite }) expect(db.select().from(ProjectTable).all().length).toBe(2) expect(db.select().from(SessionTable).all().length).toBe(3) expect(db.select().from(MessageTable).all().length).toBe(1) From ca57248246ae90911be71519abb07113fddb8c93 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Thu, 9 Apr 2026 05:19:52 +0000 Subject: [PATCH 015/151] chore: generate --- .../opencode/src/provider/models-snapshot.js | 61473 +++++++++++++++- 1 file changed, 61472 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/provider/models-snapshot.js b/packages/opencode/src/provider/models-snapshot.js index 3e6c4159d..7b3c6a6a6 100644 --- a/packages/opencode/src/provider/models-snapshot.js +++ b/packages/opencode/src/provider/models-snapshot.js @@ -1,3 +1,61474 @@ // @ts-nocheck // Auto-generated by build.ts - do not edit -export const snapshot = {"evroc":{"id":"evroc","env":["EVROC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://models.think.evroc.com/v1","name":"evroc","doc":"https://docs.evroc.com/products/think/overview.html","models":{"nvidia/Llama-3.3-70B-Instruct-FP8":{"id":"nvidia/Llama-3.3-70B-Instruct-FP8","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.18,"output":1.18},"limit":{"context":131072,"output":32768}},"microsoft/Phi-4-multimodal-instruct":{"id":"microsoft/Phi-4-multimodal-instruct","name":"Phi-4 15B","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.47},"limit":{"context":32000,"output":32000}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"E5 Multi-Lingual Large Embeddings 0.6B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":512,"output":512}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":1.47,"output":5.9},"limit":{"context":262144,"output":262144}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB Whisper","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":448}},"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8","name":"Qwen3 30B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.42},"limit":{"context":64000,"output":64000}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3 Embedding 8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen3 VL 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":100000,"output":100000}},"mistralai/Voxtral-Small-24B-2507":{"id":"mistralai/Voxtral-Small-24B-2507","name":"Voxtral Small 24B","family":"voxtral","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":32000,"output":32000}},"mistralai/devstral-small-2-24b-instruct-2512":{"id":"mistralai/devstral-small-2-24b-instruct-2512","name":"Devstral Small 2 24B Instruct 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.47},"limit":{"context":32768,"output":32768}},"mistralai/Magistral-Small-2509":{"id":"mistralai/Magistral-Small-2509","name":"Magistral Small 1.2 24B","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":2.36},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":65536,"output":65536}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper 3 Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":4096}}}},"zai":{"id":"zai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/paas/v4","name":"Z.AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}}}},"alibaba-coding-plan":{"id":"alibaba-coding-plan","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-intl.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan","doc":"https://www.alibabacloud.com/help/en/model-studio/coding-plan","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"input":196601,"output":24576}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"zenmux":{"id":"zenmux","env":["ZENMUX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1","name":"ZenMux","doc":"https://docs.zenmux.ai","models":{"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo V2 Omni","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":265000,"output":265000}},"xiaomi/mimo-v2-flash-free":{"id":"xiaomi/mimo-v2-flash-free","name":"MiMo-V2-Flash Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":64000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262000,"output":64000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":4.5},"limit":{"context":1000000,"output":256000}},"kuaishou/kat-coder-pro-v1-free":{"id":"kuaishou/kat-coder-pro-v1-free","name":"KAT-Coder-Pro-V1 Free","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"kuaishou/kat-coder-pro-v1":{"id":"kuaishou/kat-coder-pro-v1","name":"KAT-Coder-Pro-V1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":64000}},"stepfun/step-3.5-flash-free":{"id":"stepfun/step-3.5-flash-free","name":"Step 3.5 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":256000,"output":64000}},"stepfun/step-3":{"id":"stepfun/step-3","name":"Step-3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":65536,"output":64000}},"inclusionai/ling-1t":{"id":"inclusionai/ling-1t","name":"Ling-1T","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"inclusionai/ring-1t":{"id":"inclusionai/ring-1t","name":"Ring-1T","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-12","last_updated":"2025-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"volcengine/doubao-seed-1.8":{"id":"volcengine/doubao-seed-1.8","name":"Doubao-Seed-1.8","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.28,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-pro":{"id":"volcengine/doubao-seed-2.0-pro","name":"Doubao-Seed-2.0-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":2.24,"cache_read":0.09,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-mini":{"id":"volcengine/doubao-seed-2.0-mini","name":"Doubao-Seed-2.0-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.28,"cache_read":0.01,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-code":{"id":"volcengine/doubao-seed-code","name":"Doubao-Seed-Code","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.12,"cache_read":0.03},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-lite":{"id":"volcengine/doubao-seed-2.0-lite","name":"Doubao-Seed-2.0-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.51,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-code":{"id":"volcengine/doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.48},"limit":{"context":256000,"output":32000}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.43},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek-V3.2 (Non-thinking Mode)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek-V3.2-Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.33},"limit":{"context":163000,"output":64000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":3.02,"cache_read":0.1},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"baidu/ernie-5.0-thinking-preview":{"id":"baidu/ernie-5.0-thinking-preview","name":"ERNIE 5.0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.84,"output":3.37},"limit":{"context":128000,"output":64000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.07,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1050000,"output":65530}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-19","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-3-pro-image-preview":{"id":"google/gemini-3-pro-image-preview","name":"Gemini 3 Pro Image Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM 5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":2.6,"cache_read":0.14},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flashx":{"id":"z-ai/glm-4.7-flashx","name":"GLM 4.7 FlashX","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.42,"cache_read":0.01},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.56,"cache_read":0.02},"limit":{"context":128000,"output":64000}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"z-ai/glm-4.6v-flash-free":{"id":"z-ai/glm-4.6v-flash-free","name":"GLM 4.6V Flash (Free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.14,"cache_read":0.06},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.7-flash-free":{"id":"z-ai/glm-4.7-flash-free","name":"GLM 4.7 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6v-flash":{"id":"z-ai/glm-4.6v-flash","name":"GLM 4.6V FlashX","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.21,"cache_read":0.0043},"limit":{"context":200000,"output":64000}},"z-ai/glm-5-turbo":{"id":"z-ai/glm-5-turbo","name":"GLM 5 Turbo","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":3.48},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.42,"cache_read":0.03},"limit":{"context":200000,"output":64000}},"qwen/qwen3.5-flash":{"id":"qwen/qwen3.5-flash","name":"Qwen3.5 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1020000,"output":1020000}},"qwen/qwen3.5-plus":{"id":"qwen/qwen3.5-plus","name":"Qwen3.5 Plus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4.8},"limit":{"context":1000000,"output":64000}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3-Max-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":256000,"output":64000}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen3-Coder-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":1000000,"output":64000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":64000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4.2-fast":{"id":"x-ai/grok-4.2-fast","name":"Grok 4.2 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.2-fast-non-reasoning":{"id":"x-ai/grok-4.2-fast-non-reasoning","name":"Grok 4.2 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2026-01-15","last_updated":"2026-01-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":128000,"output":64000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":64000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":45,"output":225},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16380}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5},"limit":{"context":400000,"output":128000}},"minimax/minimax-m2.5-lightning":{"id":"minimax/minimax-m2.5-lightning","name":"MiniMax M2.5 highspeed","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3055,"output":1.2219},"limit":{"context":204800,"output":131070}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 highspeed","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.611,"output":2.4439},"limit":{"context":204800,"output":131070}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude 3.5 Sonnet (Retiring Soon)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"status":"deprecated"},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2024-11-04","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}}}},"io-net":{"id":"io-net","env":["IOINTELLIGENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.intelligence.io.solutions/api/v1","name":"IO.NET","doc":"https://io.net/docs/guides/intelligence/io-intelligence","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-15","last_updated":"2024-11-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.75,"cache_read":0.2,"cache_write":0.8},"limit":{"context":200000,"output":4096}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":8.75,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar":{"id":"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11,"cache_write":0.44},"limit":{"context":106000,"output":4096}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-09-05","last_updated":"2024-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":1.9,"cache_read":0.195,"cache_write":0.78},"limit":{"context":32768,"output":4096}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.25,"cache_read":0.275,"cache_write":1.1},"limit":{"context":32768,"output":4096}},"meta-llama/Llama-3.2-90B-Vision-Instruct":{"id":"meta-llama/Llama-3.2-90B-Vision-Instruct","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.4,"cache_read":0.175,"cache_write":0.7},"limit":{"context":16000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.38,"cache_read":0.065,"cache_write":0.26},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"cache_read":0.075,"cache_write":0.3},"limit":{"context":430000,"output":4096}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen 3 Next 80B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-10","last_updated":"2025-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8,"cache_read":0.05,"cache_write":0.2},"limit":{"context":262144,"output":4096}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen 3 235B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6,"cache_read":0.055,"cache_write":0.22},"limit":{"context":262144,"output":4096}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen 2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":32000,"output":4096}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01,"cache_write":0.04},"limit":{"context":128000,"output":4096}},"mistralai/Magistral-Small-2506":{"id":"mistralai/Magistral-Small-2506","name":"Magistral Small 2506","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":4096}},"mistralai/Mistral-Large-Instruct-2411":{"id":"mistralai/Mistral-Large-Instruct-2411","name":"Mistral Large Instruct 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":128000,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.4,"cache_read":0.02,"cache_write":0.08},"limit":{"context":131072,"output":4096}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT-OSS 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14,"cache_read":0.015,"cache_write":0.06},"limit":{"context":64000,"output":4096}}}},"nvidia":{"id":"nvidia","env":["NVIDIA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://integrate.api.nvidia.com/v1","name":"Nvidia","doc":"https://docs.api.nvidia.com/nim/","models":{"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"Llama 3.1 Nemotron 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.1-nemotron-ultra-253b-v1":{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/llama-3.1-nemotron-51b-instruct":{"id":"nvidia/llama-3.1-nemotron-51b-instruct","name":"Llama 3.1 Nemotron 51b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-22","last_updated":"2024-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/parakeet-tdt-0.6b-v2":{"id":"nvidia/parakeet-tdt-0.6b-v2","name":"Parakeet TDT 0.6B v2","family":"parakeet","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nvidia/llama-embed-nemotron-8b":{"id":"nvidia/llama-embed-nemotron-8b","name":"Llama Embed Nemotron 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-03","release_date":"2025-03-18","last_updated":"2025-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":2048}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"Llama 3.3 Nemotron Super 49b V1.5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.3-nemotron-super-49b-v1":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1","name":"Llama 3.3 Nemotron Super 49b V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama3-chatqa-1.5-70b":{"id":"nvidia/llama3-chatqa-1.5-70b","name":"Llama3 Chatqa 1.5 70b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-28","last_updated":"2024-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/cosmos-nemotron-34b":{"id":"nvidia/cosmos-nemotron-34b","name":"Cosmos Nemotron 34B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/nemoretriever-ocr-v1":{"id":"nvidia/nemoretriever-ocr-v1","name":"NeMo Retriever OCR v1","family":"nemoretriever","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"nvidia/nemotron-4-340b-instruct":{"id":"nvidia/nemotron-4-340b-instruct","name":"Nemotron 4 340b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-13","last_updated":"2024-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"nemotron-3-nano-30b-a3b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi 3 Small 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi 3 Medium 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi 3.5 Moe Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-17","last_updated":"2024-08-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-vision-128k-instruct":{"id":"microsoft/phi-3-vision-128k-instruct","name":"Phi 3 Vision 128k Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-19","last_updated":"2024-05-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-Mini","family":"phi","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi 3.5 Vision Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi 3 Medium 4k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4000,"output":4096}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi 3 Small 8k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":4096}},"minimaxai/minimax-m2.1":{"id":"minimaxai/minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"minimaxai/minimax-m2.5":{"id":"minimaxai/minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"deepseek-ai/deepseek-v3.1":{"id":"deepseek-ai/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-20","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek-ai/deepseek-r1-0528":{"id":"deepseek-ai/deepseek-r1-0528","name":"Deepseek R1 0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-r1":{"id":"deepseek-ai/deepseek-r1","name":"Deepseek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.1-terminus":{"id":"deepseek-ai/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek-ai/deepseek-coder-6.7b-instruct":{"id":"deepseek-ai/deepseek-coder-6.7b-instruct","name":"Deepseek Coder 6.7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2023-10-29","last_updated":"2023-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.2":{"id":"deepseek-ai/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":163840,"output":65536}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-01-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":262144}},"google/codegemma-7b":{"id":"google/codegemma-7b","name":"Codegemma 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-03-21","last_updated":"2024-03-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma 2 2b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-1b-it":{"id":"google/gemma-3-1b-it","name":"Gemma 3 1b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Gemma 2 27b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e2b-it":{"id":"google/gemma-3n-e2b-it","name":"Gemma 3n E2b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/codegemma-1.1-7b":{"id":"google/codegemma-1.1-7b","name":"Codegemma 1.1 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-04-30","last_updated":"2024-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n E4b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-03","last_updated":"2025-06-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"z-ai/glm4.7":{"id":"z-ai/glm4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"z-ai/glm5":{"id":"z-ai/glm5","name":"GLM5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":131000}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":16384}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwq 32b","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen2.5 Coder 7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":8192}},"qwen/qwen2.5-coder-32b-instruct":{"id":"qwen/qwen2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-06","last_updated":"2024-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"meta/llama-3.1-70b-instruct":{"id":"meta/llama-3.1-70b-instruct","name":"Llama 3.1 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-26","last_updated":"2024-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17b 16e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-02","last_updated":"2025-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11b Vision Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-8b-instruct":{"id":"meta/llama3-8b-instruct","name":"Llama3 8b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/codellama-70b":{"id":"meta/codellama-70b","name":"Codellama 70b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-29","last_updated":"2024-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.1-405b-instruct":{"id":"meta/llama-3.1-405b-instruct","name":"Llama 3.1 405b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-70b-instruct":{"id":"meta/llama3-70b-instruct","name":"Llama3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-maverick-17b-128e-instruct":{"id":"meta/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17b 128e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B Instruct 2512","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/mamba-codestral-7b-v0.1":{"id":"mistralai/mamba-codestral-7b-v0.1","name":"Mamba Codestral 7b V0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/codestral-22b-instruct-v0.1":{"id":"mistralai/codestral-22b-instruct-v0.1","name":"Codestral 22b Instruct V0.1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-29","last_updated":"2024-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-2-instruct":{"id":"mistralai/mistral-large-2-instruct","name":"Mistral Large 2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B Instruct 2512","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-3.1-24b-instruct-2503":{"id":"mistralai/mistral-small-3.1-24b-instruct-2503","name":"Mistral Small 3.1 24b Instruct 2503","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral-2-123B-Instruct-2512","family":"devstral","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"black-forest-labs/flux.1-dev":{"id":"black-forest-labs/flux.1-dev","name":"FLUX.1-dev","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":0}}}},"fastrouter":{"id":"fastrouter","env":["FASTROUTER_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://go.fastrouter.ai/api/v1","name":"FastRouter","doc":"https://fastrouter.ai/models","models":{"deepseek-ai/deepseek-r1-distill-llama-70b":{"id":"deepseek-ai/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":204800,"output":131072}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":65536}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"iflowcn":{"id":"iflowcn","env":["IFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://apis.iflow.cn/v1","name":"iFlow","doc":"https://platform.iflow.cn/en/docs","models":{"kimi-k2":{"id":"kimi-k2","name":"Kimi-K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3-Max-Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi-K2-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-235b-a22b-instruct":{"id":"qwen3-235b-a22b-instruct","name":"Qwen3-235B-A22B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-235b":{"id":"qwen3-235b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL-Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3-235B-A22B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3-Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3-Coder-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}}}},"modelscope":{"id":"modelscope","env":["MODELSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-inference.modelscope.cn/v1","name":"ModelScope","doc":"https://modelscope.cn/docs/model-service/API-Inference/intro","models":{"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"ZhipuAI/GLM-4.6":{"id":"ZhipuAI/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":98304}},"ZhipuAI/GLM-4.5":{"id":"ZhipuAI/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":98304}}}},"llama":{"id":"llama","env":["LLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.llama.com/compat/v1/","name":"Llama","doc":"https://llama.developer.meta.com/docs/models","models":{"cerebras-llama-4-maverick-17b-128e-instruct":{"id":"cerebras-llama-4-maverick-17b-128e-instruct","name":"Cerebras-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-scout-17b-16e-instruct-fp8":{"id":"llama-4-scout-17b-16e-instruct-fp8","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-3.3-8b-instruct":{"id":"llama-3.3-8b-instruct","name":"Llama-3.3-8B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"groq-llama-4-maverick-17b-128e-instruct":{"id":"groq-llama-4-maverick-17b-128e-instruct","name":"Groq-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cerebras-llama-4-scout-17b-16e-instruct":{"id":"cerebras-llama-4-scout-17b-16e-instruct","name":"Cerebras-Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}}}},"inference":{"id":"inference","env":["INFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.net/v1","name":"Inference","doc":"https://inference.net/models","models":{"mistral/mistral-nemo-12b-instruct":{"id":"mistral/mistral-nemo-12b-instruct","name":"Mistral Nemo 12B Instruct","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.038,"output":0.1},"limit":{"context":16000,"output":4096}},"google/gemma-3":{"id":"google/gemma-3","name":"Google Gemma 3","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.3},"limit":{"context":125000,"output":4096}},"qwen/qwen3-embedding-4b":{"id":"qwen/qwen3-embedding-4b","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"qwen/qwen-2.5-7b-vision-instruct":{"id":"qwen/qwen-2.5-7b-vision-instruct","name":"Qwen 2.5 7B Vision Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":125000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.055,"output":0.055},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-3b-instruct":{"id":"meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01},"limit":{"context":16000,"output":4096}},"meta/llama-3.1-8b-instruct":{"id":"meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.025,"output":0.025},"limit":{"context":16000,"output":4096}},"osmosis/osmosis-structure-0.6b":{"id":"osmosis/osmosis-structure-0.6b","name":"Osmosis Structure 0.6B","family":"osmosis","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":4000,"output":2048}}}},"deepinfra":{"id":"deepinfra","env":["DEEPINFRA_API_KEY"],"npm":"@ai-sdk/deepinfra","name":"Deep Infra","doc":"https://deepinfra.com/models","models":{"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.74,"cache_read":0.08},"limit":{"context":204800,"output":131072}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":204800,"output":131072}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304},"status":"deprecated"},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56,"cache_read":0.16},"limit":{"context":202752,"output":16384}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2":{"id":"MiniMaxAI/MiniMax-M2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.254,"output":1.02},"limit":{"context":262144,"output":32768}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":196608}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15,"cache_read":0.35},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":0.38,"cache_read":0.13},"limit":{"context":163840,"output":64000}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":32768}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-06","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2},"limit":{"context":131072,"output":32768}},"meta-llama/Llama-3.1-8B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-8B-Instruct-Turbo","name":"Llama 3.1 8B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.03},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-70B-Instruct-Turbo","name":"Llama 3.1 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":10000000,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1000000,"output":16384}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.6},"limit":{"context":262144,"output":66536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":16384}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":16384}},"anthropic/claude-3-7-sonnet-latest":{"id":"anthropic/claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (Latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.33},"limit":{"context":200000,"output":64000}},"anthropic/claude-4-opus":{"id":"anthropic/claude-4-opus","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5},"limit":{"context":200000,"output":32000}}}},"perplexity-agent":{"id":"perplexity-agent","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.perplexity.ai/v1","name":"Perplexity Agent","doc":"https://docs.perplexity.ai/docs/agent-api/models","models":{"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2.5},"limit":{"context":1000000,"output":32000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125,"context_over_200k":{"input":2.5,"output":15,"cache_read":0.25}},"limit":{"context":1048576,"output":65536}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2.5,"cache_read":0.0625},"limit":{"context":128000,"output":8192}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":128000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"xai/grok-4-1-fast-non-reasoning":{"id":"xai/grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}}}},"xiaomi":{"id":"xiaomi","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.xiaomimimo.com/v1","name":"Xiaomi","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":256000,"output":128000}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-16","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":256000,"output":64000}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2},"limit":{"context":1000000,"output":128000}}}},"synthetic":{"id":"synthetic","env":["SYNTHETIC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.synthetic.new/openai/v1","name":"Synthetic","doc":"https://synthetic.new/pricing","models":{"hf:MiniMaxAI/MiniMax-M2.5":{"id":"hf:MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-07","last_updated":"2026-02-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.6},"limit":{"context":191488,"output":65536}},"hf:MiniMaxAI/MiniMax-M2":{"id":"hf:MiniMaxAI/MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":196608,"output":131000}},"hf:MiniMaxAI/MiniMax-M2.1":{"id":"hf:MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":204800,"output":131072}},"hf:deepseek-ai/DeepSeek-R1":{"id":"hf:deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-R1-0528":{"id":"hf:deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 (0528)","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":8},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.1":{"id":"hf:deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.2":{"id":"hf:deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4,"cache_read":0.27,"cache_write":0},"limit":{"context":162816,"input":162816,"output":8000}},"hf:deepseek-ai/DeepSeek-V3-0324":{"id":"hf:deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 (0324)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3":{"id":"hf:deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"hf:deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:moonshotai/Kimi-K2-Instruct-0905":{"id":"hf:moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":1.2},"limit":{"context":262144,"output":32768}},"hf:moonshotai/Kimi-K2.5":{"id":"hf:moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:moonshotai/Kimi-K2-Thinking":{"id":"hf:moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"hf:openai/gpt-oss-120b":{"id":"hf:openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"hf:nvidia/Kimi-K2.5-NVFP4":{"id":"hf:nvidia/Kimi-K2.5-NVFP4","name":"Kimi K2.5 (NVFP4)","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":328000,"output":4096}},"hf:meta-llama/Llama-3.1-405B-Instruct":{"id":"hf:meta-llama/Llama-3.1-405B-Instruct","name":"Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-70B-Instruct":{"id":"hf:meta-llama/Llama-3.1-70B-Instruct","name":"Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-8B-Instruct":{"id":"hf:meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.3-70B-Instruct":{"id":"hf:meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":524000,"output":4096}},"hf:zai-org/GLM-4.7-Flash":{"id":"hf:zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-18","last_updated":"2026-01-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.06},"limit":{"context":196608,"output":65536}},"hf:zai-org/GLM-4.6":{"id":"hf:zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}},"hf:zai-org/GLM-4.7":{"id":"hf:zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}},"hf:Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"hf:Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":256000,"output":32000}}}},"nebius":{"id":"nebius","env":["NEBIUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tokenfactory.nebius.com/v1","name":"Nebius Token Factory","doc":"https://docs.tokenfactory.nebius.com/","models":{"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM-4.7 (FP8)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2,"cache_read":0.04,"cache_write":0.5},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.2,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-01","last_updated":"2026-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.1,"cache_write":1},"limit":{"context":200000,"input":200000,"output":16384}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron-3-Super-120B-A12B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"input":256000,"output":32768}},"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":4096}},"nvidia/Nemotron-Nano-V2-12b":{"id":"nvidia/Nemotron-Nano-V2-12b","name":"Nemotron-Nano-V2-12b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2,"cache_read":0.007,"cache_write":0.08},"limit":{"context":32000,"input":30000,"output":4096}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B","name":"Nemotron-3-Nano-30B-A3B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.006,"cache_write":0.075},"limit":{"context":32000,"input":30000,"output":4096}},"NousResearch/Hermes-4-405B":{"id":"NousResearch/Hermes-4-405B","name":"Hermes-4-405B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"reasoning":3,"cache_read":0.1,"cache_write":1.25},"limit":{"context":128000,"input":120000,"output":8192}},"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes-4-70B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"reasoning":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"BAAI/bge-en-icl":{"id":"BAAI/bge-en-icl","name":"BGE-ICL","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"BAAI/bge-multilingual-gemma2":{"id":"BAAI/bge-multilingual-gemma2","name":"bge-multilingual-gemma2","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":8192,"input":8192,"output":0}},"PrimeIntellect/INTELLECT-3":{"id":"PrimeIntellect/INTELLECT-3","name":"INTELLECT-3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-25","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-02-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"reasoning":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-V3-0324-fast":{"id":"deepseek-ai/DeepSeek-V3-0324-fast","name":"DeepSeek-V3-0324 (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25,"cache_read":0.075,"cache_write":0.28125},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4,"reasoning":2.4,"cache_read":0.08,"cache_write":1},"limit":{"context":128000,"input":120000,"output":32768}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45,"reasoning":0.45,"cache_read":0.03,"cache_write":0.375},"limit":{"context":163000,"input":160000,"output":16384}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5,"cache_read":0.05,"cache_write":0.1875},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-R1-0528-fast":{"id":"deepseek-ai/DeepSeek-R1-0528-fast","name":"DeepSeek R1 0528 Fast","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":8192}},"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"e5-mistral-7b-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2023-12","release_date":"2024-01-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.4,"cache_read":0.05,"cache_write":0.625},"limit":{"context":200000,"input":190000,"output":8192}},"moonshotai/Kimi-K2.5-fast":{"id":"moonshotai/Kimi-K2.5-fast","name":"Kimi-K2.5-fast","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"reasoning":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"reasoning":2.5,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":16384}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma-2-2b-it","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-07-31","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-3-27b-it-fast":{"id":"google/gemma-3-27b-it-fast","name":"Gemma-3-27b-it (Fast)","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":110000,"input":100000,"output":8192}},"google/gemma-2-9b-it-fast":{"id":"google/gemma-2-9b-it-fast","name":"Gemma-2-9b-it (Fast)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.0375},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27b-it","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":110000,"input":100000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":128000,"input":120000,"output":4096}},"meta-llama/Llama-Guard-3-8B":{"id":"meta-llama/Llama-Guard-3-8B","name":"Llama-Guard-3-8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2024-04","release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":1024}},"meta-llama/Llama-3.3-70B-Instruct-fast":{"id":"meta-llama/Llama-3.3-70B-Instruct-fast","name":"Llama-3.3-70B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct-fast":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-fast","name":"Meta-Llama-3.1-8B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3-30B-A3B-Instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3-30B-A3B-Thinking-2507","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"reasoning":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.8},"limit":{"context":262144,"output":66536}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3-Embedding-8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2025-10","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"Qwen/Qwen3-32B-fast":{"id":"Qwen/Qwen3-32B-fast","name":"Qwen3-32B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.2,"reasoning":1.2,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen2.5-Coder-7B-fast":{"id":"Qwen/Qwen2.5-Coder-7B-fast","name":"Qwen2.5-Coder-7B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-19","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"reasoning":0.6,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":124000,"output":8192}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2,"cache_read":0.005,"cache_write":0.06},"limit":{"context":128000,"input":124000,"output":4096}},"black-forest-labs/flux-dev":{"id":"black-forest-labs/flux-dev","name":"FLUX.1-dev","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}},"black-forest-labs/flux-schnell":{"id":"black-forest-labs/flux-schnell","name":"FLUX.1-schnell","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}}}},"qiniu-ai":{"id":"qiniu-ai","env":["QINIU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qnaigc.com/v1","name":"Qiniu","doc":"https://developer.qiniu.com/aitokenapi","models":{"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Claude 4.5 Haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"claude-3.5-sonnet":{"id":"claude-3.5-sonnet","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8200}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235b A22B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":64000}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":128000}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3 Max Preview","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-06","last_updated":"2025-09-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"claude-4.0-sonnet":{"id":"claude-4.0-sonnet","name":"Claude 4.0 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen-vl-max-2025-01-25":{"id":"qwen-vl-max-2025-01-25","name":"Qwen VL-MAX-2025-01-25","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"doubao-seed-1.6-thinking":{"id":"doubao-seed-1.6-thinking","name":"Doubao-Seed 1.6 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-14","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262000,"output":4096}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":4096}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":98304}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Claude 4.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen2.5-vl-7b-instruct":{"id":"qwen2.5-vl-7b-instruct","name":"Qwen 2.5 VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"doubao-seed-2.0-pro":{"id":"doubao-seed-2.0-pro","name":"Doubao Seed 2.0 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-1.6":{"id":"doubao-seed-1.6","name":"Doubao-Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"doubao-seed-2.0-mini":{"id":"doubao-seed-2.0-mini","name":"Doubao Seed 2.0 Mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"claude-4.0-opus":{"id":"claude-4.0-opus","name":"Claude 4.0 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen-Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":4096}},"gemini-3.0-pro-preview":{"id":"gemini-3.0-pro-preview","name":"Gemini 3.0 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"doubao-1.5-vision-pro":{"id":"doubao-1.5-vision-pro","name":"Doubao 1.5 Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"gemini-3.0-pro-image-preview":{"id":"gemini-3.0-pro-image-preview","name":"Gemini 3.0 Pro Image Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-22","last_updated":"2026-02-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8192}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":12000}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30b A3b Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen 2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen 3 235B A22B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-2.0-lite":{"id":"doubao-seed-2.0-lite","name":"Doubao Seed 2.0 Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"claude-4.1-opus":{"id":"claude-4.1-opus","name":"Claude 4.1 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"doubao-1.5-thinking-pro":{"id":"doubao-1.5-thinking-pro","name":"Doubao 1.5 Thinking Pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":80000}},"doubao-seed-1.6-flash":{"id":"doubao-seed-1.6-flash","name":"Doubao-Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-vl-30b-a3b-thinking":{"id":"qwen3-vl-30b-a3b-thinking","name":"Qwen3-Vl 30b A3b Thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-09","last_updated":"2026-02-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-2.0-code":{"id":"doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"qwen3-30b-a3b-thinking-2507":{"id":"qwen3-30b-a3b-thinking-2507","name":"Qwen3 30b A3b Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":126000,"output":32000}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":4096}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"gemini-3.0-flash-preview":{"id":"gemini-3.0-flash-preview","name":"Gemini 3.0 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":65536}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"kling-v2-6":{"id":"kling-v2-6","name":"Kling-V2 6","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-13","last_updated":"2026-01-13","modalities":{"input":["text","image","video"],"output":["video"]},"open_weights":false,"limit":{"context":99999999,"output":99999999}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen-max-2025-01-25":{"id":"qwen-max-2025-01-25","name":"Qwen2.5-Max-2025-01-25","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi/Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Stepfun/Step-3.5 Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":64000,"output":4096}},"deepseek/deepseek-v3.2-exp-thinking":{"id":"deepseek/deepseek-v3.2-exp-thinking","name":"DeepSeek/DeepSeek-V3.2-Exp-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek/DeepSeek-V3.1-Terminus","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-251201":{"id":"deepseek/deepseek-v3.2-251201","name":"Deepseek/DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-math-v2":{"id":"deepseek/deepseek-math-v2","name":"Deepseek/Deepseek-Math-V2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":160000,"output":160000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek/DeepSeek-V3.2-Exp","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.1-terminus-thinking":{"id":"deepseek/deepseek-v3.1-terminus-thinking","name":"DeepSeek/DeepSeek-V3.1-Terminus-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Moonshotai/Kimi-K2.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"z-ai/autoglm-phone-9b":{"id":"z-ai/autoglm-phone-9b","name":"Z-Ai/Autoglm Phone 9b","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":12800,"output":4096}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z-Ai/GLM 5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z-AI/GLM 4.6","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z-Ai/GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"stepfun-ai/gelab-zero-4b-preview":{"id":"stepfun-ai/gelab-zero-4b-preview","name":"Stepfun-Ai/Gelab Zero 4b Preview","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":8192,"output":4096}},"meituan/longcat-flash-lite":{"id":"meituan/longcat-flash-lite","name":"Meituan/Longcat-Flash-Lite","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":320000}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan/Longcat-Flash-Chat","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-05","last_updated":"2025-11-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":131072}},"x-ai/grok-4-fast-reasoning":{"id":"x-ai/grok-4-fast-reasoning","name":"X-Ai/Grok-4-Fast-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"x-AI/Grok-Code-Fast 1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-02","last_updated":"2025-09-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":10000}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"X-Ai/Grok 4.1 Fast Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":20000000,"output":2000000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"x-AI/Grok-4-Fast","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"X-Ai/Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"x-AI/Grok-4.1-Fast","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4-fast-non-reasoning":{"id":"x-ai/grok-4-fast-non-reasoning","name":"X-Ai/Grok-4-Fast-Non-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI/GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI/GPT-5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"Minimax/Minimax-M2.5 Highspeed","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax/Minimax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"Minimax/Minimax-M2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"Minimax/Minimax-M2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}}}},"ollama-cloud":{"id":"ollama-cloud","env":["OLLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ollama.com/v1","name":"Ollama Cloud","doc":"https://docs.ollama.com/cloud","models":{"glm-5":{"id":"glm-5","name":"glm-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"qwen3-coder:480b":{"id":"qwen3-coder:480b","name":"qwen3-coder:480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"nemotron-3-nano:30b":{"id":"nemotron-3-nano:30b","name":"nemotron-3-nano:30b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":131072}},"ministral-3:8b":{"id":"ministral-3:8b","name":"ministral-3:8b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2026-02-02","last_updated":"2026-02-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"gpt-oss:120b":{"id":"gpt-oss:120b","name":"gpt-oss:120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"devstral-2:123b":{"id":"devstral-2:123b","name":"devstral-2:123b","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-29","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"qwen3-vl:235b-instruct":{"id":"qwen3-vl:235b-instruct","name":"qwen3-vl:235b-instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":65536}},"minimax-m2.1":{"id":"minimax-m2.1","name":"minimax-m2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"ministral-3:14b":{"id":"ministral-3:14b","name":"ministral-3:14b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"qwen3-next:80b":{"id":"qwen3-next:80b","name":"qwen3-next:80b","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}},"kimi-k2:1t":{"id":"kimi-k2:1t","name":"kimi-k2:1t","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"gemma3:12b":{"id":"gemma3:12b","name":"gemma3:12b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"minimax-m2.7":{"id":"minimax-m2.7","name":"minimax-m2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"kimi-k2.5":{"id":"kimi-k2.5","name":"kimi-k2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"gpt-oss:20b":{"id":"gpt-oss:20b","name":"gpt-oss:20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-06-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":65536}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"ministral-3:3b":{"id":"ministral-3:3b","name":"ministral-3:3b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-10-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"qwen3.5:397b":{"id":"qwen3.5:397b","name":"qwen3.5:397b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"release_date":"2026-02-15","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":81920}},"gemma3:27b":{"id":"gemma3:27b","name":"gemma3:27b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2025-07-27","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"minimax-m2":{"id":"minimax-m2","name":"minimax-m2","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-10-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":128000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"minimax-m2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"devstral-small-2:24b":{"id":"devstral-small-2:24b","name":"devstral-small-2:24b","family":"devstral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"nemotron-3-super":{"id":"nemotron-3-super","name":"nemotron-3-super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"cogito-2.1:671b":{"id":"cogito-2.1:671b","name":"cogito-2.1:671b","family":"cogito","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-11-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":32000}},"gemma3:4b":{"id":"gemma3:4b","name":"gemma3:4b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"deepseek-v3.1:671b":{"id":"deepseek-v3.1:671b","name":"deepseek-v3.1:671b","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-21","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":163840}},"mistral-large-3:675b":{"id":"mistral-large-3:675b","name":"mistral-large-3:675b","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-02","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"rnj-1:8b":{"id":"rnj-1:8b","name":"rnj-1:8b","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":32768,"output":4096}},"qwen3-vl:235b":{"id":"qwen3-vl:235b","name":"qwen3-vl:235b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}}}},"scaleway":{"id":"scaleway","env":["SCALEWAY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.scaleway.ai/v1","name":"Scaleway","doc":"https://www.scaleway.com/en/docs/generative-apis/","models":{"voxtral-small-24b-2507":{"id":"voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"voxtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":16384}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25},"limit":{"context":260000,"output":16384}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":100000,"output":16384}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral Small 3.2 24B Instruct (2506)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":128000,"output":32768}},"qwen3-embedding-8b":{"id":"qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-25-11","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":32768,"output":4096}},"bge-multilingual-gemma2":{"id":"bge-multilingual-gemma2","name":"BGE Multilingual Gemma2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-07-26","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8191,"output":3072}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":256000,"output":16384}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":32000,"output":8196}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":128000,"output":32768}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2026-03-17","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.003,"output":0},"limit":{"context":0,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":16384}},"devstral-2-123b-instruct-2512":{"id":"devstral-2-123b-instruct-2512","name":"Devstral 2 123B Instruct (2512)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":16384}},"pixtral-12b-2409":{"id":"pixtral-12b-2409","name":"Pixtral 12B 2409","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-25","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-25","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":8192}},"gemma-3-27b-it":{"id":"gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.5},"limit":{"context":40000,"output":8192}}}},"dinference":{"id":"dinference","env":["DINFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.dinference.com/v1","name":"DInference","doc":"https://dinference.com","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.4},"limit":{"context":200000,"output":128000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08","last_updated":"2025-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0675,"output":0.27},"limit":{"context":131072,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.65},"limit":{"context":200000,"output":128000}}}},"cloudflare-ai-gateway":{"id":"cloudflare-ai-gateway","env":["CLOUDFLARE_API_TOKEN","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_GATEWAY_ID"],"npm":"ai-gateway-provider","name":"Cloudflare AI Gateway","doc":"https://developers.cloudflare.com/ai-gateway/","models":{"workers-ai/@cf/zai-org/glm-4.7-flash":{"id":"workers-ai/@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{"id":"workers-ai/@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/ibm-granite/granite-4.0-h-micro":{"id":"workers-ai/@cf/ibm-granite/granite-4.0-h-micro","name":"IBM Granite 4.0 H Micro","family":"granite","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.017,"output":0.11},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-small-en-v1.5":{"id":"workers-ai/@cf/baai/bge-small-en-v1.5","name":"BGE Small EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-large-en-v1.5":{"id":"workers-ai/@cf/baai/bge-large-en-v1.5","name":"BGE Large EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-reranker-base":{"id":"workers-ai/@cf/baai/bge-reranker-base","name":"BGE Reranker Base","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0031,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-m3":{"id":"workers-ai/@cf/baai/bge-m3","name":"BGE M3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-base-en-v1.5":{"id":"workers-ai/@cf/baai/bge-base-en-v1.5","name":"BGE Base EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.067,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/pfnet/plamo-embedding-1b":{"id":"workers-ai/@cf/pfnet/plamo-embedding-1b","name":"PLaMo Embedding 1B","family":"plamo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.019,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"id":"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":4.88},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/facebook/bart-large-cnn":{"id":"workers-ai/@cf/facebook/bart-large-cnn","name":"BART Large CNN","family":"bart","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1":{"id":"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/myshell-ai/melotts":{"id":"workers-ai/@cf/myshell-ai/melotts","name":"MyShell MeloTTS","family":"melotts","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/pipecat-ai/smart-turn-v2":{"id":"workers-ai/@cf/pipecat-ai/smart-turn-v2","name":"Pipecat Smart Turn v2","family":"smart-turn","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/moonshotai/kimi-k2.5":{"id":"workers-ai/@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/google/gemma-3-12b-it":{"id":"workers-ai/@cf/google/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwq-32b":{"id":"workers-ai/@cf/qwen/qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8":{"id":"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct":{"id":"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct","name":"Qwen 2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-embedding-0.6b":{"id":"workers-ai/@cf/qwen/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8","name":"Llama 3.1 8B Instruct FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.29},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct-awq","name":"Llama 3 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq","name":"Llama 3.1 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049,"output":0.68},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-3b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-guard-3-8b":{"id":"workers-ai/@cf/meta/llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":0.03},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-1b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.027,"output":0.2},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"id":"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast","name":"Llama 3.3 70B Instruct FP8 Fast","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.25},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.8299999999999998},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/m2m100-1.2b":{"id":"workers-ai/@cf/meta/m2m100-1.2b","name":"M2M100 1.2B","family":"m2m","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-2-7b-chat-fp16":{"id":"workers-ai/@cf/meta/llama-2-7b-chat-fp16","name":"Llama 2 7B Chat FP16","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":6.67},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.83},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct":{"id":"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-es":{"id":"workers-ai/@cf/deepgram/aura-2-es","name":"Deepgram Aura 2 (ES)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/nova-3":{"id":"workers-ai/@cf/deepgram/nova-3","name":"Deepgram Nova 3","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-en":{"id":"workers-ai/@cf/deepgram/aura-2-en","name":"Deepgram Aura 2 (EN)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-120b":{"id":"workers-ai/@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-20b":{"id":"workers-ai/@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B":{"id":"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B","name":"IndicTrans2 EN-Indic 1B","family":"indictrans","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/huggingface/distilbert-sst-2-int8":{"id":"workers-ai/@cf/huggingface/distilbert-sst-2-int8","name":"DistilBERT SST-2 INT8","family":"distilbert","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.026,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"id":"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it","name":"Gemma SEA-LION v4 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4":{"id":"openai/gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-sonnet":{"id":"anthropic/claude-3-sonnet","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-3-5-haiku":{"id":"anthropic/claude-3-5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"ai-gateway-provider"}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"kuae-cloud-coding-plan":{"id":"kuae-cloud-coding-plan","env":["KUAE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-plan-endpoint.kuaecloud.net/v1","name":"KUAE Cloud Coding Plan","doc":"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"upstage":{"id":"upstage","env":["UPSTAGE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.upstage.ai/v1/solar","name":"Upstage","doc":"https://developers.upstage.ai/docs/apis/chat","models":{"solar-pro2":{"id":"solar-pro2","name":"solar-pro2","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":65536,"output":8192}},"solar-mini":{"id":"solar-mini","name":"solar-mini","family":"solar-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-06-12","last_updated":"2025-04-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":4096}},"solar-pro3":{"id":"solar-pro3","name":"solar-pro3","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":131072,"output":8192}}}},"inception":{"id":"inception","env":["INCEPTION_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inceptionlabs.ai/v1/","name":"Inception","doc":"https://platform.inceptionlabs.ai/docs","models":{"mercury-2":{"id":"mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"mercury":{"id":"mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-06-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}},"mercury-edit":{"id":"mercury-edit","name":"Mercury Edit","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":8192}},"mercury-coder":{"id":"mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-02-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}}}},"submodel":{"id":"submodel","env":["SUBMODEL_INSTAGEN_ACCESS_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.submodel.ai/v1","name":"submodel","doc":"https://submodel.gitbook.io","models":{"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.3},"limit":{"context":262144,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":32768}}}},"minimax-cn-coding-plan":{"id":"minimax-cn-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax Coding Plan (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/coding-plan/intro","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"novita-ai":{"id":"novita-ai","env":["NOVITA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.novita.ai/openai","name":"NovitaAI","doc":"https://novita.ai/docs/guides/introduction","models":{"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai-org/glm-4.5-air":{"id":"zai-org/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/autoglm-phone-9b-multilingual":{"id":"zai-org/autoglm-phone-9b-multilingual","name":"AutoGLM-Phone-9B-Multilingual","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":65536,"output":65536}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"zai-org/glm-4.6v":{"id":"zai-org/glm-4.6v","name":"GLM 4.6V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.055},"limit":{"context":131072,"output":32768}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"Wizardlm 2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"skywork/r1v4-lite":{"id":"skywork/r1v4-lite","name":"Skywork R1V4-Lite","family":"skywork","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":65536}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"Mythomax L2 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":4096,"output":3200}},"paddlepaddle/paddleocr-vl":{"id":"paddlepaddle/paddleocr-vl","name":"PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16384,"output":16384}},"baichuan/baichuan-m2-32b":{"id":"baichuan/baichuan-m2-32b","name":"baichuan-m2-32b","family":"baichuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-12","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":131072,"output":131072}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kat Coder Pro","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-05","last_updated":"2026-01-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":128000}},"kwaipilot/kat-coder":{"id":"kwaipilot/kat-coder","name":"KAT-Coder-Pro V1(Free)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek/deepseek-v3-turbo":{"id":"deepseek/deepseek-v3-turbo","name":"DeepSeek V3 (Turbo)\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.3},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"Deepseek Prover V2 671B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":160000,"output":160000}},"deepseek/deepseek-r1-turbo":{"id":"deepseek/deepseek-r1-turbo","name":"DeepSeek R1 (Turbo)\t","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-ocr-2":{"id":"deepseek/deepseek-ocr-2","name":"deepseek/deepseek-ocr-2","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5,"cache_read":0.35},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-r1-0528-qwen3-8b":{"id":"deepseek/deepseek-r1-0528-qwen3-8b","name":"DeepSeek R1 0528 Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-05-29","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.09},"limit":{"context":128000,"output":32000}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill LLama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"Deepseek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"Deepseek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.269,"output":0.4,"cache_read":0.1345},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-ocr":{"id":"deepseek/deepseek-ocr","name":"DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"Deepseek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"baidu/ernie-4.5-vl-28b-a3b-thinking":{"id":"baidu/ernie-4.5-vl-28b-a3b-thinking","name":"ERNIE-4.5-VL-28B-A3B-Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":0.39},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":30000,"output":8000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21B-a3b":{"id":"baidu/ernie-4.5-21B-a3b","name":"ERNIE 4.5 21B A3B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"baidu/ernie-4.5-21B-a3b-thinking":{"id":"baidu/ernie-4.5-21B-a3b-thinking","name":"ERNIE-4.5-21B-A3B-Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.119,"output":0.2},"limit":{"context":98304,"output":16384}},"qwen/qwen3-4b-fp8":{"id":"qwen/qwen3-4b-fp8","name":"Qwen3 4B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":128000,"output":20000}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.58},"limit":{"context":131072,"output":16384}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":64000}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30b A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen-mt-plus":{"id":"qwen/qwen-mt-plus","name":"Qwen MT Plus","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-03","last_updated":"2025-09-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75},"limit":{"context":16384,"output":8192}},"qwen/qwen3-omni-30b-a3b-instruct":{"id":"qwen/qwen3-omni-30b-a3b-instruct","name":"Qwen3 Omni 30B A3B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","video","audio","image"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":0.4},"limit":{"context":32000,"output":8192}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"qwen/qwen3-vl-30b-a3b-thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.98,"output":3.95},"limit":{"context":131072,"output":32768}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":32768}},"qwen/qwen2.5-7b-instruct":{"id":"qwen/qwen2.5-7b-instruct","name":"Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"output":32000}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"qwen/qwen3-vl-30b-a3b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"qwen/qwen3-vl-8b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.11,"output":8.45},"limit":{"context":262144,"output":65536}},"qwen/qwen3-8b-fp8":{"id":"qwen/qwen3-8b-fp8","name":"Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":128000,"output":20000}},"qwen/qwen3-omni-30b-a3b-thinking":{"id":"qwen/qwen3-omni-30b-a3b-thinking","name":"Qwen3 Omni 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","audio","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-07","last_updated":"2024-12-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.135,"output":0.4},"limit":{"context":131072,"output":120000}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.59},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Llama3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":8192,"output":8192}},"meta-llama/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.85},"limit":{"context":1048576,"output":8192}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-07-30","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.25},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: GPT OSS 20B","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":131072,"output":32768}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"sao10k/l3-70b-euryale-v2.1":{"id":"sao10k/l3-70b-euryale-v2.1","name":"L3 70B Euryale V2.1\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2024-06-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l31-70b-euryale-v2.2":{"id":"sao10k/l31-70b-euryale-v2.2","name":"L31 70B Euryale V2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3-8b-lunaris":{"id":"sao10k/l3-8b-lunaris","name":"Sao10k L3 8B Lunaris\t","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":8192}},"sao10k/L3-8B-Stheno-v3.2":{"id":"sao10k/L3-8B-Stheno-v3.2","name":"L3 8B Stheno V3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":32000}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.3},"limit":{"context":262144,"output":32000}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}}}},"opencode":{"id":"opencode","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/v1","name":"OpenCode Zen","doc":"https://opencode.ai/docs/zen","models":{"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"trinity-large-preview-free":{"id":"trinity-large-preview-free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072},"status":"deprecated"},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"kimi-k2.5-free":{"id":"kimi-k2.5-free","name":"Kimi K2.5 Free","family":"kimi-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":262144},"status":"deprecated"},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic"}},"grok-code":{"id":"grok-code","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-20","last_updated":"2025-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":256000,"output":256000},"status":"deprecated"},"nemotron-3-super-free":{"id":"nemotron-3-super-free","name":"Nemotron 3 Super Free","family":"nemotron-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}},"claude-3-5-haiku":{"id":"claude-3-5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"mimo-v2-flash-free":{"id":"mimo-v2-flash-free","name":"MiMo V2 Flash Free","family":"mimo-flash-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":65536},"status":"deprecated"},"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":262144,"output":65536},"status":"deprecated"},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"mimo-v2-omni-free":{"id":"mimo-v2-omni-free","name":"MiMo V2 Omni Free","family":"mimo-omni-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.08},"limit":{"context":262144,"output":65536}},"minimax-m2.1-free":{"id":"minimax-m2.1-free","name":"MiniMax M2.1 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated","provider":{"npm":"@ai-sdk/anthropic"}},"mimo-v2-pro-free":{"id":"mimo-v2-pro-free","name":"MiMo V2 Pro Free","family":"mimo-pro-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1048576,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"glm-5-free":{"id":"glm-5-free","name":"GLM-5 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"big-pickle":{"id":"big-pickle","name":"Big Pickle","family":"big-pickle","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.5-free":{"id":"minimax-m2.5-free","name":"MiniMax M2.5 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"glm-4.7-free":{"id":"glm-4.7-free","name":"GLM-4.7 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gemini-3-pro":{"id":"gemini-3-pro","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"status":"deprecated","provider":{"npm":"@ai-sdk/google"}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}}}},"poe":{"id":"poe","env":["POE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.poe.com/v1","name":"Poe","doc":"https://creator.poe.com/docs/external-applications/openai-compatible-api","models":{"stabilityai/stablediffusionxl":{"id":"stabilityai/stablediffusionxl","name":"StableDiffusionXL","family":"stable-diffusion","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-07-09","last_updated":"2023-07-09","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":200,"output":0}},"ideogramai/ideogram-v2":{"id":"ideogramai/ideogram-v2","name":"Ideogram-v2","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-21","last_updated":"2024-08-21","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram":{"id":"ideogramai/ideogram","name":"Ideogram","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a-turbo":{"id":"ideogramai/ideogram-v2a-turbo","name":"Ideogram-v2a-Turbo","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a":{"id":"ideogramai/ideogram-v2a","name":"Ideogram-v2a","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"novita/glm-4.7-flash":{"id":"novita/glm-4.7-flash","name":"glm-4.7-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":65500}},"novita/glm-4.7-n":{"id":"novita/glm-4.7-n","name":"glm-4.7-n","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/glm-4.6":{"id":"novita/glm-4.6","name":"GLM-4.6","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"novita/minimax-m2.1":{"id":"novita/minimax-m2.1","name":"minimax-m2.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/kimi-k2.5":{"id":"novita/kimi-k2.5","name":"kimi-k2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":262144}},"novita/glm-4.7":{"id":"novita/glm-4.7","name":"glm-4.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/kimi-k2-thinking":{"id":"novita/kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":0}},"novita/glm-4.6v":{"id":"novita/glm-4.6v","name":"glm-4.6v","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":32768}},"google/gemini-3.1-pro":{"id":"google/gemini-3.1-pro","name":"Gemini-3.1-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"google/lyria":{"id":"google/lyria","name":"Lyria","family":"lyria","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini-3-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-07","last_updated":"2025-10-07","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04},"limit":{"context":1048576,"output":65536}},"google/imagen-3":{"id":"google/imagen-3","name":"Imagen-3","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini-2.5-Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-26","last_updated":"2025-04-26","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":1065535,"output":65535}},"google/veo-3.1":{"id":"google/veo-3.1","name":"Veo-3.1","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-3-fast":{"id":"google/imagen-3-fast","name":"Imagen-3-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-17","last_updated":"2024-10-17","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/nano-banana-pro":{"id":"google/nano-banana-pro","name":"Nano-Banana-Pro","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":65536,"output":0}},"google/veo-2":{"id":"google/veo-2","name":"Veo-2","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-02","last_updated":"2024-12-02","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-4-ultra":{"id":"google/imagen-4-ultra","name":"Imagen-4-Ultra","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini-2.5-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-19","last_updated":"2025-06-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":1024000,"output":64000}},"google/nano-banana":{"id":"google/nano-banana","name":"Nano-Banana","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":65536,"output":0}},"google/veo-3.1-fast":{"id":"google/veo-3.1-fast","name":"Veo-3.1-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-deep-research":{"id":"google/gemini-deep-research","name":"gemini-deep-research","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6},"limit":{"context":1048576,"output":0}},"google/veo-3":{"id":"google/veo-3","name":"Veo-3","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-4":{"id":"google/imagen-4","name":"Imagen-4","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini-2.0-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.052,"output":0.21},"limit":{"context":990000,"output":8192}},"google/gemini-3.1-flash-lite":{"id":"google/gemini-3.1-flash-lite","name":"Gemini-3.1-Flash-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro":{"id":"google/gemini-3-pro","name":"Gemini-3-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6,"cache_read":0.16},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini-2.5-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.87,"output":7,"cache_read":0.087},"limit":{"context":1065535,"output":65535}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini-2.0-Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.42},"limit":{"context":990000,"output":8192}},"google/veo-3-fast":{"id":"google/veo-3-fast","name":"Veo-3-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/imagen-4-fast":{"id":"google/imagen-4-fast","name":"Imagen-4-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"lumalabs/ray2":{"id":"lumalabs/ray2","name":"Ray2","family":"ray","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":5000,"output":0}},"poetools/claude-code":{"id":"poetools/claude-code","name":"claude-code","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-10","last_updated":"2026-02-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":110},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54,"cache_read":0.068},"limit":{"context":124096,"output":4096}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":36,"cache_read":2.2},"limit":{"context":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2024-12-18","last_updated":"2024-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":54},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5-Chat","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-4-classic":{"id":"openai/gpt-4-classic","name":"GPT-4-Classic","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-25","last_updated":"2024-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5.3-instant":{"id":"openai/gpt-5.3-instant","name":"GPT-5.3-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-image-1.5":{"id":"openai/gpt-image-1.5","name":"gpt-image-1.5","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36,"cache_read":0.022},"limit":{"context":1047576,"output":32768}},"openai/gpt-image-1-mini":{"id":"openai/gpt-image-1-mini","name":"GPT-Image-1-Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/sora-2-pro":{"id":"openai/sora-2-pro","name":"Sora-2-Pro","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":16384,"output":2048}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":1047576,"output":32768}},"openai/gpt-4o-aug":{"id":"openai/gpt-4o-aug","name":"GPT-4o-Aug","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-21","last_updated":"2024-11-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9,"cache_read":1.1},"limit":{"context":128000,"output":8192}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18,"output":72},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":27},"limit":{"context":128000,"output":4096}},"openai/gpt-image-1":{"id":"openai/gpt-image-1","name":"GPT-Image-1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/sora-2":{"id":"openai/sora-2","name":"Sora-2","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-3.5-turbo-raw":{"id":"openai/gpt-3.5-turbo-raw","name":"GPT-3.5-Turbo-Raw","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":4524,"output":2048}},"openai/gpt-4o-mini-search":{"id":"openai/gpt-4o-mini-search","name":"GPT-4o-mini-Search","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54},"limit":{"context":128000,"output":8192}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4,"cache_read":0.25},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.36,"output":1.4,"cache_read":0.09},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["image"]},"open_weights":false,"cost":{"input":2.2,"output":14,"cache_read":0.22},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":27,"output":160},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/o1-pro":{"id":"openai/o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":140,"output":540},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT-4o-Latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":14},"limit":{"context":128000,"output":8192}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":19,"output":150},"limit":{"context":400000,"output":128000}},"openai/dall-e-3":{"id":"openai/dall-e-3","name":"DALL-E-3","family":"dall-e","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":800,"output":0}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-search":{"id":"openai/gpt-4o-search","name":"GPT-4o-Search","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9},"limit":{"context":128000,"output":8192}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4-Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.1,"cache_read":0.018},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4-classic-0314":{"id":"openai/gpt-4-classic-0314","name":"GPT-4-Classic-0314","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-26","last_updated":"2024-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36,"cache_read":0.0045},"limit":{"context":400000,"output":128000}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5-Turbo-Instruct","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-20","last_updated":"2023-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.8},"limit":{"context":3500,"output":1024}},"openai/gpt-5.2-instant":{"id":"openai/gpt-5.2-instant","name":"GPT-5.2-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"output":16384}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"o3-mini-high","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":4,"cache_read":0.068},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1-Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"topazlabs-co/topazlabs":{"id":"topazlabs-co/topazlabs","name":"TopazLabs","family":"topazlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":204,"output":0}},"runwayml/runway":{"id":"runwayml/runway","name":"Runway","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"runwayml/runway-gen-4-turbo":{"id":"runwayml/runway-gen-4-turbo","name":"Runway-Gen-4-Turbo","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-09","last_updated":"2025-05-09","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"anthropic/claude-sonnet-3.5-june":{"id":"anthropic/claude-sonnet-3.5-june","name":"Claude-Sonnet-3.5-June","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-18","last_updated":"2024-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude-Opus-4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":196608,"output":32000}},"anthropic/claude-sonnet-3.5":{"id":"anthropic/claude-sonnet-3.5","name":"Claude-Sonnet-3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-3":{"id":"anthropic/claude-haiku-3","name":"Claude-Haiku-3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-09","last_updated":"2024-03-09","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.1,"cache_read":0.021,"cache_write":0.26},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-3.5":{"id":"anthropic/claude-haiku-3.5","name":"Claude-Haiku-3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":3.4,"cache_read":0.068,"cache_write":0.85},"limit":{"context":189096,"output":8192}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude-Sonnet-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude-Haiku-4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":4.3,"cache_read":0.085,"cache_write":1.1},"limit":{"context":192000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude-Opus-4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-21","last_updated":"2025-11-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":196608,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude-Opus-4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":192512,"output":28672}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude-Sonnet-4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude-Sonnet-4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":32768}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude-Opus-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":983040,"output":128000}},"anthropic/claude-sonnet-3.7":{"id":"anthropic/claude-sonnet-3.7","name":"Claude-Sonnet-3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":196608,"output":128000}},"trytako/tako":{"id":"trytako/tako","name":"Tako","family":"tako","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2048,"output":0}},"elevenlabs/elevenlabs-music":{"id":"elevenlabs/elevenlabs-music","name":"ElevenLabs-Music","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-29","last_updated":"2025-08-29","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":2000,"output":0}},"elevenlabs/elevenlabs-v3":{"id":"elevenlabs/elevenlabs-v3","name":"ElevenLabs-v3","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"elevenlabs/elevenlabs-v2.5-turbo":{"id":"elevenlabs/elevenlabs-v2.5-turbo","name":"ElevenLabs-v2.5-Turbo","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-28","last_updated":"2024-10-28","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"cerebras/llama-3.1-8b-cs":{"id":"cerebras/llama-3.1-8b-cs","name":"llama-3.1-8b-cs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/gpt-oss-120b-cs":{"id":"cerebras/gpt-oss-120b-cs","name":"gpt-oss-120b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-235b-2507-cs":{"id":"cerebras/qwen3-235b-2507-cs","name":"qwen3-235b-2507-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/llama-3.3-70b-cs":{"id":"cerebras/llama-3.3-70b-cs","name":"llama-3.3-70b-cs","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-32b-cs":{"id":"cerebras/qwen3-32b-cs","name":"qwen3-32b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok-4-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok-4.1-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok-4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":128000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok-4.1-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok-4-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}}}},"amazon-bedrock":{"id":"amazon-bedrock","env":["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_REGION","AWS_BEARER_TOKEN_BEDROCK"],"npm":"@ai-sdk/amazon-bedrock","name":"Amazon Bedrock","doc":"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html","models":{"deepseek.r1-v1:0":{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"meta.llama3-1-70b-instruct-v1:0":{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"qwen.qwen3-coder-480b-a35b-v1:0":{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.8},"limit":{"context":131072,"output":65536}},"eu.anthropic.claude-sonnet-4-6":{"id":"eu.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"eu.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (EU)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"mistral.mistral-large-3-675b-instruct":{"id":"mistral.mistral-large-3-675b-instruct","name":"Mistral Large 3","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":8192}},"openai.gpt-oss-120b-1:0":{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-opus-4-20250514-v1:0":{"id":"us.anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"nvidia.nemotron-nano-12b-v2":{"id":"nvidia.nemotron-nano-12b-v2","name":"NVIDIA Nemotron Nano 12B v2 VL BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-7-sonnet-20250219-v1:0":{"id":"anthropic.claude-3-7-sonnet-20250219-v1:0","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic.claude-sonnet-4-6":{"id":"anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"minimax.minimax-m2.1":{"id":"minimax.minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"global.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"global.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"mistral.ministral-3-8b-instruct":{"id":"mistral.ministral-3-8b-instruct","name":"Ministral 3 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":4096}},"openai.gpt-oss-safeguard-20b":{"id":"openai.gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.2},"limit":{"context":128000,"output":4096}},"amazon.nova-lite-v1:0":{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"mistral.pixtral-large-2502-v1:0":{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":8192}},"google.gemma-3-12b-it":{"id":"google.gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"meta.llama3-1-8b-instruct-v1:0":{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":4096}},"mistral.devstral-2-123b":{"id":"mistral.devstral-2-123b","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":8192}},"anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"meta.llama4-maverick-17b-instruct-v1:0":{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.97},"limit":{"context":1000000,"output":16384}},"mistral.ministral-3-14b-instruct":{"id":"mistral.ministral-3-14b-instruct","name":"Ministral 14B 3.0","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"minimax.minimax-m2":{"id":"minimax.minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204608,"output":128000}},"amazon.nova-micro-v1:0":{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"anthropic.claude-3-5-sonnet-20241022-v2:0":{"id":"anthropic.claude-3-5-sonnet-20241022-v2:0","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"nvidia.nemotron-nano-3-30b":{"id":"nvidia.nemotron-nano-3-30b","name":"NVIDIA Nemotron Nano 3 30B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":128000,"output":4096}},"anthropic.claude-sonnet-4-20250514-v1:0":{"id":"anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"qwen.qwen3-vl-235b-a22b":{"id":"qwen.qwen3-vl-235b-a22b","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"global.anthropic.claude-opus-4-6-v1":{"id":"global.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"writer.palmyra-x4-v1:0":{"id":"writer.palmyra-x4-v1:0","name":"Palmyra X4","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":122880,"output":8192}},"minimax.minimax-m2.5":{"id":"minimax.minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":98304}},"amazon.nova-pro-v1:0":{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"us.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"us.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"meta.llama3-2-90b-instruct-v1:0":{"id":"meta.llama3-2-90b-instruct-v1:0","name":"Llama 3.2 90B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-opus-4-6-v1":{"id":"us.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"google.gemma-3-4b-it":{"id":"google.gemma-3-4b-it","name":"Gemma 3 4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.08},"limit":{"context":128000,"output":4096}},"anthropic.claude-opus-4-6-v1":{"id":"anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"zai.glm-4.7-flash":{"id":"zai.glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":131072}},"anthropic.claude-opus-4-20250514-v1:0":{"id":"anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"global.anthropic.claude-sonnet-4-6":{"id":"global.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"meta.llama3-2-1b-instruct-v1:0":{"id":"meta.llama3-2-1b-instruct-v1:0","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":4096}},"anthropic.claude-opus-4-1-20250805-v1:0":{"id":"anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"meta.llama4-scout-17b-instruct-v1:0":{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":3500000,"output":16384}},"deepseek.v3.2":{"id":"deepseek.v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":1.85},"limit":{"context":163840,"output":81920}},"deepseek.v3-v1:0":{"id":"deepseek.v3-v1:0","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":163840,"output":81920}},"mistral.ministral-3-3b-instruct":{"id":"mistral.ministral-3-3b-instruct","name":"Ministral 3 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":256000,"output":8192}},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (Global)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"nvidia.nemotron-nano-9b-v2":{"id":"nvidia.nemotron-nano-9b-v2","name":"NVIDIA Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.23},"limit":{"context":128000,"output":4096}},"writer.palmyra-x5-v1:0":{"id":"writer.palmyra-x5-v1:0","name":"Palmyra X5","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"meta.llama3-3-70b-instruct-v1:0":{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"zai.glm-4.7":{"id":"zai.glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"moonshot.kimi-k2-thinking":{"id":"moonshot.kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"output":256000}},"anthropic.claude-3-haiku-20240307-v1:0":{"id":"anthropic.claude-3-haiku-20240307-v1:0","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-02","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25},"limit":{"context":200000,"output":4096}},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"openai.gpt-oss-20b-1:0":{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-sonnet-4-6":{"id":"us.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"meta.llama3-2-11b-instruct-v1:0":{"id":"meta.llama3-2-11b-instruct-v1:0","name":"Llama 3.2 11B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":4096}},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"eu.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"meta.llama3-1-405b-instruct-v1:0":{"id":"meta.llama3-1-405b-instruct-v1:0","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":2.4},"limit":{"context":128000,"output":4096}},"qwen.qwen3-next-80b-a3b":{"id":"qwen.qwen3-next-80b-a3b","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"us.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"us.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"qwen.qwen3-coder-30b-a3b-v1:0":{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":131072}},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"us.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (US)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"qwen.qwen3-235b-a22b-2507-v1:0":{"id":"qwen.qwen3-235b-a22b-2507-v1:0","name":"Qwen3 235B A22B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":131072}},"openai.gpt-oss-safeguard-120b":{"id":"openai.gpt-oss-safeguard-120b","name":"GPT OSS Safeguard 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-5-sonnet-20240620-v1:0":{"id":"anthropic.claude-3-5-sonnet-20240620-v1:0","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"mistral.voxtral-small-24b-2507":{"id":"mistral.voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"mistral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":8192}},"anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"meta.llama3-2-3b-instruct-v1:0":{"id":"meta.llama3-2-3b-instruct-v1:0","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":131000,"output":4096}},"google.gemma-3-27b-it":{"id":"google.gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-27","last_updated":"2025-07-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":202752,"output":8192}},"us.anthropic.claude-opus-4-1-20250805-v1:0":{"id":"us.anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"global.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-3-5-haiku-20241022-v1:0":{"id":"anthropic.claude-3-5-haiku-20241022-v1:0","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"zai.glm-5":{"id":"zai.glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":101376}},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"eu.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-opus-4-5-20251101-v1:0":{"id":"anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"nvidia.nemotron-super-3-120b":{"id":"nvidia.nemotron-super-3-120b","name":"NVIDIA Nemotron 3 Super 120B A12B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.65},"limit":{"context":262144,"output":131072}},"eu.anthropic.claude-opus-4-6-v1":{"id":"eu.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"amazon.nova-premier-v1:0":{"id":"amazon.nova-premier-v1:0","name":"Nova Premier","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":16384}},"amazon.nova-2-lite-v1:0":{"id":"amazon.nova-2-lite-v1:0","name":"Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":2.75},"limit":{"context":128000,"output":4096}},"qwen.qwen3-32b-v1:0":{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":16384,"output":16384}},"mistral.magistral-small-2509":{"id":"mistral.magistral-small-2509","name":"Magistral Small 1.2","family":"magistral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":40000}},"moonshotai.kimi-k2.5":{"id":"moonshotai.kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":256000,"output":256000}},"mistral.voxtral-mini-3b-2507":{"id":"mistral.voxtral-mini-3b-2507","name":"Voxtral Mini 3B 2507","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":4096}},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"alibaba-coding-plan-cn":{"id":"alibaba-coding-plan-cn","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan (China)","doc":"https://help.aliyun.com/zh/model-studio/coding-plan","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"output":24576}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"minimax-cn":{"id":"minimax-cn","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/guides/quickstart","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"bailing":{"id":"bailing","env":["BAILING_API_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tbox.cn/api/llm/v1/chat/completions","name":"Bailing","doc":"https://alipaytbox.yuque.com/sxs0ba/ling/intro","models":{"Ring-1T":{"id":"Ring-1T","name":"Ring-1T","family":"ring","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}},"Ling-1T":{"id":"Ling-1T","name":"Ling-1T","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}}}},"azure-cognitive-services":{"id":"azure-cognitive-services","env":["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME","AZURE_COGNITIVE_SERVICES_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure Cognitive Services","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}}}},"alibaba":{"id":"alibaba","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope-intl.aliyuncs.com/compatible-mode/v1","name":"Alibaba","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.63},"limit":{"context":131072,"output":8192}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":6},"limit":{"context":131072,"output":32768}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.5,"output":7.5},"limit":{"context":262144,"output":65536}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4,"reasoning":4.2},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":1000000,"output":65536}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8,"reasoning":2.4},"limit":{"context":131072,"output":32768}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.035},"limit":{"context":53248,"output":4096}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":6.4},"limit":{"context":32768,"output":8192}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2,"reasoning":0.5},"limit":{"context":1000000,"output":16384}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.175,"output":0.7},"limit":{"context":131072,"output":8192}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.8,"output":8.4},"limit":{"context":131072,"output":8192}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4},"limit":{"context":131072,"output":8192}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.7,"reasoning":2.1},"limit":{"context":131072,"output":8192}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6,"reasoning":3.6},"limit":{"context":262144,"output":65536}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4.8},"limit":{"context":131072,"output":8192}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.1,"output":0.4,"input_audio":6.76},"limit":{"context":32768,"output":2048}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.05},"limit":{"context":131072,"output":8192}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.27,"output":1.07,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.25},"limit":{"context":262144,"output":65536}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.07,"output":0.27,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.46,"output":7.37},"limit":{"context":16384,"output":8192}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.6,"reasoning":4.8},"limit":{"context":262144,"output":32768}},"qwen3-livetranslate-flash-realtime":{"id":"qwen3-livetranslate-flash-realtime","name":"Qwen3-LiveTranslate Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":10,"output":10,"input_audio":10,"output_audio":38},"limit":{"context":53248,"output":4096}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"reasoning":4},"limit":{"context":1000000,"output":32768}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.43,"output":1.66,"input_audio":3.81,"output_audio":15.11},"limit":{"context":65536,"output":16384}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":1000000,"output":32768}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":131072,"output":8192}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.52,"output":1.99,"input_audio":4.57,"output_audio":18.13},"limit":{"context":65536,"output":16384}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":34096,"output":4096}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":2.4},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":32768}},"qwen-plus-character-ja":{"id":"qwen-plus-character-ja","name":"Qwen Plus Character (Japanese)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.4},"limit":{"context":8192,"output":512}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.49},"limit":{"context":16384,"output":8192}}}},"cloudflare-workers-ai":{"id":"cloudflare-workers-ai","env":["CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1","name":"Cloudflare Workers AI","doc":"https://developers.cloudflare.com/workers-ai/models/","models":{"@cf/zai-org/glm-4.7-flash":{"id":"@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"@cf/nvidia/nemotron-3-120b-a12b":{"id":"@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"@cf/ibm-granite/granite-4.0-h-micro":{"id":"@cf/ibm-granite/granite-4.0-h-micro","name":"IBM Granite 4.0 H Micro","family":"granite","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.017,"output":0.11},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-small-en-v1.5":{"id":"@cf/baai/bge-small-en-v1.5","name":"BGE Small EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-large-en-v1.5":{"id":"@cf/baai/bge-large-en-v1.5","name":"BGE Large EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-reranker-base":{"id":"@cf/baai/bge-reranker-base","name":"BGE Reranker Base","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0031,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-m3":{"id":"@cf/baai/bge-m3","name":"BGE M3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"@cf/baai/bge-base-en-v1.5":{"id":"@cf/baai/bge-base-en-v1.5","name":"BGE Base EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.067,"output":0},"limit":{"context":128000,"output":16384}},"@cf/pfnet/plamo-embedding-1b":{"id":"@cf/pfnet/plamo-embedding-1b","name":"PLaMo Embedding 1B","family":"plamo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.019,"output":0},"limit":{"context":128000,"output":16384}},"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"id":"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":4.88},"limit":{"context":128000,"output":16384}},"@cf/facebook/bart-large-cnn":{"id":"@cf/facebook/bart-large-cnn","name":"BART Large CNN","family":"bart","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/mistral/mistral-7b-instruct-v0.1":{"id":"@cf/mistral/mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":128000,"output":16384}},"@cf/myshell-ai/melotts":{"id":"@cf/myshell-ai/melotts","name":"MyShell MeloTTS","family":"melotts","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/pipecat-ai/smart-turn-v2":{"id":"@cf/pipecat-ai/smart-turn-v2","name":"Pipecat Smart Turn v2","family":"smart-turn","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/moonshotai/kimi-k2.5":{"id":"@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"@cf/google/gemma-3-12b-it":{"id":"@cf/google/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwq-32b":{"id":"@cf/qwen/qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwen3-30b-a3b-fp8":{"id":"@cf/qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwen2.5-coder-32b-instruct":{"id":"@cf/qwen/qwen2.5-coder-32b-instruct","name":"Qwen 2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"@cf/qwen/qwen3-embedding-0.6b":{"id":"@cf/qwen/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.1-8b-instruct-fp8":{"id":"@cf/meta/llama-3.1-8b-instruct-fp8","name":"Llama 3.1 8B Instruct FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.29},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3-8b-instruct-awq":{"id":"@cf/meta/llama-3-8b-instruct-awq","name":"Llama 3 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.1-8b-instruct-awq":{"id":"@cf/meta/llama-3.1-8b-instruct-awq","name":"Llama 3.1 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.2-11b-vision-instruct":{"id":"@cf/meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049,"output":0.68},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.2-3b-instruct":{"id":"@cf/meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-guard-3-8b":{"id":"@cf/meta/llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":0.03},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.2-1b-instruct":{"id":"@cf/meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.027,"output":0.2},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"id":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","name":"Llama 3.3 70B Instruct FP8 Fast","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.25},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3.1-8b-instruct":{"id":"@cf/meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.8299999999999998},"limit":{"context":128000,"output":16384}},"@cf/meta/m2m100-1.2b":{"id":"@cf/meta/m2m100-1.2b","name":"M2M100 1.2B","family":"m2m","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-2-7b-chat-fp16":{"id":"@cf/meta/llama-2-7b-chat-fp16","name":"Llama 2 7B Chat FP16","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":6.67},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-3-8b-instruct":{"id":"@cf/meta/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.83},"limit":{"context":128000,"output":16384}},"@cf/mistralai/mistral-small-3.1-24b-instruct":{"id":"@cf/mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"@cf/deepgram/aura-2-es":{"id":"@cf/deepgram/aura-2-es","name":"Deepgram Aura 2 (ES)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/deepgram/nova-3":{"id":"@cf/deepgram/nova-3","name":"Deepgram Nova 3","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/deepgram/aura-2-en":{"id":"@cf/deepgram/aura-2-en","name":"Deepgram Aura 2 (EN)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"@cf/openai/gpt-oss-120b":{"id":"@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"@cf/openai/gpt-oss-20b":{"id":"@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"@cf/ai4bharat/indictrans2-en-indic-1B":{"id":"@cf/ai4bharat/indictrans2-en-indic-1B","name":"IndicTrans2 EN-Indic 1B","family":"indictrans","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"@cf/huggingface/distilbert-sst-2-int8":{"id":"@cf/huggingface/distilbert-sst-2-int8","name":"DistilBERT SST-2 INT8","family":"distilbert","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.026,"output":0},"limit":{"context":128000,"output":16384}},"@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"id":"@cf/aisingapore/gemma-sea-lion-v4-27b-it","name":"Gemma SEA-LION v4 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}}}},"groq":{"id":"groq","env":["GROQ_API_KEY"],"npm":"@ai-sdk/groq","name":"Groq","doc":"https://console.groq.com/docs/models","models":{"llama3-70b-8192":{"id":"llama3-70b-8192","name":"Llama 3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":8192,"output":8192},"status":"deprecated"},"qwen-qwq-32b":{"id":"qwen-qwq-32b","name":"Qwen QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-27","last_updated":"2024-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.39},"limit":{"context":131072,"output":16384},"status":"deprecated"},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":131072,"output":131072}},"llama-guard-3-8b":{"id":"llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":0.99},"limit":{"context":131072,"output":8192},"status":"deprecated"},"llama3-8b-8192":{"id":"llama3-8b-8192","name":"Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":8192,"output":8192},"status":"deprecated"},"mistral-saba-24b":{"id":"mistral-saba-24b","name":"Mistral Saba 24B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-02-06","last_updated":"2025-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.79,"output":0.79},"limit":{"context":32768,"output":32768},"status":"deprecated"},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":131072,"output":32768}},"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11-08","release_date":"2024-12-23","last_updated":"2024-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":16384}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.34},"limit":{"context":131072,"output":8192}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":131072,"output":1024}},"meta-llama/llama-4-maverick-17b-128e-instruct":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}}}},"wandb":{"id":"wandb","env":["WANDB_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inference.wandb.ai/v1","name":"Weights & Biases","doc":"https://docs.wandb.ai/guides/integrations/inference/","models":{"zai-org/GLM-5-FP8":{"id":"zai-org/GLM-5-FP8","name":"GLM 5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":200000,"output":200000}},"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8":{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8","name":"NVIDIA Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"microsoft/Phi-4-mini-instruct":{"id":"microsoft/Phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.35},"limit":{"context":128000,"output":128000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":161000,"output":161000}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.85},"limit":{"context":262144,"output":262144}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":64000,"output":64000}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":128000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1.5},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":131072}},"OpenPipe/Qwen3-14B-Instruct":{"id":"OpenPipe/Qwen3-14B-Instruct","name":"OpenPipe Qwen3 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":32768,"output":32768}}}},"aihubmix":{"id":"aihubmix","env":["AIHUBMIX_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://aihubmix.com/v1","name":"AIHubMix","doc":"https://docs.aihubmix.com","models":{"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.12},"limit":{"context":262144,"output":262144}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":7,"output":28,"cache_read":3.5},"limit":{"context":400000,"output":128000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":2.82},"limit":{"context":204800,"output":131072}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.82,"output":3.29},"limit":{"context":262144,"output":131000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"coding-glm-4.7-free":{"id":"coding-glm-4.7-free","name":"Coding GLM 4.7 Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"coding-minimax-m2.1-free":{"id":"coding-minimax-m2.1-free","name":"Coding MiniMax M2.1 Free","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.02},"limit":{"context":1000000,"output":65000}},"claude-opus-4-6-think":{"id":"claude-opus-4-6-think","name":"Claude Opus 4.6 Think","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.55},"limit":{"context":262144,"input":262144,"output":65536}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"gemini-3-pro-preview-search":{"id":"gemini-3-pro-preview-search","name":"Gemini 3 Pro Preview Search","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"deepseek-v3.2-think":{"id":"deepseek-v3.2-think","name":"DeepSeek-V3.2-Think","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"Kimi-K2-0905":{"id":"Kimi-K2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":1.37},"limit":{"context":262144,"output":65536}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-09","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":65536}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":5.5,"cache_read":0.11,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":2.8},"limit":{"context":262144,"output":262144}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.66},"limit":{"context":1000000,"output":65536}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":64000}},"deepseek-v3.2-fast":{"id":"deepseek-v3.2-fast","name":"DeepSeek-V3.2-Fast","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3.29},"limit":{"context":128000,"output":128000}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.41},"limit":{"context":128000,"output":32768}},"coding-glm-4.7":{"id":"coding-glm-4.7","name":"Coding-GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"coding-glm-5-free":{"id":"coding-glm-5-free","name":"Coding-GLM-5-Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.31},"limit":{"context":2000000,"output":65000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5-Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.25},"limit":{"context":128000,"output":16384}},"claude-sonnet-4-6-think":{"id":"claude-sonnet-4-6-think","name":"Claude Sonnet 4.6 Think","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"minimax-coding-plan":{"id":"minimax-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax Coding Plan (minimax.io)","doc":"https://platform.minimax.io/docs/coding-plan/intro","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"kimi-for-coding":{"id":"kimi-for-coding","env":["KIMI_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.kimi.com/coding/v1","name":"Kimi For Coding","doc":"https://www.kimi.com/coding/docs/en/third-party-agents.html","models":{"k2p5":{"id":"k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}}}},"mistral":{"id":"mistral","env":["MISTRAL_API_KEY"],"npm":"@ai-sdk/mistral","name":"Mistral","doc":"https://docs.mistral.ai/getting-started/models/","models":{"devstral-medium-2507":{"id":"devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"labs-devstral-small-2512":{"id":"labs-devstral-small-2512","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"devstral-medium-latest":{"id":"devstral-medium-latest","name":"Devstral 2 (latest)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"open-mistral-7b":{"id":"open-mistral-7b","name":"Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.25},"limit":{"context":8000,"output":8000}},"mistral-small-2506":{"id":"mistral-small-2506","name":"Mistral Small 3.2","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"codestral-latest":{"id":"codestral-latest","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"ministral-8b-latest":{"id":"ministral-8b-latest","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"magistral-small":{"id":"magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral-large-2512":{"id":"mistral-large-2512","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"ministral-3b-latest":{"id":"ministral-3b-latest","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"mistral-embed":{"id":"mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8000,"output":3072}},"devstral-small-2505":{"id":"devstral-small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"pixtral-12b":{"id":"pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"open-mixtral-8x7b":{"id":"open-mixtral-8x7b","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"output":32000}},"pixtral-large-latest":{"id":"pixtral-large-latest","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistral-large-latest":{"id":"mistral-large-latest","name":"Mistral Large (latest)","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"mistral-medium-2508":{"id":"mistral-medium-2508","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 2.1","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":16384}},"mistral-small-latest":{"id":"mistral-small-latest","name":"Mistral Small (latest)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2024-09-01","last_updated":"2024-09-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"open-mixtral-8x22b":{"id":"open-mixtral-8x22b","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"mistral-medium-latest":{"id":"mistral-medium-latest","name":"Mistral Medium (latest)","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":16384}},"devstral-small-2507":{"id":"devstral-small-2507","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"magistral-medium-latest":{"id":"magistral-medium-latest","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}}}},"abacus":{"id":"abacus","env":["ABACUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://routellm.abacus.ai/v1","name":"Abacus","doc":"https://abacus.ai/help/api","models":{"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"grok-4-0709":{"id":"grok-4-0709","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":16384}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"output":16384}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048576,"output":65536}},"gpt-5.3-codex-xhigh":{"id":"gpt-5.3-codex-xhigh","name":"GPT-5.3 Codex XHigh","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"output":100000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"output":32768}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":32768}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"output":32768}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":200000,"output":100000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048576,"output":65536}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"output":32768}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":128000,"output":32768}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"input":922000,"output":128000}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo Preview","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":8},"limit":{"context":256000,"output":8192}},"qwen-2.5-coder-32b":{"id":"qwen-2.5-coder-32b","name":"Qwen 2.5 Coder 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.79,"output":0.79},"limit":{"context":128000,"output":8192}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"route-llm":{"id":"route-llm","name":"Route LLM","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":16384}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":131072,"output":16384}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":128000,"output":8192}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.66},"limit":{"context":128000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":128000,"output":4096}},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","name":"Llama 3.1 405B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":3.5},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.59},"limit":{"context":1000000,"output":32768}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"Qwen/qwen3-coder-480b-a35b-instruct":{"id":"Qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":128000,"output":8192}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":128000,"output":8192}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.6},"limit":{"context":262144,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.44},"limit":{"context":128000,"output":32768}}}},"fireworks-ai":{"id":"fireworks-ai","env":["FIREWORKS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.fireworks.ai/inference/v1/","name":"Fireworks AI","doc":"https://fireworks.ai/docs/","models":{"accounts/fireworks/routers/kimi-k2p5-turbo":{"id":"accounts/fireworks/routers/kimi-k2p5-turbo","name":"Kimi K2.5 Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/kimi-k2-instruct":{"id":"accounts/fireworks/models/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":128000,"output":16384}},"accounts/fireworks/models/glm-4p7":{"id":"accounts/fireworks/models/glm-4p7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.3},"limit":{"context":198000,"output":198000}},"accounts/fireworks/models/glm-5":{"id":"accounts/fireworks/models/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.5},"limit":{"context":202752,"output":131072}},"accounts/fireworks/models/deepseek-v3p1":{"id":"accounts/fireworks/models/deepseek-v3p1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":163840,"output":163840}},"accounts/fireworks/models/minimax-m2p1":{"id":"accounts/fireworks/models/minimax-m2p1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":200000,"output":200000}},"accounts/fireworks/models/glm-4p5-air":{"id":"accounts/fireworks/models/glm-4p5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/deepseek-v3p2":{"id":"accounts/fireworks/models/deepseek-v3p2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.28},"limit":{"context":160000,"output":160000}},"accounts/fireworks/models/minimax-m2p5":{"id":"accounts/fireworks/models/minimax-m2p5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"accounts/fireworks/models/kimi-k2p5":{"id":"accounts/fireworks/models/kimi-k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/kimi-k2-thinking":{"id":"accounts/fireworks/models/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.3},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/glm-4p5":{"id":"accounts/fireworks/models/glm-4p5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/gpt-oss-20b":{"id":"accounts/fireworks/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}}}},"stepfun":{"id":"stepfun","env":["STEPFUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.stepfun.com/v1","name":"StepFun","doc":"https://platform.stepfun.com/docs/zh/overview/concept","models":{"step-3.5-flash":{"id":"step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.096,"output":0.288,"cache_read":0.019},"limit":{"context":256000,"input":256000,"output":256000}},"step-2-16k":{"id":"step-2-16k","name":"Step 2 (16K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5.21,"output":16.44,"cache_read":1.04},"limit":{"context":16384,"input":16384,"output":8192}},"step-1-32k":{"id":"step-1-32k","name":"Step 1 (32K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.05,"output":9.59,"cache_read":0.41},"limit":{"context":32768,"input":32768,"output":32768}}}},"gitlab":{"id":"gitlab","env":["GITLAB_TOKEN"],"npm":"gitlab-ai-provider","name":"GitLab Duo","doc":"https://docs.gitlab.com/user/duo_agent_platform/","models":{"duo-chat-gpt-5-2-codex":{"id":"duo-chat-gpt-5-2-codex","name":"Agentic Chat (GPT-5.2 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-opus-4-6":{"id":"duo-chat-opus-4-6","name":"Agentic Chat (Claude Opus 4.6)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}},"duo-chat-gpt-5-mini":{"id":"duo-chat-gpt-5-mini","name":"Agentic Chat (GPT-5 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-3-codex":{"id":"duo-chat-gpt-5-3-codex","name":"Agentic Chat (GPT-5.3 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-5":{"id":"duo-chat-sonnet-4-5","name":"Agentic Chat (Claude Sonnet 4.5)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-haiku-4-5":{"id":"duo-chat-haiku-4-5","name":"Agentic Chat (Claude Haiku 4.5)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-codex":{"id":"duo-chat-gpt-5-codex","name":"Agentic Chat (GPT-5 Codex)","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-4-nano":{"id":"duo-chat-gpt-5-4-nano","name":"Agentic Chat (GPT-5.4 Nano)","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-2":{"id":"duo-chat-gpt-5-2","name":"Agentic Chat (GPT-5.2)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-4-mini":{"id":"duo-chat-gpt-5-4-mini","name":"Agentic Chat (GPT-5.4 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-6":{"id":"duo-chat-sonnet-4-6","name":"Agentic Chat (Claude Sonnet 4.6)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}},"duo-chat-gpt-5-4":{"id":"duo-chat-gpt-5-4","name":"Agentic Chat (GPT-5.4)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1050000,"input":922000,"output":128000}},"duo-chat-opus-4-5":{"id":"duo-chat-opus-4-5","name":"Agentic Chat (Claude Opus 4.5)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-1":{"id":"duo-chat-gpt-5-1","name":"Agentic Chat (GPT-5.1)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}}}},"siliconflow":{"id":"siliconflow","env":["SILICONFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.com/v1","name":"SiliconFlow","doc":"https://cloud.siliconflow.com/models","models":{"nex-agi/DeepSeek-V3.1-Nex-N1":{"id":"nex-agi/DeepSeek-V3.1-Nex-N1","name":"nex-agi/DeepSeek-V3.1-Nex-N1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"zai-org/GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131000,"output":131000}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"deepseek-ai/DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"deepseek-ai/DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"moonshotai/Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":2.29},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"meta-llama/Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen2.5-VL-7B-Instruct":{"id":"Qwen/Qwen2.5-VL-7B-Instruct","name":"Qwen/Qwen2.5-VL-7B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen/Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.42},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"openai/gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.45},"limit":{"context":131000,"output":8000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"openai/gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.18},"limit":{"context":131000,"output":8000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}}}},"togetherai":{"id":"togetherai","env":["TOGETHER_API_KEY"],"npm":"@ai-sdk/togetherai","name":"Together AI","doc":"https://docs.together.ai/docs/serverless-models","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":200000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2},"limit":{"context":200000,"output":200000}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":131072}},"essentialai/Rnj-1-Instruct":{"id":"essentialai/Rnj-1-Instruct","name":"Rnj-1 Instruct","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":32768}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"deepseek-ai/DeepSeek-V3-1":{"id":"deepseek-ai/DeepSeek-V3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":163839,"output":163839}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":131072,"output":131072}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":131072}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":262144}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.88,"output":0.88},"limit":{"context":131072,"output":131072}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-tput","name":"Qwen3 235B A22B Instruct 2507 FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":130000}},"Qwen/Qwen3-Coder-Next-FP8":{"id":"Qwen/Qwen3-Coder-Next-FP8","name":"Qwen3 Coder Next FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-03","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":262144}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}}}},"clarifai":{"id":"clarifai","env":["CLARIFAI_PAT"],"npm":"@ai-sdk/openai-compatible","api":"https://api.clarifai.com/v2/ext/openai/v1","name":"Clarifai","doc":"https://docs.clarifai.com/compute/inference/","models":{"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput":{"id":"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput","name":"MiniMax-M2.5 High Throughput","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"arcee_ai/AFM/models/trinity-mini":{"id":"arcee_ai/AFM/models/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR":{"id":"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR","name":"DeepSeek OCR","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":8192,"output":8192}},"clarifai/main/models/mm-poly-8b":{"id":"clarifai/main/models/mm-poly-8b","name":"MM Poly 8B","family":"mm-poly","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.658,"output":1.11},"limit":{"context":32768,"output":4096}},"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct":{"id":"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11458,"output":0.74812},"limit":{"context":262144,"output":65536}},"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":262144,"output":262144}},"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.36,"output":1.3},"limit":{"context":262144,"output":131072}},"mistralai/completion/models/Ministral-3-14B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-14B-Reasoning-2512","name":"Ministral 3 14B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":1.7},"limit":{"context":262144,"output":262144}},"mistralai/completion/models/Ministral-3-3B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-3B-Reasoning-2512","name":"Ministral 3 3B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.039,"output":0.54825},"limit":{"context":262144,"output":262144}},"openai/chat-completion/models/gpt-oss-120b-high-throughput":{"id":"openai/chat-completion/models/gpt-oss-120b-high-throughput","name":"GPT OSS 120B High Throughput","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":16384}},"openai/chat-completion/models/gpt-oss-20b":{"id":"openai/chat-completion/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.18},"limit":{"context":131072,"output":16384}}}},"berget":{"id":"berget","env":["BERGET_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.berget.ai/v1","name":"Berget.AI","doc":"https://api.berget.ai","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.3},"limit":{"context":128000,"output":8192}},"BAAI/bge-reranker-v2-m3":{"id":"BAAI/bge-reranker-v2-m3","name":"bge-reranker-v2-m3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-23","last_updated":"2025-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":512,"output":512}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"Multilingual-E5-large-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}},"intfloat/multilingual-e5-large":{"id":"intfloat/multilingual-e5-large","name":"Multilingual-E5-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-09","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB-Whisper-Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":480000,"output":4800}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":8192}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":32000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":8192}}}},"lucidquery":{"id":"lucidquery","env":["LUCIDQUERY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://lucidquery.com/api/v1","name":"LucidQuery AI","doc":"https://lucidquery.com/api/docs","models":{"lucidquery-nexus-coder":{"id":"lucidquery-nexus-coder","name":"LucidQuery Nexus Coder","family":"lucid","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":250000,"output":60000}},"lucidnova-rf1-100b":{"id":"lucidnova-rf1-100b","name":"LucidNova RF1 100B","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-09-16","release_date":"2024-12-28","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":120000,"output":8000}}}},"zhipuai-coding-plan":{"id":"zhipuai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/coding/paas/v4","name":"Zhipu AI Coding Plan","doc":"https://docs.bigmodel.cn/cn/coding-plan/overview","models":{"glm-4.6v-flash":{"id":"glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"deepseek":{"id":"deepseek","env":["DEEPSEEK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.deepseek.com","name":"DeepSeek","doc":"https://api-docs.deepseek.com/quick_start/pricing","models":{"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":128000,"output":64000}},"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek Chat","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":128000,"output":8192}}}},"lmstudio":{"id":"lmstudio","env":["LMSTUDIO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"http://127.0.0.1:1234/v1","name":"LMStudio","doc":"https://lmstudio.ai/models","models":{"qwen/qwen3-30b-a3b-2507":{"id":"qwen/qwen3-30b-a3b-2507","name":"Qwen3 30B A3B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwen3-coder-30b":{"id":"qwen/qwen3-coder-30b","name":"Qwen3 Coder 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}}}},"openrouter":{"id":"openrouter","env":["OPENROUTER_API_KEY"],"npm":"@openrouter/ai-sdk-provider","api":"https://openrouter.ai/api/v1","name":"OpenRouter","doc":"https://openrouter.ai/models","models":{"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Intellect 3","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":8192}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-9b-v2:free":{"id":"nvidia/nemotron-nano-9b-v2:free","name":"Nemotron Nano 9B V2 (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-09-05","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"nvidia/nemotron-nano-12b-v2-vl:free":{"id":"nvidia/nemotron-nano-12b-v2-vl:free","name":"Nemotron Nano 12B 2 VL (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"nvidia/nemotron-3-nano-30b-a3b:free":{"id":"nvidia/nemotron-3-nano-30b-a3b:free","name":"Nemotron 3 Nano 30B A3B (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-12-14","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-3-super-120b-a12b-free":{"id":"nvidia/nemotron-3-super-120b-a12b-free","name":"Nemotron 3 Super (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"arcee-ai/trinity-mini:free":{"id":"arcee-ai/trinity-mini:free","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":65536}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-14","last_updated":"2025-12-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262144,"output":65536}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":1048576,"output":65536}},"liquid/lfm-2.5-1.2b-thinking:free":{"id":"liquid/lfm-2.5-1.2b-thinking:free","name":"LFM2.5-1.2B-Thinking (free)","family":"liquid","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"liquid/lfm-2.5-1.2b-instruct:free":{"id":"liquid/lfm-2.5-1.2b-instruct:free","name":"LFM2.5-1.2B-Instruct (free)","family":"liquid","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-04","last_updated":"2026-03-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"sourceful/riverflow-v2-fast-preview":{"id":"sourceful/riverflow-v2-fast-preview","name":"Riverflow V2 Fast Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-max-preview":{"id":"sourceful/riverflow-v2-max-preview","name":"Riverflow V2 Max Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-standard-preview":{"id":"sourceful/riverflow-v2-standard-preview","name":"Riverflow V2 Standard Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"Step 3.5 Flash (free)","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"cognitivecomputations/dolphin-mistral-24b-venice-edition:free":{"id":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free","name":"Uncensored (free)","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-07-09","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":32768}},"deepseek/deepseek-v3.1-terminus:exacto":{"id":"deepseek/deepseek-v3.1-terminus:exacto","name":"DeepSeek V3.1 Terminus (exacto)","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":8192}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":200000,"output":8000}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2-0905:exacto":{"id":"moonshotai/kimi-k2-0905:exacto","name":"Kimi K2 Instruct 0905 (exacto)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2:free":{"id":"moonshotai/kimi-k2:free","name":"Kimi K2 (free)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32800,"output":32800}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro-preview-06-05":{"id":"google/gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3n-e4b-it:free":{"id":"google/gemma-3n-e4b-it:free","name":"Gemma 3n 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.031},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3n-e2b-it:free":{"id":"google/gemma-3n-e2b-it:free","name":"Gemma 3n 2B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5,"cache_read":0.025,"cache_write":0.083,"input_audio":0.5,"output_audio":0.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"google/gemma-3-12b-it:free":{"id":"google/gemma-3-12b-it:free","name":"Gemma 3 12B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":8192}},"google/gemma-3-4b-it:free":{"id":"google/gemma-3-4b-it:free","name":"Gemma 3 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":32768}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1050000,"output":66000}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Gemma 3 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01703,"output":0.06815},"limit":{"context":96000,"output":96000}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":96000,"output":96000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3-27b-it:free":{"id":"google/gemma-3-27b-it:free","name":"Gemma 3 27B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.6:exacto":{"id":"z-ai/glm-4.6:exacto","name":"GLM 4.6 (exacto)","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.9,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":65535}},"z-ai/glm-4.5-air:free":{"id":"z-ai/glm-4.5-air:free","name":"GLM 4.5 Air (free)","family":"glm-air","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3-coder:free":{"id":"qwen/qwen3-coder:free","name":"Qwen3 Coder 480B A35B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":128000,"output":66536}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":65536}},"qwen/qwen3-coder:exacto":{"id":"qwen/qwen3-coder:exacto","name":"Qwen3 Coder (exacto)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.53},"limit":{"context":131072,"output":32768}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen3.5 Plus 2026-02-15","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":65536}},"qwen/qwen3-235b-a22b-07-25":{"id":"qwen/qwen3-235b-a22b-07-25","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.85},"limit":{"context":262144,"output":131072}},"qwen/qwen3-next-80b-a3b-instruct:free":{"id":"qwen/qwen3-next-80b-a3b-instruct:free","name":"Qwen3 Next 80B A3B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"qwen/qwen3-4b:free":{"id":"qwen/qwen3-4b:free","name":"Qwen3 4B (free)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-30","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.078,"output":0.312},"limit":{"context":262144,"output":81920}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"Grok 3 Mini Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi - Agent Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"Grok 4.20 Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"Grok 3 Beta","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"meta-llama/llama-3.3-70b-instruct:free":{"id":"meta-llama/llama-3.3-70b-instruct:free","name":"Llama 3.3 70B Instruct (free)","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"meta-llama/llama-3.2-3b-instruct:free":{"id":"meta-llama/llama-3.2-3b-instruct:free","name":"Llama 3.2 3B Instruct (free)","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"mistralai/devstral-medium-2507":{"id":"mistralai/devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistralai/mistral-small-2603":{"id":"mistralai/mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/devstral-small-2505":{"id":"mistralai/devstral-small-2505","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.12},"limit":{"context":128000,"output":128000}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Devstral 2 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":96000,"output":8192}},"mistralai/devstral-small-2507":{"id":"mistralai/devstral-small-2507","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":131072}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-120b:exacto":{"id":"openai/gpt-oss-120b:exacto","name":"GPT OSS 120B (exacto)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":32768}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.28},"limit":{"context":131072,"output":32768}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b:free":{"id":"openai/gpt-oss-20b:free","name":"gpt-oss-20b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2e-7,"output":0.00000125,"cache_read":2e-8},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-120b:free":{"id":"openai/gpt-oss-120b:free","name":"gpt-oss-120b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":7.5e-7,"output":0.0000045,"cache_read":7.5e-8},"limit":{"context":400000,"output":128000}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax-01","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000000,"output":1000000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.15,"cache_read":0.28,"cache_write":1.15},"limit":{"context":196600,"output":118000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"bytedance-seed/seedream-4.5":{"id":"bytedance-seed/seedream-4.5","name":"Seedream 4.5","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":4096}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":128000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"black-forest-labs/flux.2-pro":{"id":"black-forest-labs/flux.2-pro","name":"FLUX.2 Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-flex":{"id":"black-forest-labs/flux.2-flex","name":"FLUX.2 Flex","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":67344,"output":67344}},"black-forest-labs/flux.2-max":{"id":"black-forest-labs/flux.2-max","name":"FLUX.2 Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-16","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-klein-4b":{"id":"black-forest-labs/flux.2-klein-4b","name":"FLUX.2 Klein 4B","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-14","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Hermes 4 405B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Hermes 4 70B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-3-llama-3.1-405b:free":{"id":"nousresearch/hermes-3-llama-3.1-405b:free","name":"Hermes 3 405B Instruct (free)","family":"hermes","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}}}},"github-models":{"id":"github-models","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://models.github.ai/inference","name":"GitHub Models","doc":"https://docs.github.com/en/github-models","models":{"ai21-labs/ai21-jamba-1.5-mini":{"id":"ai21-labs/ai21-jamba-1.5-mini","name":"AI21 Jamba 1.5 Mini","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"ai21-labs/ai21-jamba-1.5-large":{"id":"ai21-labs/ai21-jamba-1.5-large","name":"AI21 Jamba 1.5 Large","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"microsoft/phi-4-multimodal-instruct":{"id":"microsoft/phi-4-multimodal-instruct","name":"Phi-4-multimodal-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi-3-small instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi-3-medium instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/mai-ds-r1":{"id":"microsoft/mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi-3.5-MoE instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-mini-instruct":{"id":"microsoft/phi-3.5-mini-instruct","name":"Phi-3.5-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16000,"output":4096}},"microsoft/phi-3-mini-4k-instruct":{"id":"microsoft/phi-3-mini-4k-instruct","name":"Phi-3-mini instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-4-mini-reasoning":{"id":"microsoft/phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi-3.5-vision instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi-3-medium instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-3-mini-128k-instruct":{"id":"microsoft/phi-3-mini-128k-instruct","name":"Phi-3-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-reasoning":{"id":"microsoft/phi-4-reasoning","name":"Phi-4-Reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi-3-small instruct (8k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"core42/jais-30b-chat":{"id":"core42/jais-30b-chat","name":"JAIS 30b Chat","family":"jais","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2023-08-30","last_updated":"2023-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"mistral-ai/ministral-3b":{"id":"mistral-ai/ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/mistral-medium-2505":{"id":"mistral-ai/mistral-medium-2505","name":"Mistral Medium 3 (25.05)","family":"mistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-nemo":{"id":"mistral-ai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/mistral-large-2411":{"id":"mistral-ai/mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-small-2503":{"id":"mistral-ai/mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/codestral-2501":{"id":"mistral-ai/codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":8192}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-90b-vision-instruct":{"id":"meta/llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3.1-405b-instruct":{"id":"meta/meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3-8b-instruct":{"id":"meta/meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3-70b-instruct":{"id":"meta/meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/meta-llama-3.1-70b-instruct":{"id":"meta/meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3.1-8b-instruct":{"id":"meta/meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o1-mini":{"id":"openai/o1-mini","name":"OpenAI o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":65536}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"cohere/cohere-command-a":{"id":"cohere/cohere-command-a","name":"Cohere Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus-08-2024":{"id":"cohere/cohere-command-r-plus-08-2024","name":"Cohere Command R+ 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r":{"id":"cohere/cohere-command-r","name":"Cohere Command R","family":"command-r","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-11","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-08-2024":{"id":"cohere/cohere-command-r-08-2024","name":"Cohere Command R 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus":{"id":"cohere/cohere-command-r-plus","name":"Cohere Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-04-04","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}}}},"302ai":{"id":"302ai","env":["302AI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.302.ai/v1","name":"302.AI","doc":"https://doc.302.ai","models":{"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"qwen3-235b-a22b-instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.143},"limit":{"context":128000,"output":65536}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"Deepseek-Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"qwen-max-latest":{"id":"qwen-max-latest","name":"Qwen-Max-Latest","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.343,"output":1.372},"limit":{"context":131072,"output":8192}},"qwen3-max-2025-09-23":{"id":"qwen3-max-2025-09-23","name":"qwen3-max-2025-09-23","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":258048,"output":65536}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"gpt-5.2-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"claude-opus-4-1-20250805-thinking":{"id":"claude-opus-4-1-20250805-thinking","name":"claude-opus-4-1-20250805-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-27","last_updated":"2025-05-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"qwen3-coder-480b-a35b-instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":262144,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"gemini-2.5-flash-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":128000,"output":98304}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"kimi-k2-0905-preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.632,"output":2.53},"limit":{"context":262144,"output":262144}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"claude-sonnet-4-5-20250929-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"mistral-large-2512":{"id":"mistral-large-2512","name":"mistral-large-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":3.3},"limit":{"context":128000,"output":262144}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1000000,"output":65536}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"gpt-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":32768}},"doubao-seed-1-6-vision-250815":{"id":"doubao-seed-1-6-vision-250815","name":"doubao-seed-1-6-vision-250815","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":1.143},"limit":{"context":256000,"output":32000}},"doubao-seed-1-6-thinking-250715":{"id":"doubao-seed-1-6-thinking-250715","name":"doubao-seed-1-6-thinking-250715","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.121,"output":1.21},"limit":{"context":256000,"output":16000}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"doubao-seed-1-8-251215","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":0.286},"limit":{"context":224000,"output":64000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"ministral-14b-2512":{"id":"ministral-14b-2512","name":"ministral-14b-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":0.33},"limit":{"context":128000,"output":128000}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-26","last_updated":"2025-10-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":1000000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1000000,"output":32768}},"gemini-2.5-flash-nothink":{"id":"gemini-2.5-flash-nothink","name":"gemini-2.5-flash-nothink","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-24","last_updated":"2025-06-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.86},"limit":{"context":128000,"output":16384}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"claude-opus-4-5-20251101-thinking":{"id":"claude-opus-4-5-20251101-thinking","name":"claude-opus-4-5-20251101-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"gpt-5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"deepseek-chat":{"id":"deepseek-chat","name":"Deepseek-Chat","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1000000,"output":32768}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"gemini-2.5-flash-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":30},"limit":{"context":32768,"output":32768}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"gemini-3-pro-image-preview","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":32768,"output":64000}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax-M1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":1.254},"limit":{"context":1000000,"output":128000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.575,"output":2.3},"limit":{"context":262144,"output":262144}},"gpt-5-thinking":{"id":"gpt-5-thinking","name":"gpt-5-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"deepseek-v3.2-thinking":{"id":"deepseek-v3.2-thinking","name":"DeepSeek-V3.2-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"chatgpt-4o-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-08","last_updated":"2024-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":16384}},"qwen-plus":{"id":"qwen-plus","name":"Qwen-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":1.2},"limit":{"context":1000000,"output":32768}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":1000000,"output":131072}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"kimi-k2-thinking-turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.265,"output":9.119},"limit":{"context":262144,"output":262144}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1000000,"output":64000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"gemini-2.0-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-11","release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":2000000,"output":8192}},"doubao-seed-code-preview-251028":{"id":"doubao-seed-code-preview-251028","name":"doubao-seed-code-preview-251028","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.14},"limit":{"context":256000,"output":32000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":1.08},"limit":{"context":128000,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.86},"limit":{"context":64000,"output":16384}},"qwen-flash":{"id":"qwen-flash","name":"Qwen-Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.22},"limit":{"context":1000000,"output":32768}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.145,"output":0.43},"limit":{"context":128000,"output":32768}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"gpt-5.1-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":128000,"output":16384}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"output":65536}},"gpt-4o":{"id":"gpt-4o","name":"gpt-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"grok-4.1":{"id":"grok-4.1","name":"grok-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10},"limit":{"context":200000,"output":64000}}}},"github-copilot":{"id":"github-copilot","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.githubcopilot.com","name":"GitHub Copilot","doc":"https://docs.github.com/en/copilot","models":{"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-27","last_updated":"2025-08-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"claude-sonnet-4.6":{"id":"claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":128000,"output":32000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"claude-haiku-4.5":{"id":"claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1-Codex-mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":16384}},"claude-opus-4.5":{"id":"claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":160000,"input":128000,"output":32000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":216000,"input":128000,"output":16000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"claude-sonnet-4.5":{"id":"claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"claude-opus-4.6":{"id":"claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":64000}},"claude-opus-41":{"id":"claude-opus-41","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":80000,"output":16000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":4096}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}}}},"moonshotai":{"id":"moonshotai","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.ai/v1","name":"Moonshot AI","doc":"https://platform.moonshot.ai/docs/api/chat","models":{"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}}}},"google-vertex":{"id":"google-vertex","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex","name":"Vertex","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/models","models":{"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":65536,"output":65536}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"zai-org/glm-5-maas":{"id":"zai-org/glm-5-maas","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.1},"limit":{"context":202752,"output":131072},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"zai-org/glm-4.7-maas":{"id":"zai-org/glm-4.7-maas","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-06","last_updated":"2026-01-06","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"deepseek-ai/deepseek-v3.1-maas":{"id":"deepseek-ai/deepseek-v3.1-maas","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":163840,"output":32768},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"qwen/qwen3-235b-a22b-instruct-2507-maas":{"id":"qwen/qwen3-235b-a22b-instruct-2507-maas","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":16384},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"meta/llama-4-maverick-17b-128e-instruct-maas":{"id":"meta/llama-4-maverick-17b-128e-instruct-maas","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.15},"limit":{"context":524288,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"meta/llama-3.3-70b-instruct-maas":{"id":"meta/llama-3.3-70b-instruct-maas","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"openai/gpt-oss-20b-maas":{"id":"openai/gpt-oss-20b-maas","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.25},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-120b-maas":{"id":"openai/gpt-oss-120b-maas","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":32768}}}},"privatemode-ai":{"id":"privatemode-ai","env":["PRIVATEMODE_API_KEY","PRIVATEMODE_ENDPOINT"],"npm":"@ai-sdk/openai-compatible","api":"http://localhost:8080/v1","name":"Privatemode AI","doc":"https://docs.privatemode.ai/api/overview","models":{"gemma-3-27b":{"id":"gemma-3-27b","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper large-v3","family":"whisper","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2023-09-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"qwen3-embedding-4b":{"id":"qwen3-embedding-4b","name":"Qwen3-Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-06","last_updated":"2025-06-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":2560}},"qwen3-coder-30b-a3b":{"id":"qwen3-coder-30b-a3b","name":"Qwen3-Coder 30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}}}},"google":{"id":"google","env":["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],"npm":"@ai-sdk/google","name":"Google","doc":"https://ai.google.dev/gemini-api/docs/pricing","models":{"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemini-3.1-flash-image-preview":{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":60},"limit":{"context":131072,"output":32768}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"gemini-live-2.5-flash":{"id":"gemini-live-2.5-flash","name":"Gemini Live 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":128000,"output":8000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-live-2.5-flash-preview-native-audio":{"id":"gemini-live-2.5-flash-preview-native-audio","name":"Gemini Live 2.5 Flash Preview Native Audio","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-09-18","modalities":{"input":["text","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":131072,"output":65536}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-tts":{"id":"gemini-2.5-flash-preview-tts","name":"Gemini 2.5 Flash Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0.5,"output":10},"limit":{"context":8000,"output":16000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"input_audio":0.3},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-2.5-pro-preview-tts":{"id":"gemini-2.5-pro-preview-tts","name":"Gemini 2.5 Pro Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":1,"output":20},"limit":{"context":8000,"output":16000}},"gemini-2.5-flash-image-preview":{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-1.5-flash-8b":{"id":"gemini-1.5-flash-8b","name":"Gemini 1.5 Flash-8B","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-03","last_updated":"2024-10-03","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.0375,"output":0.15,"cache_read":0.01},"limit":{"context":1000000,"output":8192}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"gemini-1.5-flash":{"id":"gemini-1.5-flash","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.01875},"limit":{"context":1000000,"output":8192}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"gemini-1.5-pro":{"id":"gemini-1.5-pro","name":"Gemini 1.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-02-15","last_updated":"2024-02-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.3125},"limit":{"context":1000000,"output":8192}}}},"vivgrid":{"id":"vivgrid","env":["VIVGRID_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.vivgrid.com/v1","name":"Vivgrid","doc":"https://docs.vivgrid.com/models","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42},"limit":{"context":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}}}},"moonshotai-cn":{"id":"moonshotai-cn","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.cn/v1","name":"Moonshot AI (China)","doc":"https://platform.moonshot.cn/docs/api/chat","models":{"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}}}},"sap-ai-core":{"id":"sap-ai-core","env":["AICORE_SERVICE_KEY"],"npm":"@jerome-benoit/sap-ai-provider-v2","name":"SAP AI Core","doc":"https://help.sap.com/docs/sap-ai-core","models":{"anthropic--claude-4.5-opus":{"id":"anthropic--claude-4.5-opus","name":"anthropic--claude-4.5-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic--claude-4-sonnet":{"id":"anthropic--claude-4-sonnet","name":"anthropic--claude-4-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic--claude-4.5-sonnet":{"id":"anthropic--claude-4.5-sonnet","name":"anthropic--claude-4.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"input_audio":1},"limit":{"context":1048576,"output":65536}},"anthropic--claude-3-sonnet":{"id":"anthropic--claude-3-sonnet","name":"anthropic--claude-3-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":4096}},"anthropic--claude-3.7-sonnet":{"id":"anthropic--claude-3.7-sonnet","name":"anthropic--claude-3.7-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"sonar":{"id":"sonar","name":"sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"anthropic--claude-3.5-sonnet":{"id":"anthropic--claude-3.5-sonnet","name":"anthropic--claude-3.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"sonar-deep-research":{"id":"sonar-deep-research","name":"sonar-deep-research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"anthropic--claude-4.6-sonnet":{"id":"anthropic--claude-4.6-sonnet","name":"anthropic--claude-4.6-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"anthropic--claude-4.5-haiku":{"id":"anthropic--claude-4.5-haiku","name":"anthropic--claude-4.5-haiku","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"gpt-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"anthropic--claude-3-opus":{"id":"anthropic--claude-3-opus","name":"anthropic--claude-3-opus","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"sonar-pro":{"id":"sonar-pro","name":"sonar-pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"anthropic--claude-3-haiku":{"id":"anthropic--claude-3-haiku","name":"anthropic--claude-3-haiku","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic--claude-4.6-opus":{"id":"anthropic--claude-4.6-opus","name":"anthropic--claude-4.6-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"anthropic--claude-4-opus":{"id":"anthropic--claude-4-opus","name":"anthropic--claude-4-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}}}},"zhipuai":{"id":"zhipuai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/paas/v4","name":"Zhipu AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}}}},"venice":{"id":"venice","env":["VENICE_API_KEY"],"npm":"venice-ai-sdk-provider","name":"Venice AI","doc":"https://docs.venice.ai","models":{"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen 3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":128000,"output":16384}},"google-gemma-3-27b-it":{"id":"google-gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-04","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":198000,"output":16384}},"openai-gpt-4o-2024-11-20":{"id":"openai-gpt-4o-2024-11-20","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.125,"output":12.5},"limit":{"context":128000,"output":16384}},"claude-opus-45":{"id":"claude-opus-45","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-06","last_updated":"2026-01-28","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":198000,"output":49500}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen 3 Coder 480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3},"limit":{"context":256000,"output":65536}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":1000000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.87,"cache_read":0.03},"limit":{"context":256000,"output":10000}},"zai-org-glm-5":{"id":"zai-org-glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":198000,"output":32000}},"zai-org-glm-4.7":{"id":"zai-org-glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-24","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.65,"cache_read":0.11},"limit":{"context":198000,"output":16384}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.6,"output":18,"cache_read":0.36,"cache_write":4.5},"limit":{"context":1000000,"output":64000}},"zai-org-glm-4.6":{"id":"zai-org-glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2024-04-01","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":2.75,"cache_read":0.3},"limit":{"context":198000,"output":16384}},"openai-gpt-53-codex":{"id":"openai-gpt-53-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":400000,"output":128000}},"kimi-k2-5":{"id":"kimi-k2-5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-01-27","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":3.5,"cache_read":0.11},"limit":{"context":256000,"output":65536}},"mistral-small-3-2-24b-instruct":{"id":"mistral-small-3-2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-15","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09375,"output":0.25},"limit":{"context":256000,"output":16384}},"mistral-31-24b":{"id":"mistral-31-24b","name":"Venice Medium","family":"mistral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-03-18","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":128000,"output":4096}},"grok-4-20-multi-agent-beta":{"id":"grok-4-20-multi-agent-beta","name":"Grok 4.20 Multi-Agent Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":7.5,"cache_read":0.25,"context_over_200k":{"input":5,"output":15,"cache_read":0.25}},"limit":{"context":2000000,"output":128000}},"openai-gpt-54-pro":{"id":"openai-gpt-54-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":37.5,"output":225,"context_over_200k":{"input":75,"output":337.5}},"limit":{"context":1000000,"output":128000}},"qwen3-4b":{"id":"qwen3-4b","name":"Venice Small","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":32000,"output":4096}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":3.75,"cache_read":0.07},"limit":{"context":256000,"output":65536}},"grok-4-20-beta":{"id":"grok-4-20-beta","name":"Grok 4.20 Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":7.5,"cache_read":0.25,"context_over_200k":{"input":5,"output":15,"cache_read":0.25}},"limit":{"context":2000000,"output":128000}},"olafangensan-glm-4.7-flash-heretic":{"id":"olafangensan-glm-4.7-flash-heretic","name":"GLM 4.7 Flash Heretic","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.8},"limit":{"context":200000,"output":24000}},"minimax-m25":{"id":"minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.19,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"zai-org-glm-4.7-flash":{"id":"zai-org-glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":16384}},"qwen3-coder-480b-a35b-instruct-turbo":{"id":"qwen3-coder-480b-a35b-instruct-turbo","name":"Qwen 3 Coder 480B Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":256000,"output":65536}},"openai-gpt-oss-120b":{"id":"openai-gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":16384}},"grok-41-fast":{"id":"grok-41-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-12-01","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.625,"cache_read":0.0625},"limit":{"context":1000000,"output":30000}},"openai-gpt-52":{"id":"openai-gpt-52","name":"GPT-5.2","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-13","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"openai-gpt-54":{"id":"openai-gpt-54","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.13,"output":18.8,"cache_read":0.313},"limit":{"context":1000000,"output":131072}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-10","release_date":"2025-12-04","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.33,"output":0.48,"cache_read":0.16},"limit":{"context":160000,"output":32768}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.5,"cache_write":0.5,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1000000,"output":32768}},"openai-gpt-4o-mini-2024-07-18":{"id":"openai-gpt-4o-mini-2024-07-18","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1875,"output":0.75,"cache_read":0.09375},"limit":{"context":128000,"output":16384}},"llama-3.3-70b":{"id":"llama-3.3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":128000,"output":4096}},"qwen3-next-80b":{"id":"qwen3-next-80b","name":"Qwen 3 Next 80b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.9},"limit":{"context":256000,"output":16384}},"hermes-3-llama-3.1-405b":{"id":"hermes-3-llama-3.1-405b","name":"Hermes 3 Llama 3.1 405b","family":"hermes","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3},"limit":{"context":128000,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-12-10","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3.2,"cache_read":0.375},"limit":{"context":256000,"output":65536}},"qwen3-5-9b":{"id":"qwen3-5-9b","name":"Qwen 3.5 9B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":65536}},"minimax-m21":{"id":"minimax-m21","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"qwen3-5-35b-a3b":{"id":"qwen3-5-35b-a3b","name":"Qwen 3.5 35B A3B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-25","last_updated":"2026-03-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3125,"output":1.25,"cache_read":0.15625},"limit":{"context":256000,"output":65536}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen 3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":3.5},"limit":{"context":128000,"output":16384}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-12-02","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.625},"limit":{"context":198000,"output":32768}},"llama-3.2-3b":{"id":"llama-3.2-3b","name":"Llama 3.2 3B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-10-03","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored 1.1","family":"venice","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-03-18","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.9},"limit":{"context":32000,"output":8192}},"nvidia-nemotron-3-nano-30b-a3b":{"id":"nvidia-nemotron-3-nano-30b-a3b","name":"NVIDIA Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":16384}},"openai-gpt-52-codex":{"id":"openai-gpt-52-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-01-15","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"minimax-m27":{"id":"minimax-m27","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.375,"output":1.5,"cache_read":0.075},"limit":{"context":198000,"output":32768}},"venice-uncensored-role-play":{"id":"venice-uncensored-role-play","name":"Venice Role Play Uncensored","family":"venice","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-20","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":128000,"output":4096}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3 VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-16","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.5},"limit":{"context":256000,"output":16384}},"claude-sonnet-45":{"id":"claude-sonnet-45","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-01-15","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75,"cache_read":0.375,"cache_write":4.69},"limit":{"context":198000,"output":49500}}}},"nova":{"id":"nova","env":["NOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.nova.amazon.com/v1","name":"Nova","doc":"https://nova.amazon.com/dev/documentation","models":{"nova-2-lite-v1":{"id":"nova-2-lite-v1","name":"Nova 2 Lite","family":"nova-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}},"nova-2-pro-v1":{"id":"nova-2-pro-v1","name":"Nova 2 Pro","family":"nova-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2026-01-03","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}}}},"zai-coding-plan":{"id":"zai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/coding/paas/v4","name":"Z.AI Coding Plan","doc":"https://docs.z.ai/devpack/overview","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}}}},"opencode-go":{"id":"opencode-go","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/go/v1","name":"OpenCode Go","doc":"https://opencode.ai/docs/zen","models":{"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":65536}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax-m2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}}}},"drun":{"id":"drun","env":["DRUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://chat.d.run/v1","name":"D.Run (China)","doc":"https://www.d.run","models":{"public/deepseek-v3":{"id":"public/deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":131072,"output":8192}},"public/deepseek-r1":{"id":"public/deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32000}},"public/minimax-m25":{"id":"public/minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.16},"limit":{"context":204800,"output":131072}}}},"firmware":{"id":"firmware","env":["FIRMWARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://app.frogbot.ai/api/v1","name":"Firmware","doc":"https://docs.frogbot.ai","models":{"gpt-5-4":{"id":"gpt-5-4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":272000,"output":128000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":198000,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-17","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"deepseek-v3-2":{"id":"deepseek-v3-2","name":"DeepSeek v3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":1.68,"cache_read":0.28},"limit":{"context":128000,"output":8192}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":128000}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"minimax-m2-5":{"id":"minimax-m2-5","name":"MiniMax-M2.5","family":"minimax","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-01-15","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":192000,"output":8192}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"gpt-5-3-codex":{"id":"gpt-5-3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2026-01-31","release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2},"limit":{"context":131072,"output":32768}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":400000,"output":128000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"ovhcloud":{"id":"ovhcloud","env":["OVHCLOUD_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1","name":"OVHcloud AI Endpoints","doc":"https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//","models":{"meta-llama-3_3-70b-instruct":{"id":"meta-llama-3_3-70b-instruct","name":"Meta-Llama-3_3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"mistral-7b-instruct-v0.3":{"id":"mistral-7b-instruct-v0.3","name":"Mistral-7B-Instruct-v0.3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":65536,"output":65536}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral-Small-3.2-24B-Instruct-2506","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.31},"limit":{"context":131072,"output":131072}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.25},"limit":{"context":32768,"output":32768}},"qwen2.5-coder-32b-instruct":{"id":"qwen2.5-coder-32b-instruct","name":"Qwen2.5-Coder-32B-Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.96,"output":0.96},"limit":{"context":32768,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.47},"limit":{"context":131072,"output":131072}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek-R1-Distill-Llama-70B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-30","last_updated":"2025-01-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.01,"output":1.01},"limit":{"context":32768,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.26},"limit":{"context":262144,"output":262144}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-11","last_updated":"2025-06-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":131072,"output":131072}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral-Nemo-Instruct-2407","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":65536,"output":65536}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.18},"limit":{"context":131072,"output":131072}},"mixtral-8x7b-instruct-v0.1":{"id":"mixtral-8x7b-instruct-v0.1","name":"Mixtral-8x7B-Instruct-v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"output":32768}}}},"stackit":{"id":"stackit","env":["STACKIT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1","name":"STACKIT","doc":"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models","models":{"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"E5 Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":4096,"output":4096}},"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8":{"id":"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.27},"limit":{"context":128000,"output":8192}},"neuralmagic/Mistral-Nemo-Instruct-2407-FP8":{"id":"neuralmagic/Mistral-Nemo-Instruct-2407-FP8","name":"Mistral Nemo","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-05-17","last_updated":"2025-05-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":37000,"output":8192}},"Qwen/Qwen3-VL-Embedding-8B":{"id":"Qwen/Qwen3-VL-Embedding-8B","name":"Qwen3-VL Embedding 8B","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8","name":"Qwen3-VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.64,"output":1.91},"limit":{"context":218000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":131000,"output":8192}},"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic":{"id":"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}}}},"cloudferro-sherlock":{"id":"cloudferro-sherlock","env":["CLOUDFERRO_SHERLOCK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-sherlock.cloudferro.com/openai/v1/","name":"CloudFerro Sherlock","doc":"https://docs.sherlock.cloudferro.com/","models":{"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196000,"output":196000}},"speakleash/Bielik-11B-v2.6-Instruct":{"id":"speakleash/Bielik-11B-v2.6-Instruct","name":"Bielik 11B v2.6 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"speakleash/Bielik-11B-v3.0-Instruct":{"id":"speakleash/Bielik-11B-v3.0-Instruct","name":"Bielik 11B v3.0 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10-09","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":70000,"output":70000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":131000,"output":131000}}}},"requesty":{"id":"requesty","env":["REQUESTY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://router.requesty.ai/v1","name":"Requesty","doc":"https://requesty.ai/solution/llm-routing/models","models":{"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.55},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":2.375},"limit":{"context":1048576,"output":65536}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","audio","image","video"],"output":["text","audio","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":128000,"output":32000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":16000,"output":4000}},"anthropic/claude-3-7-sonnet":{"id":"anthropic/claude-3-7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":62000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"xai/grok-4-fast":{"id":"xai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.2},"limit":{"context":2000000,"output":64000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":3},"limit":{"context":256000,"output":64000}}}},"qihang-ai":{"id":"qihang-ai","env":["QIHANG_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qhaigc.net/v1","name":"QiHang","doc":"https://www.qhaigc.net/docs","models":{"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.71,"output":3.57},"limit":{"context":200000,"output":32000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.14},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.71,"context_over_200k":{"input":0.09,"output":0.71}},"limit":{"context":1048576,"output":65536}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.43,"context_over_200k":{"input":0.07,"output":0.43}},"limit":{"context":1048576,"output":65536}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":2.14},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":272000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.71},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.57,"output":3.43},"limit":{"context":1000000,"output":65000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.29},"limit":{"context":200000,"output":64000}}}},"siliconflow-cn":{"id":"siliconflow-cn","env":["SILICONFLOW_CN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.cn/v1","name":"SiliconFlow (China)","doc":"https://cloud.siliconflow.com/models","models":{"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"Pro/zai-org/GLM-4.7":{"id":"Pro/zai-org/GLM-4.7","name":"Pro/zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"Pro/zai-org/GLM-5":{"id":"Pro/zai-org/GLM-5","name":"Pro/zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"Pro/MiniMaxAI/MiniMax-M2.5":{"id":"Pro/MiniMaxAI/MiniMax-M2.5","name":"Pro/MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.22},"limit":{"context":192000,"output":131000}},"Pro/MiniMaxAI/MiniMax-M2.1":{"id":"Pro/MiniMaxAI/MiniMax-M2.1","name":"Pro/MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"Pro/deepseek-ai/DeepSeek-R1":{"id":"Pro/deepseek-ai/DeepSeek-R1","name":"Pro/deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.2":{"id":"Pro/deepseek-ai/DeepSeek-V3.2","name":"Pro/deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3":{"id":"Pro/deepseek-ai/DeepSeek-V3","name":"Pro/deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","name":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"Pro/moonshotai/Kimi-K2-Instruct-0905":{"id":"Pro/moonshotai/Kimi-K2-Instruct-0905","name":"Pro/moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2.5":{"id":"Pro/moonshotai/Kimi-K2.5","name":"Pro/moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2-Thinking":{"id":"Pro/moonshotai/Kimi-K2-Thinking","name":"Pro/moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"PaddlePaddle/PaddleOCR-VL-1.5":{"id":"PaddlePaddle/PaddleOCR-VL-1.5","name":"PaddlePaddle/PaddleOCR-VL-1.5","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"PaddlePaddle/PaddleOCR-VL":{"id":"PaddlePaddle/PaddleOCR-VL","name":"PaddlePaddle/PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"Kwaipilot/KAT-Dev":{"id":"Kwaipilot/KAT-Dev","name":"Kwaipilot/KAT-Dev","family":"kat-coder","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"deepseek-ai/DeepSeek-OCR":{"id":"deepseek-ai/DeepSeek-OCR","name":"deepseek-ai/DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2025-10-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"ascend-tribe/pangu-pro-moe":{"id":"ascend-tribe/pangu-pro-moe","name":"ascend-tribe/pangu-pro-moe","family":"pangu","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3.5-9B":{"id":"Qwen/Qwen3.5-9B","name":"Qwen/Qwen3.5-9B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-122B-A10B":{"id":"Qwen/Qwen3.5-122B-A10B","name":"Qwen/Qwen3.5-122B-A10B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":2.32},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen/Qwen3.5-397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-35B-A3B":{"id":"Qwen/Qwen3.5-35B-A3B","name":"Qwen/Qwen3.5-35B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":1.86},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-4B":{"id":"Qwen/Qwen3.5-4B","name":"Qwen/Qwen3.5-4B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-27B":{"id":"Qwen/Qwen3.5-27B","name":"Qwen/Qwen3.5-27B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.09},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}}}},"helicone":{"id":"helicone","env":["HELICONE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ai-gateway.helicone.ai/v1","name":"Helicone","doc":"https://helicone.ai/models","models":{"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Anthropic: Claude 4.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"OpenAI: GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"OpenAI: GPT-5 Pro","family":"gpt-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":128000,"output":32768}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"OpenAI GPT-4o-mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"xAI: Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"OpenAI GPT-5 Chat Latest","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-09","release_date":"2024-09-30","last_updated":"2024-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"llama-4-scout":{"id":"llama-4-scout","name":"Meta Llama 4 Scout 17B 16E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3},"limit":{"context":131072,"output":8192}},"codex-mini-latest":{"id":"codex-mini-latest","name":"OpenAI Codex Mini Latest","family":"gpt-codex-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"qwen2.5-coder-7b-fast":{"id":"qwen2.5-coder-7b-fast","name":"Qwen2.5 Coder 7B fast","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-15","last_updated":"2024-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.09},"limit":{"context":32000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Anthropic: Claude Opus 4.1","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":8192}},"llama-3.1-8b-instruct-turbo":{"id":"llama-3.1-8b-instruct-turbo","name":"Meta Llama 3.1 8B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"output":128000}},"grok-3":{"id":"grok-3","name":"xAI Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":131072}},"ernie-4.5-21b-a3b-thinking":{"id":"ernie-4.5-21b-a3b-thinking","name":"Baidu Ernie 4.5 21B A3B Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":128000,"output":8000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"xAI Grok Code Fast 1","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-25","last_updated":"2024-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"llama-prompt-guard-2-22m":{"id":"llama-prompt-guard-2-22m","name":"Meta Llama Prompt Guard 2 22M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Meta Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.39},"limit":{"context":128000,"output":16400}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"xAI Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Anthropic: Claude Sonnet 4.5","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-4.1-mini-2025-04-14":{"id":"gpt-4.1-mini-2025-04-14","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Google Gemini 2.5 Flash","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.3},"limit":{"context":1048576,"output":65535}},"llama-guard-4":{"id":"llama-guard-4","name":"Meta Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.21},"limit":{"context":131072,"output":1024}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"xAI Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":30000}},"o1":{"id":"o1","name":"OpenAI: o1","family":"o","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.1":{"id":"gpt-5.1","name":"OpenAI GPT-5.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi K2 (09/05)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.39999999999999997},"limit":{"context":262144,"output":16384}},"grok-4":{"id":"grok-4","name":"xAI Grok 4","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-09","last_updated":"2024-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":256000}},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Meta Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.08},"limit":{"context":131072,"output":32678}},"sonar":{"id":"sonar","name":"Perplexity Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":4096}},"o3":{"id":"o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.95},"limit":{"context":262144,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"Zai GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44999999999999996,"output":1.5},"limit":{"context":204800,"output":131072}},"sonar-reasoning":{"id":"sonar-reasoning","name":"Perplexity Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":40960}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"OpenAI GPT-4.1 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998},"limit":{"context":1047576,"output":32768}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Anthropic: Claude Sonnet 4.5 (20250929)","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Google Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998,"cache_write":0.09999999999999999},"limit":{"context":1048576,"output":65535}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7999999999999999,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"OpenAI GPT-OSS 120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.13},"limit":{"context":128000,"output":4096}},"deepseek-v3.1-terminus":{"id":"deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1,"cache_read":0.21600000000000003},"limit":{"context":128000,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"OpenAI GPT-4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"claude-3.5-sonnet-v2":{"id":"claude-3.5-sonnet-v2","name":"Anthropic: Claude 3.5 Sonnet v2","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"mistral-small":{"id":"mistral-small","name":"Mistral Small","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-02","release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":75,"output":200},"limit":{"context":128000,"output":128000}},"o3-pro":{"id":"o3-pro","name":"OpenAI o3 Pro","family":"o-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":128000,"output":16400}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.3},"limit":{"context":262144,"output":262144}},"qwen3-vl-235b-a22b-instruct":{"id":"qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":256000,"output":16384}},"qwen3-235b-a22b-thinking":{"id":"qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9000000000000004},"limit":{"context":262144,"output":81920}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"grok-3-mini":{"id":"grok-3-mini","name":"xAI Grok 3 Mini","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":131072}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Anthropic: Claude 3 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Anthropic: Claude 4.5 Haiku (20251001)","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"kimi-k2-0711":{"id":"kimi-k2-0711","name":"Kimi K2 (07/11)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5700000000000001,"output":2.3},"limit":{"context":131072,"output":16384}},"gpt-5":{"id":"gpt-5","name":"OpenAI GPT-5","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"OpenAI o4 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Meta Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.7899999999999999},"limit":{"context":131072,"output":32678}},"llama-4-maverick":{"id":"llama-4-maverick","name":"Meta Llama 4 Maverick 17B 128E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":8192}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":2},"limit":{"context":256000,"output":262144}},"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Google Gemma 2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-25","last_updated":"2024-06-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek-tng-r1t2-chimera":{"id":"deepseek-tng-r1t2-chimera","name":"DeepSeek TNG R1T2 Chimera","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-02","last_updated":"2025-07-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":130000,"output":163840}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Sonar Pro","family":"sonar-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":4096}},"claude-opus-4":{"id":"claude-opus-4","name":"Anthropic: Claude Opus 4","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"OpenAI: GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral-Large","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Anthropic: Claude Opus 4.5","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"OpenAI ChatGPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":128000,"output":16384}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Meta Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.049999999999999996},"limit":{"context":16384,"output":16384}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Google Gemini 3 Pro Preview","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.19999999999999998},"limit":{"context":1048576,"output":65536}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":16384}},"llama-prompt-guard-2-86m":{"id":"llama-prompt-guard-2-86m","name":"Meta Llama Prompt Guard 2 86M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"o3-mini":{"id":"o3-mini","name":"OpenAI o3 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2023-10","release_date":"2023-10-01","last_updated":"2023-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":41000,"output":41000}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"xAI Grok 4 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"OpenAI GPT-5 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"OpenAI GPT-OSS 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.19999999999999998},"limit":{"context":131072,"output":131072}},"hermes-2-pro-llama-3-8b":{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.14},"limit":{"context":131072,"output":131072}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"OpenAI GPT-5.1 Chat","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Anthropic: Claude Opus 4.1 (20250805)","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Google Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.3125,"cache_write":1.25},"limit":{"context":1048576,"output":65536}},"gpt-5-nano":{"id":"gpt-5-nano","name":"OpenAI GPT-5 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.39999999999999997,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"o1-mini":{"id":"o1-mini","name":"OpenAI: o1-mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-4o":{"id":"gpt-4o","name":"OpenAI GPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"vercel":{"id":"vercel","env":["AI_GATEWAY_API_KEY"],"npm":"@ai-sdk/gateway","name":"Vercel AI Gateway","doc":"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway","models":{"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"INTELLECT 3","family":"intellect","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"zai/glm-5":{"id":"zai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai/glm-4.7-flashx":{"id":"zai/glm-4.7-flashx","name":"GLM 4.7 FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai/glm-4.5-air":{"id":"zai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"zai/glm-4.5":{"id":"zai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":131072}},"zai/glm-4.7-flash":{"id":"zai/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.39999999999999997},"limit":{"context":200000,"output":131000}},"zai/glm-4.6":{"id":"zai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":200000,"output":96000}},"zai/glm-4.7":{"id":"zai/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":120000}},"zai/glm-4.6v-flash":{"id":"zai/glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":24000}},"zai/glm-5-turbo":{"id":"zai/glm-5-turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24},"limit":{"context":202800,"output":131100}},"zai/glm-4.5v":{"id":"zai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":66000,"output":66000}},"zai/glm-4.6v":{"id":"zai/glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9,"cache_read":0.05},"limit":{"context":128000,"output":24000}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"Nvidia Nemotron Nano 12B V2 VL","family":"nemotron","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B V2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nemotron 3 Nano 30B A3B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"arcee-ai/trinity-large-preview":{"id":"arcee-ai/trinity-large-preview","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131000,"output":131000}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.15},"limit":{"context":131072,"output":131072}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.29},"limit":{"context":262144,"output":32000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3,"cache_read":0.19999999999999998},"limit":{"context":1000000,"output":128000}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.024999999999999998},"limit":{"context":128000,"output":128000}},"inception/mercury-coder-small":{"id":"inception/mercury-coder-small","name":"Mercury Coder Small Beta","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32000,"output":16384}},"voyage/voyage-3-large":{"id":"voyage/voyage-3-large","name":"voyage-3-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-code-3":{"id":"voyage/voyage-code-3","name":"voyage-code-3","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-law-2":{"id":"voyage/voyage-law-2","name":"voyage-law-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-finance-2":{"id":"voyage/voyage-finance-2","name":"voyage-finance-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-code-2":{"id":"voyage/voyage-code-2","name":"voyage-code-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-lite":{"id":"voyage/voyage-4-lite","name":"voyage-4-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-3.5-lite":{"id":"voyage/voyage-3.5-lite","name":"voyage-3.5-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-large":{"id":"voyage/voyage-4-large","name":"voyage-4-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-3.5":{"id":"voyage/voyage-3.5","name":"voyage-3.5","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4":{"id":"voyage/voyage-4","name":"voyage-4","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"amazon/nova-2-lite":{"id":"amazon/nova-2-lite","name":"Nova 2 Lite","family":"nova","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":1000000}},"amazon/titan-embed-text-v2":{"id":"amazon/titan-embed-text-v2","name":"Titan Text Embeddings V2","family":"titan-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-04","last_updated":"2024-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"amazon/nova-lite":{"id":"amazon/nova-lite","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"amazon/nova-pro":{"id":"amazon/nova-pro","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"amazon/nova-micro":{"id":"amazon/nova-micro","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"alibaba/qwen-3-235b":{"id":"alibaba/qwen-3-235b","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-max-preview":{"id":"alibaba/qwen3-max-preview","name":"Qwen3 Max Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"alibaba/qwen3-next-80b-a3b-thinking":{"id":"alibaba/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":65536}},"alibaba/qwen3-max-thinking":{"id":"alibaba/qwen3-max-thinking","name":"Qwen 3 Max Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":256000,"output":65536}},"alibaba/qwen3-vl-instruct":{"id":"alibaba/qwen3-vl-instruct","name":"Qwen3 VL Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":129024}},"alibaba/qwen3-embedding-8b":{"id":"alibaba/qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen3-coder-next":{"id":"alibaba/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":256000,"output":256000}},"alibaba/qwen3-coder":{"id":"alibaba/qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.38,"output":1.53},"limit":{"context":262144,"output":66536}},"alibaba/qwen-3-30b":{"id":"alibaba/qwen-3-30b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-embedding-0.6b":{"id":"alibaba/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen-3-14b":{"id":"alibaba/qwen-3-14b","name":"Qwen3-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-235b-a22b-thinking":{"id":"alibaba/qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9},"limit":{"context":262114,"output":262114}},"alibaba/qwen3-vl-thinking":{"id":"alibaba/qwen3-vl-thinking","name":"Qwen3 VL Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":8.4},"limit":{"context":131072,"output":129024}},"alibaba/qwen3.5-flash":{"id":"alibaba/qwen3.5-flash","name":"Qwen 3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.001,"cache_write":0.125},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3-next-80b-a3b-instruct":{"id":"alibaba/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":262144,"output":32768}},"alibaba/qwen3.5-plus":{"id":"alibaba/qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04,"cache_write":0.5},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3-max":{"id":"alibaba/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"alibaba/qwen-3-32b":{"id":"alibaba/qwen-3-32b","name":"Qwen 3.32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-coder-plus":{"id":"alibaba/qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1000000,"output":1000000}},"alibaba/qwen3-embedding-4b":{"id":"alibaba/qwen3-embedding-4b","name":"Qwen3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen3-coder-30b-a3b":{"id":"alibaba/qwen3-coder-30b-a3b","name":"Qwen 3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"bfl/flux-pro-1.0-fill":{"id":"bfl/flux-pro-1.0-fill","name":"FLUX.1 Fill [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1":{"id":"bfl/flux-pro-1.1","name":"FLUX1.1 [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-max":{"id":"bfl/flux-kontext-max","name":"FLUX.1 Kontext Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-pro":{"id":"bfl/flux-kontext-pro","name":"FLUX.1 Kontext Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1-ultra":{"id":"bfl/flux-pro-1.1-ultra","name":"FLUX1.1 [pro] Ultra","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"mistral/codestral-embed":{"id":"mistral/codestral-embed","name":"Codestral Embed","family":"codestral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"mistral/devstral-small-2":{"id":"mistral/devstral-small-2","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/devstral-2":{"id":"mistral/devstral-2","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/mistral-large-3":{"id":"mistral/mistral-large-3","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"mistral/mistral-embed":{"id":"mistral/mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"mistral/ministral-14b":{"id":"mistral/ministral-14b","name":"Ministral 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":256000,"output":256000}},"mistral/mistral-nemo":{"id":"mistral/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"mistral/mistral-medium":{"id":"mistral/mistral-medium","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":64000}},"mistral/devstral-small":{"id":"mistral/devstral-small","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":64000}},"mistral/codestral":{"id":"mistral/codestral","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"mistral/mixtral-8x22b-instruct":{"id":"mistral/mixtral-8x22b-instruct","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"mistral/mistral-small":{"id":"mistral/mistral-small","name":"Mistral Small (latest)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2024-09-01","last_updated":"2024-09-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"mistral/ministral-8b":{"id":"mistral/ministral-8b","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"mistral/pixtral-large":{"id":"mistral/pixtral-large","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral/pixtral-12b":{"id":"mistral/pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"mistral/magistral-small":{"id":"mistral/magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral/magistral-medium":{"id":"mistral/magistral-medium","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}},"mistral/ministral-3b":{"id":"mistral/ministral-3b","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"kwaipilot/kat-coder-pro-v1":{"id":"kwaipilot/kat-coder-pro-v1","name":"KAT-Coder-Pro V1","family":"kat-coder","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"deepseek/deepseek-v3":{"id":"deepseek/deepseek-v3","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.77,"output":0.77},"limit":{"context":163840,"output":16384}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1},"limit":{"context":163840,"output":128000}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4,"cache_read":0.22},"limit":{"context":163842,"output":8000}},"deepseek/deepseek-v3.2-thinking":{"id":"deepseek/deepseek-v3.2-thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"moonshotai/kimi-k2-turbo":{"id":"moonshotai/kimi-k2-turbo","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.4,"output":10},"limit":{"context":256000,"output":16384}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":131072,"output":16384}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.47,"output":2,"cache_read":0.14},"limit":{"context":216144,"output":216144}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262114,"output":262114}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"google/gemini-embedding-001":{"id":"google/gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/imagen-4.0-fast-generate-001":{"id":"google/imagen-4.0-fast-generate-001","name":"Imagen 4 Fast","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/text-embedding-005":{"id":"google/text-embedding-005","name":"Text Embedding 005","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08","last_updated":"2024-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1000000,"output":64000}},"google/imagen-4.0-ultra-generate-001":{"id":"google/imagen-4.0-ultra-generate-001","name":"Imagen 4 Ultra","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image Preview (Nano Banana 2)","family":"gemini","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":131072,"output":32768}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1000000,"output":65000}},"google/text-multilingual-embedding-002":{"id":"google/text-multilingual-embedding-002","name":"Text Multilingual Embedding 002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-embedding-2":{"id":"google/gemini-embedding-2","name":"Gemini Embedding 2","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Nano Banana (Gemini 2.5 Flash Image)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemini-3-pro-image":{"id":"google/gemini-3-pro-image","name":"Nano Banana Pro (Gemini 3 Pro Image)","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":65536,"output":32768}},"google/gemini-2.5-flash-image-preview":{"id":"google/gemini-2.5-flash-image-preview","name":"Nano Banana Preview (Gemini 2.5 Flash Image Preview)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/imagen-4.0-generate-001":{"id":"google/imagen-4.0-generate-001","name":"Imagen 4","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"meituan/longcat-flash-thinking":{"id":"meituan/longcat-flash-thinking","name":"LongCat Flash Thinking","family":"longcat","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":1.5},"limit":{"context":128000,"output":8192}},"meituan/longcat-flash-thinking-2601":{"id":"meituan/longcat-flash-thinking-2601","name":"LongCat Flash Thinking 2601","family":"longcat","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32768,"output":32768}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"LongCat Flash Chat","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-30","last_updated":"2025-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"bytedance/seed-1.6":{"id":"bytedance/seed-1.6","name":"Seed 1.6","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":32000}},"bytedance/seed-1.8":{"id":"bytedance/seed-1.8","name":"Seed 1.8","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":64000}},"meta/llama-3.1-8b":{"id":"meta/llama-3.1-8b","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.05},"limit":{"context":131072,"output":16384}},"meta/llama-3.2-11b":{"id":"meta/llama-3.2-11b","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":8192}},"meta/llama-3.1-70b":{"id":"meta/llama-3.1-70b","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta/llama-3.2-90b":{"id":"meta/llama-3.2-90b","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-1b":{"id":"meta/llama-3.2-1b","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-3b":{"id":"meta/llama-3.2-3b","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":8192}},"meta/llama-4-maverick":{"id":"meta/llama-4-maverick","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.3-70b":{"id":"meta/llama-3.3-70b","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-scout":{"id":"meta/llama-4-scout","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"vercel/v0-1.5-md":{"id":"vercel/v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"vercel/v0-1.0-md":{"id":"vercel/v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT 5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":128000,"output":272000}},"openai/text-embedding-ada-002":{"id":"openai/text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT 4o Mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/text-embedding-3-small":{"id":"openai/text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/text-embedding-3-large":{"id":"openai/text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":12289,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3 Pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.1-thinking":{"id":"openai/gpt-5.1-thinking","name":"GPT 5.1 Thinking","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT 5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/codex-mini":{"id":"openai/codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.38},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT 5.4 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"gpt-oss-safeguard-20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3,"cache_read":0.04},"limit":{"context":131072,"input":65536,"output":65536}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 ","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT 5.4 Nano","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":131072,"input":98304,"output":32768}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":8192,"input":4096,"output":4096}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT 5.4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1 Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"cohere/embed-v4.0":{"id":"cohere/embed-v4.0","name":"Embed v4.0","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"cohere/command-a":{"id":"cohere/command-a","name":"Command A","family":"command","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"minimax/minimax-m2.1-lightning":{"id":"minimax/minimax-m2.1-lightning","name":"MiniMax M2.1 Lightning","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.4,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"MiniMax M2.5 High Speed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4,"cache_read":0.03,"cache_write":0.375},"limit":{"context":0,"output":0}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"Minimax M2.7","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 High Speed","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131100}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.15,"cache_read":0.03,"cache_write":0.38},"limit":{"context":262114,"output":262114}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"recraft/recraft-v2":{"id":"recraft/recraft-v2","name":"Recraft V2","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"recraft/recraft-v3":{"id":"recraft/recraft-v3","name":"Recraft V3","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":8000}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":8000}},"perplexity/sonar-reasoning":{"id":"perplexity/sonar-reasoning","name":"Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":8000}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-sonnet-20240620":{"id":"anthropic/claude-3.5-sonnet-20240620","name":"Claude 3.5 Sonnet (2024-06-20)","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":256000}},"xai/grok-4.20-non-reasoning-beta":{"id":"xai/grok-4.20-non-reasoning-beta","name":"Grok 4.20 Beta Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-non-reasoning":{"id":"xai/grok-4.20-non-reasoning","name":"Grok 4.20 Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image":{"id":"xai/grok-imagine-image","name":"Grok Imagine Image","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4.20-reasoning":{"id":"xai/grok-4.20-reasoning","name":"Grok 4.20 Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4.20-reasoning-beta":{"id":"xai/grok-4.20-reasoning-beta","name":"Grok 4.20 Beta Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-multi-agent":{"id":"xai/grok-4.20-multi-agent","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image-pro":{"id":"xai/grok-imagine-image-pro","name":"Grok Imagine Image Pro","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4.20-multi-agent-beta":{"id":"xai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi Agent Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-3-fast":{"id":"xai/grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"xai/grok-3-mini-fast":{"id":"xai/grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-2-vision":{"id":"xai/grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}}}},"openai":{"id":"openai","env":["OPENAI_API_KEY"],"npm":"@ai-sdk/openai","name":"OpenAI","doc":"https://platform.openai.com/docs/models","models":{"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":272000,"output":272000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2022-12","release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"codex-mini-latest":{"id":"codex-mini-latest","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-05-13":{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"o3-deep-research":{"id":"o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"o1":{"id":"o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"o4-mini-deep-research":{"id":"o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":100000,"output":32000}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-3.5-turbo":{"id":"gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"context_over_200k":{"input":60,"output":270}},"limit":{"context":1050000,"input":922000,"output":128000}},"o1-pro":{"id":"o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"gpt-4o-2024-08-06":{"id":"gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}}}},"moark":{"id":"moark","env":["MOARK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://moark.com/v1","name":"Moark","doc":"https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":14},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.1,"output":8.4},"limit":{"context":204800,"output":131072}}}},"morph":{"id":"morph","env":["MORPH_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.morphllm.com/v1","name":"Morph","doc":"https://docs.morphllm.com/api-reference/introduction","models":{"auto":{"id":"auto","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.55},"limit":{"context":32000,"output":32000}},"morph-v3-fast":{"id":"morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"morph-v3-large":{"id":"morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}}}},"cohere":{"id":"cohere","env":["COHERE_API_KEY"],"npm":"@ai-sdk/cohere","name":"Cohere","doc":"https://docs.cohere.com/docs/models","models":{"c4ai-aya-expanse-32b":{"id":"c4ai-aya-expanse-32b","name":"Aya Expanse 32B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":128000,"output":4000}},"command-a-03-2025":{"id":"command-a-03-2025","name":"Command A","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"command-r7b-arabic-02-2025":{"id":"command-r7b-arabic-02-2025","name":"Command R7B Arabic","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"command-a-translate-08-2025":{"id":"command-a-translate-08-2025","name":"Command A Translate","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":8000}},"command-r-08-2024":{"id":"command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"command-r-plus-08-2024":{"id":"command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Command A Reasoning","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":32000}},"c4ai-aya-expanse-8b":{"id":"c4ai-aya-expanse-8b","name":"Aya Expanse 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":8000,"output":4000}},"c4ai-aya-vision-8b":{"id":"c4ai-aya-vision-8b","name":"Aya Vision 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"c4ai-aya-vision-32b":{"id":"c4ai-aya-vision-32b","name":"Aya Vision 32B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"command-r7b-12-2024":{"id":"command-r7b-12-2024","name":"Command R7B","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"command-a-vision-07-2025":{"id":"command-a-vision-07-2025","name":"Command A Vision","family":"command-a","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":8000}}}},"v0":{"id":"v0","env":["V0_API_KEY"],"npm":"@ai-sdk/vercel","name":"v0","doc":"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel","models":{"v0-1.0-md":{"id":"v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0-1.5-lg","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":512000,"output":32000}}}},"minimax":{"id":"minimax","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax (minimax.io)","doc":"https://platform.minimax.io/docs/guides/quickstart","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"vultr":{"id":"vultr","env":["VULTR_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.vultrinference.com/v1","name":"Vultr","doc":"https://api.vultrinference.com/","models":{"Llama-3_1-Nemotron-Ultra-253B-v1":{"id":"Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama 3.1 Nemotron Ultra 253B v1","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.8},"limit":{"context":32000,"output":4096}},"DeepSeek-R1-Distill-Qwen-32B":{"id":"DeepSeek-R1-Distill-Qwen-32B","name":"DeepSeek R1 Distill Qwen 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":130000,"output":4096}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196000,"output":4096}},"Kimi-K2.5":{"id":"Kimi-K2.5","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.75},"limit":{"context":261000,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-23","last_updated":"2025-06-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":130000,"output":8192}},"DeepSeek-V3.2":{"id":"DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":163000,"output":4096}},"GLM-5-FP8":{"id":"GLM-5-FP8","name":"GLM 5 FP8","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":3.1},"limit":{"context":202000,"output":131072}},"NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4":{"id":"NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4","name":"NVIDIA Nemotron 3 Super 120B A12B NVFP4","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":260000,"output":8192}},"DeepSeek-R1-Distill-Llama-70B":{"id":"DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":130000,"output":4096}}}},"baseten":{"id":"baseten","env":["BASETEN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.baseten.co/v1","name":"Baseten","doc":"https://docs.baseten.co/development/model-apis/overview","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":200000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":202752,"output":131072}},"nvidia/Nemotron-120B-A12B":{"id":"nvidia/Nemotron-120B-A12B","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.75},"limit":{"context":262144,"output":32678}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204000,"output":204000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":164000,"output":131000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-01","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":163800,"output":131100},"status":"deprecated"},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.77,"output":0.77},"limit":{"context":164000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-09-05","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-01-30","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":8192}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":128000,"output":128000}}}},"jiekou":{"id":"jiekou","env":["JIEKOU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.jiekou.ai/openai","name":"Jiekou.AI","doc":"https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev","models":{"gpt-5-codex":{"id":"gpt-5-codex","name":"gpt-5-codex","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":108},"limit":{"context":400000,"output":272000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":22.5},"limit":{"context":200000,"output":65536}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65536}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"gpt-5-chat-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"gemini-2.5-pro-preview-06-05","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":200000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"gpt-5.1-codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-0709":{"id":"grok-4-0709","name":"grok-4-0709","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":256000,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"gpt-5.2-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"claude-opus-4-6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"grok-code-fast-1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.35},"limit":{"context":256000,"output":256000}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"gemini-2.5-flash-preview-05-20","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.135,"output":3.15},"limit":{"context":1048576,"output":200000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":2.25},"limit":{"context":1048576,"output":65535}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"o3":{"id":"o3","name":"o3","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40},"limit":{"context":131072,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"claude-opus-4-20250514","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"gpt-5.1-codex-mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.575,"output":12.6},"limit":{"context":400000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.5},"limit":{"context":20000,"output":64000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"gemini-2.5-flash-lite-preview-06-17","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","video","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"gpt-5.1-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"gpt-5.2-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18.9,"output":151.2},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":10.8},"limit":{"context":1048576,"output":65536}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":131072,"output":131072}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"claude-sonnet-4-20250514","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":65535}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36},"limit":{"context":400000,"output":128000}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":128000}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":65536,"output":16384}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.14},"limit":{"context":163840,"output":163840}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","family":"ernie","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":131072,"output":16384}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"qwen/qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":131072}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}}}},"meganova":{"id":"meganova","env":["MEGANOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.meganova.ai/v1","name":"Meganova","doc":"https://docs.meganova.ai","models":{"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.9},"limit":{"context":202752,"output":131072}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":202752,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56},"limit":{"context":202752,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":32000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":131072}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-10-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.15},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.88},"limit":{"context":163840,"output":163840}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.8},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.6},"limit":{"context":262144,"output":262144}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":16384}},"Qwen/Qwen3.5-Plus":{"id":"Qwen/Qwen3.5-Plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":16384,"output":16384}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":65536}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}}}},"perplexity":{"id":"perplexity","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/perplexity","name":"Perplexity","doc":"https://docs.perplexity.ai","models":{"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":4096}},"sonar":{"id":"sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"sonar-pro":{"id":"sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}}}},"huggingface":{"id":"huggingface","env":["HF_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://router.huggingface.co/v1","name":"Hugging Face","doc":"https://huggingface.co/docs/inference-providers","models":{"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":4096}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3-Coder-Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Embedding-4B":{"id":"Qwen/Qwen3-Embedding-4B","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen 3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2},"limit":{"context":262144,"output":131072}}}},"anthropic":{"id":"anthropic","env":["ANTHROPIC_API_KEY"],"npm":"@ai-sdk/anthropic","name":"Anthropic","doc":"https://docs.anthropic.com/en/docs/about-claude/models","models":{"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku-latest":{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-3-sonnet-20240229":{"id":"claude-3-sonnet-20240229","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"claude-sonnet-4-0":{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-0":{"id":"claude-opus-4-0","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-3-7-sonnet-latest":{"id":"claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-opus-20240229":{"id":"claude-3-opus-20240229","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}}}},"tencent-coding-plan":{"id":"tencent-coding-plan","env":["TENCENT_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.lkeap.cloud.tencent.com/coding/v3","name":"Tencent Coding Plan (China)","doc":"https://cloud.tencent.com/document/product/1772/128947","models":{"hunyuan-turbos":{"id":"hunyuan-turbos","name":"Hunyuan-TurboS","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"tc-code-latest":{"id":"tc-code-latest","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"hunyuan-t1":{"id":"hunyuan-t1","name":"Hunyuan-T1","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-instruct":{"id":"hunyuan-2.0-instruct","name":"Tencent HY 2.0 Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-thinking":{"id":"hunyuan-2.0-thinking","name":"Tencent HY 2.0 Think","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":32768}}}},"google-vertex-anthropic":{"id":"google-vertex-anthropic","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex/anthropic","name":"Vertex (Anthropic)","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude","models":{"claude-sonnet-4-5@20250929":{"id":"claude-sonnet-4-5@20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-1@20250805":{"id":"claude-opus-4-1@20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-7-sonnet@20250219":{"id":"claude-3-7-sonnet@20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4@20250514":{"id":"claude-opus-4@20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-opus-4-5@20251101":{"id":"claude-opus-4-5@20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku@20241022":{"id":"claude-3-5-haiku@20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-sonnet-4@20250514":{"id":"claude-sonnet-4@20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-5-sonnet@20241022":{"id":"claude-3-5-sonnet@20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-opus-4-6@default":{"id":"claude-opus-4-6@default","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"claude-haiku-4-5@20251001":{"id":"claude-haiku-4-5@20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-6@default":{"id":"claude-sonnet-4-6@default","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}}}},"friendli":{"id":"friendli","env":["FRIENDLI_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.friendli.ai/serverless/v1","name":"Friendli","doc":"https://friendli.ai/docs/guides/serverless_endpoints/introduction","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":202752}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":202752}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-13","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":8000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":0.6},"limit":{"context":131072,"output":131072}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}}}},"kilo":{"id":"kilo","env":["KILO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.kilo.ai/api/gateway","name":"Kilo Gateway","doc":"https://kilo.ai","models":{"giga-potato-thinking":{"id":"giga-potato-thinking","name":"Giga Potato Thinking (free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"corethink:free":{"id":"corethink:free","name":"CoreThink (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":78000,"output":8192}},"morph-warp-grep-v2":{"id":"morph-warp-grep-v2","name":"Morph: WarpGrep V2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"giga-potato":{"id":"giga-potato","name":"Giga Potato (free)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Prime Intellect: INTELLECT-3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"allenai/olmo-2-0325-32b-instruct":{"id":"allenai/olmo-2-0325-32b-instruct","name":"AllenAI: Olmo 2 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":128000,"output":32768}},"allenai/olmo-3-7b-instruct":{"id":"allenai/olmo-3-7b-instruct","name":"AllenAI: Olmo 3 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"AllenAI: Olmo 3 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"AllenAI: Molmo2 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-09","last_updated":"2026-01-31","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"output":36864}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"AllenAI: Olmo 3.1 32B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"output":32768}},"allenai/olmo-3-7b-think":{"id":"allenai/olmo-3-7b-think","name":"AllenAI: Olmo 3 7B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"AllenAI: Olmo 3.1 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"Nex AGI: DeepSeek V3.1 Nex N1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":163840}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"NVIDIA: Llama 3.1 Nemotron 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":131072,"output":16384}},"nvidia/nemotron-3-super-120b-a12b:free":{"id":"nvidia/nemotron-3-super-120b-a12b:free","name":"NVIDIA: Nemotron 3 Super (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"NVIDIA: Llama 3.3 Nemotron Super 49B V1.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"NVIDIA: Nemotron Nano 12B 2 VL","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"NVIDIA: Nemotron Nano 9B V2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"NVIDIA: Nemotron 3 Nano 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":262144,"output":52429}},"ibm-granite/granite-4.0-h-micro":{"id":"ibm-granite/granite-4.0-h-micro","name":"IBM: Granite 4.0 Micro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.017,"output":0.11},"limit":{"context":131000,"output":32768}},"arcee-ai/coder-large":{"id":"arcee-ai/coder-large","name":"Arcee AI: Coder Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":0.8},"limit":{"context":32768,"output":32768}},"arcee-ai/virtuoso-large":{"id":"arcee-ai/virtuoso-large","name":"Arcee AI: Virtuoso Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":1.2},"limit":{"context":131072,"output":64000}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Arcee AI: Trinity Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"arcee-ai/maestro-reasoning":{"id":"arcee-ai/maestro-reasoning","name":"Arcee AI: Maestro Reasoning","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":3.3},"limit":{"context":131072,"output":32000}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Arcee AI: Trinity Large Preview (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131000,"output":26200}},"arcee-ai/spotlight":{"id":"arcee-ai/spotlight","name":"Arcee AI: Spotlight","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":131072,"output":65537}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi: MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29,"cache_read":0.045},"limit":{"context":262144,"output":65536}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Microsoft: Phi 4","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.14},"limit":{"context":16384,"output":16384}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"alfredpros/codellama-7b-instruct-solidity":{"id":"alfredpros/codellama-7b-instruct-solidity","name":"AlfredPros: CodeLLaMa 7B Instruct Solidity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"liquid/lfm-2.2-6b":{"id":"liquid/lfm-2.2-6b","name":"LiquidAI: LFM2-2.6B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"liquid/lfm-2-24b-a2b":{"id":"liquid/lfm-2-24b-a2b","name":"LiquidAI: LFM2-24B-A2B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.12},"limit":{"context":32768,"output":32768}},"liquid/lfm2-8b-a1b":{"id":"liquid/lfm2-8b-a1b","name":"LiquidAI: LFM2-8B-A1B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"upstage/solar-pro-3":{"id":"upstage/solar-pro-3","name":"Upstage: Solar Pro 3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"switchpoint/router":{"id":"switchpoint/router","name":"Switchpoint Router","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-07-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.4},"limit":{"context":131072,"output":32768}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Inception: Mercury 2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Inception: Mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Inception: Mercury Coder","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"kilo-auto/balanced":{"id":"kilo-auto/balanced","name":"Kilo Auto Balanced","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3},"limit":{"context":204800,"output":131072}},"kilo-auto/free":{"id":"kilo-auto/free","name":"Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"kilo-auto/small":{"id":"kilo-auto/small","name":"Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"kilo-auto/frontier":{"id":"kilo-auto/frontier","name":"Kilo Auto Frontier","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon: Nova Micro 1.0","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14},"limit":{"context":128000,"output":5120}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon: Nova Lite 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":300000,"output":5120}},"amazon/nova-premier-v1":{"id":"amazon/nova-premier-v1","name":"Amazon: Nova Premier 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":32000}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon: Nova 2 Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65535}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon: Nova Pro 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":300000,"output":5120}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":16384,"output":2048}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"EssentialAI: Rnj 1 Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":6554}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"MythoMax 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.06},"limit":{"context":4096,"output":4096}},"alibaba/tongyi-deepresearch-30b-a3b":{"id":"alibaba/tongyi-deepresearch-30b-a3b","name":"Tongyi DeepResearch 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.45},"limit":{"context":131072,"output":131072}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"AionLabs: Aion-1.0-Mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":1.4},"limit":{"context":131072,"output":32768}},"aion-labs/aion-2.0":{"id":"aion-labs/aion-2.0","name":"AionLabs: Aion-2.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":131072,"output":32768}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"AionLabs: Aion-RP 1.0 (8B)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":32768,"output":32768}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"AionLabs: Aion-1.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4,"output":8},"limit":{"context":131072,"output":32768}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"StepFun: Step 3.5 Flash (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"StepFun: Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"relace/relace-search":{"id":"relace/relace-search","name":"Relace: Relace Search","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":256000,"output":128000}},"relace/relace-apply-3":{"id":"relace/relace-apply-3","name":"Relace: Relace Apply 3","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-09-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.25},"limit":{"context":256000,"output":128000}},"thedrummer/rocinante-12b":{"id":"thedrummer/rocinante-12b","name":"TheDrummer: Rocinante 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.43},"limit":{"context":32768,"output":32768}},"thedrummer/cydonia-24b-v4.1":{"id":"thedrummer/cydonia-24b-v4.1","name":"TheDrummer: Cydonia 24B V4.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"output":131072}},"thedrummer/unslopnemo-12b":{"id":"thedrummer/unslopnemo-12b","name":"TheDrummer: UnslopNemo 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"thedrummer/skyfall-36b-v2":{"id":"thedrummer/skyfall-36b-v2","name":"TheDrummer: Skyfall 36B V2","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":0.8},"limit":{"context":32768,"output":32768}},"mancer/weaver":{"id":"mancer/weaver","name":"Mancer: Weaver (alpha)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":1},"limit":{"context":8000,"output":2000}},"tencent/hunyuan-a13b-instruct":{"id":"tencent/hunyuan-a13b-instruct","name":"Tencent: Hunyuan A13B Instruct","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131072,"output":131072}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kwaipilot: KAT-Coder-Pro V1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.207,"output":0.828,"cache_read":0.0414},"limit":{"context":256000,"output":128000}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek: R1 0528","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.15,"cache_read":0.2},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek: R1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek: DeepSeek V3.2 Speciale","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek: DeepSeek V3.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":32768,"output":7168}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek: DeepSeek V3 0324","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.77,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek: R1 Distill Llama 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.8,"cache_read":0.015},"limit":{"context":131072,"output":16384}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek: DeepSeek V3.1 Terminus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.21,"output":0.79,"cache_read":0.13},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek: DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38,"cache_read":0.125},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek: DeepSeek V3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":0.89,"cache_read":0.15},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-qwen-32b":{"id":"deepseek/deepseek-r1-distill-qwen-32b","name":"DeepSeek: R1 Distill Qwen 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.29},"limit":{"context":32768,"output":32768}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek: DeepSeek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"alpindale/goliath-120b":{"id":"alpindale/goliath-120b","name":"Goliath 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-11-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.75,"output":7.5},"limit":{"context":6144,"output":1024}},"openrouter/hunter-alpha":{"id":"openrouter/hunter-alpha","name":"Hunter Alpha","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1048576,"output":32000}},"openrouter/auto":{"id":"openrouter/auto","name":"Auto Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["image","text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000000,"output":32768}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":32768}},"openrouter/healer-alpha":{"id":"openrouter/healer-alpha","name":"Healer Alpha","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["audio","image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32000}},"openrouter/bodybuilder":{"id":"openrouter/bodybuilder","name":"Body Builder (beta)","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768},"status":"beta"},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"MoonshotAI: Kimi K2 0711","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131000,"output":26215}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"MoonshotAI: Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":131072,"output":26215}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"MoonshotAI: Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.2},"limit":{"context":262144,"output":65535}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"MoonshotAI: Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2,"cache_read":0.2},"limit":{"context":131072,"output":65535}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"Baidu: ERNIE 4.5 VL 424B A47B ","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"Baidu: ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.56},"limit":{"context":30000,"output":8000}},"baidu/ernie-4.5-21b-a3b-thinking":{"id":"baidu/ernie-4.5-21b-a3b-thinking","name":"Baidu: ERNIE 4.5 21B A3B Thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"Baidu: ERNIE 4.5 300B A47B ","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21b-a3b":{"id":"baidu/ernie-4.5-21b-a3b","name":"Baidu: ERNIE 4.5 21B A3B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Google: Gemini 2.5 Flash Lite Preview 09-2025","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Google: Gemini 3.1 Pro Preview Custom Tools","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Google: Gemini 2.5 Pro Preview 05-06","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65535}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"reasoning":2.5,"cache_read":0.03,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-2.5-pro-preview":{"id":"google/gemini-2.5-pro-preview","name":"Google: Gemini 2.5 Pro Preview 06-05","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-05","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":65536,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Google: Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"cache_write":0.083333},"limit":{"context":1048576,"output":8192}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Google: Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Google: Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"reasoning":3,"cache_read":0.05,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Google: Gemma 2 27B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.65},"limit":{"context":8192,"output":2048}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Google: Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Google: Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-lite-001":{"id":"google/gemini-2.0-flash-lite-001","name":"Google: Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Google: Nano Banana (Gemini 2.5 Flash Image)","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-08","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemini-3-pro-image-preview":{"id":"google/gemini-3-pro-image-preview","name":"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":65536,"output":32768}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Google: Gemma 2 9B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":1639}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Google: Gemma 3n 4B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":6554}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Google: Gemini 3 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-18","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"cache_read":0.2,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Google: Gemma 3 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.13,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Google: Gemma 3 4B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.08},"limit":{"context":131072,"output":19200}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Google: Gemma 3 27B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Google: Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z.ai: GLM 5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":2.3},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"Z.ai: GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85,"cache_read":0.025},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"Z.ai: GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.175},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"Z.ai: GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":202752,"output":40551}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z.ai: GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.175},"limit":{"context":204800,"output":204800}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z.ai: GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.98,"cache_read":0.2},"limit":{"context":202752,"output":65535}},"z-ai/glm-4-32b":{"id":"z-ai/glm-4-32b","name":"Z.ai: GLM 4 32B ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"Z.ai: GLM 4.5V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"Z.ai: GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-01-10","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":131072,"output":131072}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Deep Cogito: Cogito v2.1 671B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":32768}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan: LongCat Flash Chat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8,"cache_read":0.2},"limit":{"context":131072,"output":131072}},"bytedance/ui-tars-1.5-7b":{"id":"bytedance/ui-tars-1.5-7b","name":"ByteDance: UI-TARS 7B ","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"output":2048}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-07-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":0.65},"limit":{"context":6144,"output":4096}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen: Qwen3.5-27B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.195,"output":1.56},"limit":{"context":262144,"output":65536}},"qwen/qwen-vl-plus":{"id":"qwen/qwen-vl-plus","name":"Qwen: Qwen VL Plus","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1365,"output":0.4095,"cache_read":0.042},"limit":{"context":131072,"output":8192}},"qwen/qwen-vl-max":{"id":"qwen/qwen-vl-max","name":"Qwen: Qwen VL Max","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen: Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0975,"output":0.78},"limit":{"context":131072,"output":32768}},"qwen/qwen-2.5-vl-7b-instruct":{"id":"qwen/qwen-2.5-vl-7b-instruct","name":"Qwen: Qwen2.5-VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-28","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"output":6554}},"qwen/qwen3-max-thinking":{"id":"qwen/qwen3-max-thinking","name":"Qwen: Qwen3 Max Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.78,"output":3.9},"limit":{"context":262144,"output":32768}},"qwen/qwen3-14b":{"id":"qwen/qwen3-14b","name":"Qwen: Qwen3 14B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.025},"limit":{"context":40960,"output":40960}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen: Qwen3.5-35B-A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1625,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.4},"limit":{"context":32768,"output":32768}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen: Qwen3 Coder Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.195,"output":0.975,"cache_read":0.06},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-vl-8b-thinking":{"id":"qwen/qwen3-vl-8b-thinking","name":"Qwen: Qwen3 VL 8B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.117,"output":1.365},"limit":{"context":131072,"output":32768}},"qwen/qwen2.5-vl-32b-instruct":{"id":"qwen/qwen2.5-vl-32b-instruct","name":"Qwen: Qwen2.5 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.025},"limit":{"context":128000,"output":16384}},"qwen/qwen-max":{"id":"qwen/qwen-max","name":"Qwen: Qwen-Max ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-03","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.04,"output":4.16,"cache_read":0.32},"limit":{"context":32768,"output":8192}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen: Qwen2.5 Coder 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":32768,"output":6554}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen: Qwen3 Coder Next","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.75,"cache_read":0.035},"limit":{"context":262144,"output":65536}},"qwen/qwen-turbo":{"id":"qwen/qwen-turbo","name":"Qwen: Qwen-Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0325,"output":0.13,"cache_read":0.01},"limit":{"context":131072,"output":8192}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen: Qwen3 Coder 480B A35B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1,"cache_read":0.022},"limit":{"context":262144,"output":52429}},"qwen/qwen3-8b":{"id":"qwen/qwen3-8b","name":"Qwen: Qwen3 8B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.05},"limit":{"context":40960,"output":8192}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen: Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"qwen/qwen3-235b-a22b-2507":{"id":"qwen/qwen3-235b-a22b-2507","name":"Qwen: Qwen3 235B A22B Instruct 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.071,"output":0.1},"limit":{"context":262144,"output":52429}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen: Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":2.34},"limit":{"context":262144,"output":65536}},"qwen/qwen-2.5-7b-instruct":{"id":"qwen/qwen-2.5-7b-instruct","name":"Qwen: Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.1},"limit":{"context":32768,"output":6554}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-11-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2,"cache_read":0.015},"limit":{"context":32768,"output":8192}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen: Qwen3.5 Plus 2026-02-15","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":1.56},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen: Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.3,"cache_read":0.04},"limit":{"context":262144,"output":262144}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen: Qwen2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen: Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.455,"output":1.82,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen: Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen: Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.88,"cache_read":0.11},"limit":{"context":262144,"output":52429}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.39},"limit":{"context":32768,"output":16384}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"Qwen: Qwen3 VL 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":1.56},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen: Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.6},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen: Qwen3 30B A3B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":32768,"output":6554}},"qwen/qwen-plus":{"id":"qwen/qwen-plus","name":"Qwen: Qwen-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen: Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-9b":{"id":"qwen/qwen3.5-9b","name":"Qwen: Qwen3.5-9B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":32768}},"qwen/qwen-plus-2025-07-28":{"id":"qwen/qwen-plus-2025-07-28","name":"Qwen: Qwen Plus 0728","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"Qwen: Qwen3 VL 30B A3B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen: Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":131072,"output":52429}},"qwen/qwen3-vl-32b-instruct":{"id":"qwen/qwen3-vl-32b-instruct","name":"Qwen: Qwen3 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.104,"output":0.416},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"Qwen: Qwen3 VL 8B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen: Qwen3.5-122B-A10B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.08},"limit":{"context":262144,"output":65536}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen: Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"qwen/qwen3-30b-a3b":{"id":"qwen/qwen3-30b-a3b","name":"Qwen: Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.28,"cache_read":0.03},"limit":{"context":40960,"output":40960}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen: Qwen3 Coder Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3.25,"cache_read":0.2},"limit":{"context":1000000,"output":65536}},"qwen/qwen-plus-2025-07-28:thinking":{"id":"qwen/qwen-plus-2025-07-28:thinking","name":"Qwen: Qwen Plus 0728 (thinking)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen3.5-flash-02-23":{"id":"qwen/qwen3.5-flash-02-23","name":"Qwen: Qwen3.5-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"eleutherai/llemma_7b":{"id":"eleutherai/llemma_7b","name":"EleutherAI: Llemma 7b","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"xAI: Grok 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"xAI: Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"xAI: Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"xAI: Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":51200}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"xAI: Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"xAI: Grok 3 Mini Beta","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"xAI: Grok 3 Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-code-fast-1:optimized:free":{"id":"x-ai/grok-code-fast-1:optimized:free","name":"xAI: Grok Code Fast 1 Optimized (experimental, free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":10000}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"xAI: Grok 4.20 Multi-Agent Beta","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"xAI: Grok 4.20 Beta","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"xAI: Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Meta: Llama 4 Scout","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":327680,"output":16384}},"meta-llama/llama-3.1-70b-instruct":{"id":"meta-llama/llama-3.1-70b-instruct","name":"Meta: Llama 3.1 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":26215}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Meta: Llama 3.3 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Meta: Llama 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Meta: Llama 3.2 11B Vision Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.049,"output":0.049},"limit":{"context":131072,"output":16384}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Meta: Llama 3.2 3B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":80000,"output":16384}},"meta-llama/llama-guard-3-8b":{"id":"meta-llama/llama-guard-3-8b","name":"Llama Guard 3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06},"limit":{"context":131072,"output":26215}},"meta-llama/llama-3.2-1b-instruct":{"id":"meta-llama/llama-3.2-1b-instruct","name":"Meta: Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.027,"output":0.2},"limit":{"context":60000,"output":12000}},"meta-llama/llama-3.1-405b-instruct":{"id":"meta-llama/llama-3.1-405b-instruct","name":"Meta: Llama 3.1 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":131000,"output":26200}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Meta: Llama 4 Maverick","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-12-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048576,"output":16384}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Meta: Llama 3.1 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Meta: Llama Guard 4 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":163840,"output":32768}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Meta: Llama 3 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.04},"limit":{"context":8192,"output":16384}},"meta-llama/llama-3.1-405b":{"id":"meta-llama/llama-3.1-405b","name":"Meta: Llama 3.1 405B (base)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":32768,"output":32768}},"tngtech/deepseek-r1t2-chimera":{"id":"tngtech/deepseek-r1t2-chimera","name":"TNG: DeepSeek R1T2 Chimera","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85,"cache_read":0.125},"limit":{"context":163840,"output":163840}},"mistralai/voxtral-small-24b-2507":{"id":"mistralai/voxtral-small-24b-2507","name":"Mistral: Voxtral Small 24B 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32000,"output":6400}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Mistral: Ministral 3 3B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":32768}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral: Saba","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":32768,"output":32768}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral: Mistral Medium 3","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-24b-instruct-2501":{"id":"mistralai/mistral-small-24b-instruct-2501","name":"Mistral: Mistral Small 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":32768,"output":16384}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Mistral: Codestral 2508","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":51200}},"mistralai/pixtral-large-2411":{"id":"mistralai/pixtral-large-2411","name":"Mistral: Pixtral Large 2411","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral: Mistral Small 3.1 24B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.56,"cache_read":0.015},"limit":{"context":128000,"output":131072}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral: Mistral Small Creative","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"output":32768}},"mistralai/mistral-large-2512":{"id":"mistralai/mistral-large-2512","name":"Mistral: Mistral Large 3 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":52429}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Mistral: Ministral 3 8B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"output":32768}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Mistral: Ministral 3 14B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"output":52429}},"mistralai/devstral-medium":{"id":"mistralai/devstral-medium","name":"Mistral: Devstral Medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-large-2407":{"id":"mistralai/mistral-large-2407","name":"Mistral Large 2407","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral: Mistral Nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":16384}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Mistral: Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.025},"limit":{"context":262144,"output":65536}},"mistralai/devstral-small":{"id":"mistralai/devstral-small","name":"Mistral: Devstral Small 1.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral: Mistral Small 3.2 24B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18,"cache_read":0.03},"limit":{"context":131072,"output":131072}},"mistralai/mixtral-8x22b-instruct":{"id":"mistralai/mixtral-8x22b-instruct","name":"Mistral: Mixtral 8x22B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":65536,"output":13108}},"mistralai/mistral-large-2411":{"id":"mistralai/mistral-large-2411","name":"Mistral Large 2411","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":26215}},"mistralai/mistral-7b-instruct-v0.1":{"id":"mistralai/mistral-7b-instruct-v0.1","name":"Mistral: Mistral 7B Instruct v0.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":2824,"output":565}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":25600}},"mistralai/mixtral-8x7b-instruct":{"id":"mistralai/mixtral-8x7b-instruct","name":"Mistral: Mixtral 8x7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-12-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.54,"output":0.54},"limit":{"context":32768,"output":16384}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral: Mistral Medium 3.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"OpenAI: GPT-4o (2024-11-20)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"OpenAI: GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-02-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"OpenAI: GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"OpenAI: GPT-5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"OpenAI: GPT-4o-mini Search Preview","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-4o:extended":{"id":"openai/gpt-4o:extended","name":"OpenAI: GPT-4o (extended)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":18},"limit":{"context":128000,"output":64000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"OpenAI: GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-2024-05-13":{"id":"openai/gpt-4o-2024-05-13","name":"OpenAI: GPT-4o (2024-05-13)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"openai/gpt-4o-audio-preview":{"id":"openai/gpt-4o-audio-preview","name":"OpenAI: GPT-4o Audio","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-15","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-2024-07-18":{"id":"openai/gpt-4o-mini-2024-07-18","name":"OpenAI: GPT-4o-mini (2024-07-18)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"OpenAI: GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-audio":{"id":"openai/gpt-audio","name":"OpenAI: GPT Audio","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI: o3 Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"openai/gpt-3.5-turbo-16k":{"id":"openai/gpt-3.5-turbo-16k","name":"OpenAI: GPT-3.5 Turbo 16k","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16385,"output":4096}},"openai/o1":{"id":"openai/o1","name":"OpenAI: o1","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"OpenAI: GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5-image-mini":{"id":"openai/gpt-5-image-mini","name":"OpenAI: GPT-5 Image Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2.5,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"OpenAI: GPT-5.2 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI: o4 Mini Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"OpenAI: GPT-5 Chat","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"OpenAI: GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"OpenAI: o3","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"OpenAI: GPT-4 Turbo Preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"OpenAI: GPT-5 Image","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":10,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"OpenAI: GPT-4.1 Nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1047576,"output":32768}},"openai/gpt-3.5-turbo-0613":{"id":"openai/gpt-3.5-turbo-0613","name":"OpenAI: GPT-3.5 Turbo (older v0613)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":4095,"output":4096}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"OpenAI: GPT-3.5 Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI: gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.039,"output":0.19},"limit":{"context":131072,"output":26215}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI: GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"OpenAI: GPT-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/o3-pro":{"id":"openai/o3-pro","name":"OpenAI: o3 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"OpenAI: GPT-4 Turbo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-09-13","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI: GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI: o4 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"OpenAI: GPT-4.1 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-4-0314":{"id":"openai/gpt-4-0314","name":"OpenAI: GPT-4 (older v0314)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-audio-mini":{"id":"openai/gpt-audio-mini","name":"OpenAI: GPT Audio Mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"output":16384}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"OpenAI: GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"OpenAI: GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"output":128000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"OpenAI: GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2026-03-04","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"openai/gpt-4-1106-preview":{"id":"openai/gpt-4-1106-preview","name":"OpenAI: GPT-4 Turbo (older v1106)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"OpenAI: gpt-oss-safeguard-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.037},"limit":{"context":131072,"output":65536}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI: o1-pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"release_date":"2025-03-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"OpenAI: GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"OpenAI: GPT-5.2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI: o3 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-20","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"OpenAI: GPT-4o (2024-08-06)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"OpenAI: GPT-5 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":26215}},"openai/gpt-4":{"id":"openai/gpt-4","name":"OpenAI: GPT-4","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-14","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"OpenAI: GPT-5 Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"OpenAI: GPT-3.5 Turbo Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4095,"output":4096}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI: o3 Mini High","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI: o4 Mini High","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-04-17","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"OpenAI: GPT-4o","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"OpenAI: GPT-4o Search Preview","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph: Morph V3 Fast","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":81920,"output":38000}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph: Morph V3 Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":262144,"output":131072}},"cohere/command-r-08-2024":{"id":"cohere/command-r-08-2024","name":"Cohere: Command R (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+ (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"cohere/command-r7b-12-2024":{"id":"cohere/command-r7b-12-2024","name":"Cohere: Command R7B (12-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"cohere/command-a":{"id":"cohere/command-a","name":"Cohere: Command A","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8192}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax: MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax: MiniMax-01","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000192,"output":1000192}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax: MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03},"limit":{"context":196608,"output":39322}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax: MiniMax M2-her","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":65536,"output":2048}},"minimax/minimax-m2.5:free":{"id":"minimax/minimax-m2.5:free","name":"MiniMax: MiniMax M2.5 (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax: MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.255,"output":1,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax: MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.2,"cache_read":0.029},"limit":{"context":196608,"output":196608}},"sao10k/l3.1-70b-hanami-x1":{"id":"sao10k/l3.1-70b-hanami-x1","name":"Sao10K: Llama 3.1 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-08","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":16000,"output":16000}},"sao10k/l3-lunaris-8b":{"id":"sao10k/l3-lunaris-8b","name":"Sao10K: Llama 3 8B Lunaris","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.05},"limit":{"context":8192,"output":8192}},"sao10k/l3.1-euryale-70b":{"id":"sao10k/l3.1-euryale-70b","name":"Sao10K: Llama 3.1 Euryale 70B v2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":0.85},"limit":{"context":131072,"output":16384}},"sao10k/l3-euryale-70b":{"id":"sao10k/l3-euryale-70b","name":"Sao10k: Llama 3 Euryale 70B v2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3.3-euryale-70b":{"id":"sao10k/l3.3-euryale-70b","name":"Sao10K: Llama 3.3 Euryale 70B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.75},"limit":{"context":131072,"output":16384}},"writer/palmyra-x5":{"id":"writer/palmyra-x5","name":"Writer: Palmyra X5","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Perplexity: Sonar Reasoning Pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Perplexity: Sonar","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127072,"output":25415}},"perplexity/sonar-deep-research":{"id":"perplexity/sonar-deep-research","name":"Perplexity: Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Perplexity: Sonar Pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar-pro-search":{"id":"perplexity/sonar-pro-search","name":"Perplexity: Sonar Pro Search","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-31","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"bytedance-seed/seed-2.0-mini":{"id":"bytedance-seed/seed-2.0-mini","name":"ByteDance Seed: Seed-2.0-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-27","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"output":131072}},"bytedance-seed/seed-1.6":{"id":"bytedance-seed/seed-1.6","name":"ByteDance Seed: Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-1.6-flash":{"id":"bytedance-seed/seed-1.6-flash","name":"ByteDance Seed: Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-2.0-lite":{"id":"bytedance-seed/seed-2.0-lite","name":"ByteDance Seed: Seed-2.0-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":131072}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Anthropic: Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Anthropic: Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Anthropic: Claude 3 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Anthropic: Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":1000000,"output":128000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Anthropic: Claude Haiku 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.7-sonnet:thinking":{"id":"anthropic/claude-3.7-sonnet:thinking","name":"Anthropic: Claude 3.7 Sonnet (thinking)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Anthropic: Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-24","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Anthropic: Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Anthropic: Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Anthropic: Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"ai21/jamba-large-1.7":{"id":"ai21/jamba-large-1.7","name":"AI21: Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":256000,"output":4096}},"kilo/auto":{"id":"kilo/auto","name":"Kilo: Auto","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"kilo/auto-free":{"id":"kilo/auto-free","name":"Deprecated Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"kilo/auto-small":{"id":"kilo/auto-small","name":"Deprecated Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection: Inflection 3 Productivity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection: Inflection 3 Pi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Nous: Hermes 4 405B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":26215}},"nousresearch/hermes-3-llama-3.1-70b":{"id":"nousresearch/hermes-3-llama-3.1-70b","name":"Nous: Hermes 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":131072,"output":32768}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Nous: Hermes 4 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.055},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-3-llama-3.1-405b":{"id":"nousresearch/hermes-3-llama-3.1-405b","name":"Nous: Hermes 3 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1},"limit":{"context":131072,"output":16384}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"NousResearch: Hermes 2 Pro - Llama-3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-05-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}}}},"nano-gpt":{"id":"nano-gpt","env":["NANO_GPT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://nano-gpt.com/api/v1","name":"NanoGPT","doc":"https://docs.nano-gpt.com","models":{"exa-research-pro":{"id":"exa-research-pro","name":"Exa (Research Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":16384,"input":16384,"output":16384}},"gemini-2.0-pro-exp-02-05":{"id":"gemini-2.0-pro-exp-02-05","name":"Gemini 2.0 Pro 0205","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.956},"limit":{"context":2097152,"input":2097152,"output":8192}},"qwen-image":{"id":"qwen-image","name":"Qwen Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3-70B-Shakudo":{"id":"Llama-3.3-70B-Shakudo","name":"Llama 3.3 70B Shakudo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"ernie-4.5-8k-preview":{"id":"ernie-4.5-8k-preview","name":"Ernie 4.5 8k Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":2.6},"limit":{"context":8000,"input":8000,"output":16384}},"claude-3-7-sonnet-thinking:128000":{"id":"claude-3-7-sonnet-thinking:128000","name":"Claude 3.7 Sonnet Thinking (128K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"phi-4-multimodal-instruct":{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.11},"limit":{"context":128000,"input":128000,"output":16384}},"z-image-turbo":{"id":"z-image-turbo","name":"Z Image Turbo","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter":{"id":"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter","name":"Llama 3.3+ 70B TenyxChat DaybreakStorywriter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"mistral-small-31-24b-instruct":{"id":"mistral-small-31-24b-instruct","name":"Mistral Small 31 24b Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"input":128000,"output":131072}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0","name":"Llama 3.3 70B Omega Directive Unslop v2.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Baichuan-M2":{"id":"Baichuan-M2","name":"Baichuan M2 32B Medical","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15.73,"output":15.73},"limit":{"context":32768,"input":32768,"output":32768}},"doubao-1.5-vision-pro-32k":{"id":"doubao-1.5-vision-pro-32k","name":"Doubao 1.5 Vision Pro 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.459,"output":1.377},"limit":{"context":32000,"input":32000,"output":8192}},"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink v2 ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-ArliAI-RPMax-v1.4":{"id":"Llama-3.3-70B-ArliAI-RPMax-v1.4","name":"Llama 3.3 70B RPMax v1.4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"jamba-large-1.6":{"id":"jamba-large-1.6","name":"Jamba Large 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"Llama-3.3-70B-Aurora-Borealis":{"id":"Llama-3.3-70B-Aurora-Borealis","name":"Llama 3.3 70B Aurora Borealis","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"ernie-x1-32k":{"id":"ernie-x1-32k","name":"Ernie X1 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"Llama-3.3-70B-Magnum-v4-SE":{"id":"Llama-3.3-70B-Magnum-v4-SE","name":"Llama 3.3 70B Magnum v4 SE","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":64000,"input":64000,"output":65536}},"KAT-Coder-Pro-V1":{"id":"KAT-Coder-Pro-V1","name":"KAT Coder Pro V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6},"limit":{"context":256000,"input":256000,"output":32768}},"hunyuan-turbos-20250226":{"id":"hunyuan-turbos-20250226","name":"Hunyuan Turbo S","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.187,"output":0.374},"limit":{"context":24000,"input":24000,"output":8192}},"jamba-large-1.7":{"id":"jamba-large-1.7","name":"Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"mercury-coder-small":{"id":"mercury-coder-small","name":"Mercury Coder Small","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-1-5-thinking-pro-vision-250415":{"id":"doubao-1-5-thinking-pro-vision-250415","name":"Doubao 1.5 Thinking Pro Vision","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"yi-medium-200k":{"id":"yi-medium-200k","name":"Yi Medium 200k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-01","last_updated":"2024-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":2.499},"limit":{"context":200000,"input":200000,"output":4096}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"deepseek-chat-cheaper":{"id":"deepseek-chat-cheaper","name":"DeepSeek V3/Chat Cheaper","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"step-r1-v-mini":{"id":"step-r1-v-mini","name":"Step R1 V Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":11},"limit":{"context":128000,"input":128000,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 0605","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"yi-lightning":{"id":"yi-lightning","name":"Yi Lightning","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-16","last_updated":"2024-10-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":12000,"input":12000,"output":4096}},"deepseek-reasoner-cheaper":{"id":"deepseek-reasoner-cheaper","name":"Deepseek R1 Cheaper","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":65536}},"ernie-4.5-turbo-vl-32k":{"id":"ernie-4.5-turbo-vl-32k","name":"Ernie 4.5 Turbo VL 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.495,"output":1.43},"limit":{"context":32000,"input":32000,"output":16384}},"v0-1.0-md":{"id":"v0-1.0-md","name":"v0 1.0 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"Llama-3.3-70B-Ignition-v0.1":{"id":"Llama-3.3-70B-Ignition-v0.1","name":"Llama 3.3 70B Ignition v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-z1-air":{"id":"glm-z1-air","name":"GLM Z1 Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"input":32000,"output":16384}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"Llama-3.3-70B-RAWMAW":{"id":"Llama-3.3-70B-RAWMAW","name":"Llama 3.3 70B RAWMAW","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Magistral-Small-2506":{"id":"Magistral-Small-2506","name":"Magistral Small 2506","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":32768,"input":32768,"output":32768}},"ernie-x1-turbo-32k":{"id":"ernie-x1-turbo-32k","name":"Ernie X1 Turbo 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.165,"output":0.66},"limit":{"context":32000,"input":32000,"output":16384}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Reasoning Pro","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":7.9985},"limit":{"context":127000,"input":127000,"output":128000}},"deepseek-r1-sambanova":{"id":"deepseek-r1-sambanova","name":"DeepSeek R1 Fast","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":6.987},"limit":{"context":128000,"input":128000,"output":4096}},"claude-3-7-sonnet-thinking:1024":{"id":"claude-3-7-sonnet-thinking:1024","name":"Claude 3.7 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP":{"id":"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP","name":"Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v3":{"id":"Llama-3.3-70B-ArliAI-RPMax-v3","name":"Llama 3.3 70B ArliAI RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen-long":{"id":"qwen-long","name":"Qwen Long 10M","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":10000000,"input":10000000,"output":8192}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Progenitor-V3.3":{"id":"Llama-3.3-70B-Progenitor-V3.3","name":"Llama 3.3 70B Progenitor V3.3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Iceblink-v2":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2","name":"GLM 4.5 Air Derestricted Iceblink v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":158600,"input":158600,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"study_gpt-chatgpt-4o-latest":{"id":"study_gpt-chatgpt-4o-latest","name":"Study Mode","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.994},"limit":{"context":200000,"input":200000,"output":16384}},"qwq-32b":{"id":"qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25599999,"output":0.30499999},"limit":{"context":128000,"input":128000,"output":32768}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 0506","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-MS-Nevoria":{"id":"Llama-3.3-70B-MS-Nevoria","name":"Llama 3.3 70B MS Nevoria","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-1-6-250615":{"id":"doubao-seed-1-6-250615","name":"Doubao Seed 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":0.51},"limit":{"context":256000,"input":256000,"output":16384}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash 0520","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048000,"input":1048000,"output":65536}},"glm-4":{"id":"glm-4","name":"GLM-4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-01-16","last_updated":"2024-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":14.994},"limit":{"context":128000,"input":128000,"output":4096}},"azure-gpt-4-turbo":{"id":"azure-gpt-4-turbo","name":"Azure gpt-4-turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.005},"limit":{"context":128000,"input":128000,"output":4096}},"Llama-3.3-70B-Legion-V2.1":{"id":"Llama-3.3-70B-Legion-V2.1","name":"Llama 3.3 70B Legion V2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-3-7-sonnet-thinking:32768":{"id":"claude-3-7-sonnet-thinking:32768","name":"Claude 3.7 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"asi1-mini":{"id":"asi1-mini","name":"ASI1 Mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"input":128000,"output":16384}},"gemini-exp-1206":{"id":"gemini-exp-1206","name":"Gemini 2.0 Pro 1206","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.258,"output":4.998},"limit":{"context":2097152,"input":2097152,"output":8192}},"qwen-max":{"id":"qwen-max","name":"Qwen 2.5 Max","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5997,"output":6.392},"limit":{"context":32000,"input":32000,"output":8192}},"brave":{"id":"brave","name":"Brave (Answers)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"doubao-1-5-thinking-pro-250415":{"id":"doubao-1-5-thinking-pro-250415","name":"Doubao 1.5 Thinking Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"claude-sonnet-4-thinking:64000":{"id":"claude-sonnet-4-thinking:64000","name":"Claude 4 Sonnet Thinking (64K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"GLM-4.5-Air-Derestricted-Steam-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Steam-ReExtract","name":"GLM 4.5 Air Derestricted Steam ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"kimi-k2-instruct-fast":{"id":"kimi-k2-instruct-fast","name":"Kimi K2 0711 Fast","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"Llama-3.3-70B-GeneticLemonade-Opus":{"id":"Llama-3.3-70B-GeneticLemonade-Opus","name":"Llama 3.3 70B GeneticLemonade Opus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Big-Tiger-v3":{"id":"Gemma-3-27B-Big-Tiger-v3","name":"Gemma 3 27B Big Tiger v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-2-0-mini-260215":{"id":"doubao-seed-2-0-mini-260215","name":"Doubao Seed 2.0 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0493,"output":0.4845},"limit":{"context":256000,"input":256000,"output":32000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"Claude Sonnet 4.5 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"glm-4-air":{"id":"glm-4-air","name":"GLM-4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":4096}},"GLM-4.5-Air-Derestricted-Iceblink-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"gemini-2.0-pro-reasoner":{"id":"gemini-2.0-pro-reasoner","name":"Gemini 2.0 Pro Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.292,"output":4.998},"limit":{"context":128000,"input":128000,"output":65536}},"gemini-2.0-flash-001":{"id":"gemini-2.0-flash-001","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":1000000,"input":1000000,"output":8192}},"glm-4-plus":{"id":"glm-4-plus","name":"GLM-4 Plus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.497,"output":7.497},"limit":{"context":128000,"input":128000,"output":4096}},"gemini-2.0-flash-exp-image-generation":{"id":"gemini-2.0-flash-exp-image-generation","name":"Gemini Text + Image","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":32767,"input":32767,"output":8192}},"GLM-4.5-Air-Derestricted":{"id":"GLM-4.5-Air-Derestricted","name":"GLM 4.5 Air Derestricted","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":202600,"input":202600,"output":98304}},"gemini-2.0-flash-thinking-exp-1219":{"id":"gemini-2.0-flash-thinking-exp-1219","name":"Gemini 2.0 Flash Thinking 1219","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-19","last_updated":"2024-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":32767,"input":32767,"output":8192}},"glm-4.1v-thinking-flashx":{"id":"glm-4.1v-thinking-flashx","name":"GLM 4.1V Thinking FlashX","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"Llama-3.3-70B-StrawberryLemonade-v1.0":{"id":"Llama-3.3-70B-StrawberryLemonade-v1.0","name":"Llama 3.3 70B StrawberryLemonade v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Fallen-v1":{"id":"Llama-3.3-70B-Fallen-v1","name":"Llama 3.3 70B Fallen v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Nidum-Uncensored":{"id":"Gemma-3-27B-Nidum-Uncensored","name":"Gemma 3 27B Nidum Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":96000}},"Llama-3.3-70B-Electranova-v1.0":{"id":"Llama-3.3-70B-Electranova-v1.0","name":"Llama 3.3 70B Electranova v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"grok-3-fast-beta":{"id":"grok-3-fast-beta","name":"Grok 3 Fast Beta","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":131072,"input":131072,"output":131072}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04998,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":8192}},"Llama-3.3-70B-Sapphira-0.1":{"id":"Llama-3.3-70B-Sapphira-0.1","name":"Llama 3.3 70B Sapphira 0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-pro-preview-03-25":{"id":"gemini-2.5-pro-preview-03-25","name":"Gemini 2.5 Pro Preview 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"step-2-16k-exp":{"id":"step-2-16k-exp","name":"Step-2 16k Exp","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.004,"output":19.992},"limit":{"context":16000,"input":16000,"output":8192}},"chroma":{"id":"chroma","name":"Chroma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"sonar":{"id":"sonar","name":"Perplexity Simple","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.003,"output":1.003},"limit":{"context":127000,"input":127000,"output":128000}},"fastgpt":{"id":"fastgpt","name":"Web Answer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-08-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.5,"output":7.5},"limit":{"context":32768,"input":32768,"output":32768}},"claude-sonnet-4-thinking:8192":{"id":"claude-sonnet-4-thinking:8192","name":"Claude 4 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Electra-R1":{"id":"Llama-3.3-70B-Electra-R1","name":"Llama 3.3 70B Electra R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Fallen-R1-v1":{"id":"Llama-3.3-70B-Fallen-R1-v1","name":"Llama 3.3 70B Fallen R1 v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-it-Abliterated":{"id":"Gemma-3-27B-it-Abliterated","name":"Gemma 3 27B IT Abliterated","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.42,"output":0.42},"limit":{"context":32768,"input":32768,"output":96000}},"doubao-1.5-pro-256k":{"id":"doubao-1.5-pro-256k","name":"Doubao 1.5 Pro 256k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.799,"output":1.445},"limit":{"context":256000,"input":256000,"output":16384}},"claude-opus-4-thinking":{"id":"claude-opus-4-thinking","name":"Claude 4 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":8192}},"doubao-1-5-thinking-vision-pro-250428":{"id":"doubao-1-5-thinking-vision-pro-250428","name":"Doubao 1.5 Thinking Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":1.43},"limit":{"context":128000,"input":128000,"output":16384}},"doubao-seed-2-0-lite-260215":{"id":"doubao-seed-2-0-lite-260215","name":"Doubao Seed 2.0 Lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1462,"output":0.8738},"limit":{"context":256000,"input":256000,"output":32000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude 4 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"qwen25-vl-72b-instruct":{"id":"qwen25-vl-72b-instruct","name":"Qwen25 VL 72b","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":32000,"input":32000,"output":32768}},"azure-gpt-4o":{"id":"azure-gpt-4o","name":"Azure gpt-4o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Deep Research","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-25","last_updated":"2025-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.4,"output":13.6},"limit":{"context":60000,"input":60000,"output":128000}},"ernie-4.5-turbo-128k":{"id":"ernie-4.5-turbo-128k","name":"Ernie 4.5 Turbo 128k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":0.55},"limit":{"context":128000,"input":128000,"output":16384}},"azure-o1":{"id":"azure-o1","name":"Azure o1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"gemini-3-pro-preview-thinking":{"id":"gemini-3-pro-preview-thinking","name":"Gemini 3 Pro Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"grok-3-mini-beta":{"id":"grok-3-mini-beta","name":"Grok 3 Mini Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"input":131072,"output":131072}},"claude-opus-4-1-thinking":{"id":"claude-opus-4-1-thinking","name":"Claude 4.1 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-flash-nothinking":{"id":"gemini-2.5-flash-nothinking","name":"Gemini 2.5 Flash (No Thinking)","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"Doubao Seed 1.8","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.612,"output":6.12},"limit":{"context":128000,"input":128000,"output":8192}},"claude-3-7-sonnet-thinking:8192":{"id":"claude-3-7-sonnet-thinking:8192","name":"Claude 3.7 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"qvq-max":{"id":"qvq-max","name":"Qwen: QvQ Max","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-28","last_updated":"2025-03-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":5.3},"limit":{"context":128000,"input":128000,"output":8192}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"auto-model-basic":{"id":"auto-model-basic","name":"Auto model (Basic)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1","name":"Llama 3.3 70B Omega Directive Unslop v2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4},"limit":{"context":200000,"input":200000,"output":8192}},"glm-4-plus-0111":{"id":"glm-4-plus-0111","name":"GLM 4 Plus 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":9.996},"limit":{"context":128000,"input":128000,"output":4096}},"Llama-3.3-70B-Bigger-Body":{"id":"Llama-3.3-70B-Bigger-Body","name":"Llama 3.3 70B Bigger Body","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"KAT-Coder-Air-V1":{"id":"KAT-Coder-Air-V1","name":"KAT Coder Air V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-25","last_updated":"2025-10-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.53},"limit":{"context":200000,"input":200000,"output":131072}},"doubao-seed-1-6-flash-250615":{"id":"doubao-seed-1-6-flash-250615","name":"Doubao Seed 1.6 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0374,"output":0.374},"limit":{"context":256000,"input":256000,"output":16384}},"glm-4-air-0111":{"id":"glm-4-air-0111","name":"GLM 4 Air 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-11","last_updated":"2025-01-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":0.1394},"limit":{"context":128000,"input":128000,"output":4096}},"phi-4-mini-instruct":{"id":"phi-4-mini-instruct","name":"Phi 4 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"jamba-mini-1.6":{"id":"jamba-mini-1.6","name":"Jamba Mini 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0 1.5 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Cohere Command A (08/2025)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"input":256000,"output":8192}},"kimi-thinking-preview":{"id":"kimi-thinking-preview","name":"Kimi Thinking Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":31.46,"output":31.46},"limit":{"context":128000,"input":128000,"output":16384}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude 3.5 Sonnet Old","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek Chat 0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"claude-sonnet-4-thinking:1024":{"id":"claude-sonnet-4-thinking:1024","name":"Claude 4 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Incandescent-Malevolence":{"id":"Llama-3.3-70B-Incandescent-Malevolence","name":"Llama 3.3 70B Incandescent Malevolence","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1343,"output":0.3349},"limit":{"context":32000,"input":32000,"output":8192}},"Llama-3.3-70B-Forgotten-Safeword-3.6":{"id":"Llama-3.3-70B-Forgotten-Safeword-3.6","name":"Llama 3.3 70B Forgotten Safeword 3.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"step-2-mini":{"id":"step-2-mini","name":"Step-2 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.408},"limit":{"context":8000,"input":8000,"output":4096}},"Mistral-Nemo-12B-Instruct-2407":{"id":"Mistral-Nemo-12B-Instruct-2407","name":"Mistral Nemo 12B Instruct 2407","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":16384,"input":16384,"output":16384}},"Baichuan4-Turbo":{"id":"Baichuan4-Turbo","name":"Baichuan 4 Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.42,"output":2.42},"limit":{"context":128000,"input":128000,"output":32768}},"ernie-5.0-thinking-latest":{"id":"ernie-5.0-thinking-latest","name":"Ernie 5.0 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":32768}},"Gemma-3-27B-Glitter":{"id":"Gemma-3-27B-Glitter","name":"Gemma 3 27B Glitter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-thinking:32000":{"id":"claude-opus-4-thinking:32000","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"auto-model-premium":{"id":"auto-model-premium","name":"Auto model (Premium)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"gemini-2.0-flash-thinking-exp-01-21":{"id":"gemini-2.0-flash-thinking-exp-01-21","name":"Gemini 2.0 Flash Thinking 0121","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-21","last_updated":"2025-01-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":1.003},"limit":{"context":1000000,"input":1000000,"output":8192}},"claude-sonnet-4-thinking:32768":{"id":"claude-sonnet-4-thinking:32768","name":"Claude 4 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"claude-opus-4-1-thinking:32768":{"id":"claude-opus-4-1-thinking:32768","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"jamba-large":{"id":"jamba-large","name":"Jamba Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":128000,"input":128000,"output":65536}},"Llama-3.3-70B-MiraiFanfare":{"id":"Llama-3.3-70B-MiraiFanfare","name":"Llama 3.3 70b Mirai Fanfare","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":32768,"input":32768,"output":16384}},"venice-uncensored:web":{"id":"venice-uncensored:web","name":"Venice Uncensored Web","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-01","last_updated":"2024-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":80000,"input":80000,"output":16384}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2002,"output":6.001},"limit":{"context":256000,"input":256000,"output":32768}},"gemini-2.5-flash-lite-preview-09-2025-thinking":{"id":"gemini-2.5-flash-lite-preview-09-2025-thinking","name":"Gemini 2.5 Flash Lite Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"ernie-x1-32k-preview":{"id":"ernie-x1-32k-preview","name":"Ernie X1 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"glm-z1-airx":{"id":"glm-z1-airx","name":"GLM Z1 AirX","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"input":32000,"output":16384}},"ernie-x1.1-preview":{"id":"ernie-x1.1-preview","name":"ERNIE X1.1","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":64000,"input":64000,"output":8192}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"input":200000,"output":64000}},"exa-research":{"id":"exa-research","name":"Exa (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":8192,"input":8192,"output":8192}},"Llama-3.3-70B-Mokume-Gane-R1":{"id":"Llama-3.3-70B-Mokume-Gane-R1","name":"Llama 3.3 70B Mokume Gane R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-4.1v-thinking-flash":{"id":"glm-4.1v-thinking-flash","name":"GLM 4.1V Thinking Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"Llama-3.3-70B-GeneticLemonade-Unleashed-v3":{"id":"Llama-3.3-70B-GeneticLemonade-Unleashed-v3","name":"Llama 3.3 70B GeneticLemonade Unleashed v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Predatorial-Extasy":{"id":"Llama-3.3-70B-Predatorial-Extasy","name":"Llama 3.3 70B Predatorial Extasy","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek V3/Deepseek Chat","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"glm-4-airx":{"id":"glm-4-airx","name":"GLM-4 AirX","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":8000,"input":8000,"output":4096}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"doubao-seed-1-6-thinking-250615":{"id":"doubao-seed-1-6-thinking-250615","name":"Doubao Seed 1.6 Thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":2.04},"limit":{"context":256000,"input":256000,"output":16384}},"claude-3-7-sonnet-thinking":{"id":"claude-3-7-sonnet-thinking","name":"Claude 3.7 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"GLM-4.5-Air-Derestricted-Steam":{"id":"GLM-4.5-Air-Derestricted-Steam","name":"GLM 4.5 Air Derestricted Steam","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":220600,"input":220600,"output":65536}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.3328},"limit":{"context":1000000,"input":1000000,"output":131072}},"ernie-5.0-thinking-preview":{"id":"ernie-5.0-thinking-preview","name":"Ernie 5.0 Thinking Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"claude-opus-4-thinking:1024":{"id":"claude-opus-4-thinking:1024","name":"Claude 4 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Strawberrylemonade-v1.2":{"id":"Llama-3.3-70B-Strawberrylemonade-v1.2","name":"Llama 3.3 70B StrawberryLemonade v1.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Vulpecula-R1":{"id":"Llama-3.3-70B-Vulpecula-R1","name":"Llama 3.3 70B Vulpecula R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.6-Derestricted-v5":{"id":"GLM-4.6-Derestricted-v5","name":"GLM 4.6 Derestricted v5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":131072,"input":131072,"output":8192}},"Llama-3.3-70B-Cirrus-x1":{"id":"Llama-3.3-70B-Cirrus-x1","name":"Llama 3.3 70B Cirrus x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v2":{"id":"Llama-3.3-70B-ArliAI-RPMax-v2","name":"Llama 3.3 70B ArliAI RPMax v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-code-preview-latest":{"id":"doubao-seed-code-preview-latest","name":"Doubao Seed Code Preview","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":256000,"input":256000,"output":16384}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":128000}},"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1":{"id":"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1","name":"Llama 3.3+ 70B New Dawn v1.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen3-vl-235b-a22b-thinking":{"id":"qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":6},"limit":{"context":32768,"input":32768,"output":32768}},"claude-sonnet-4-thinking":{"id":"claude-sonnet-4-thinking","name":"Claude 4 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Qwen2.5-32B-EVA-v0.2":{"id":"Qwen2.5-32B-EVA-v0.2","name":"Qwen 2.5 32b EVA","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":24576,"input":24576,"output":8192}},"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0 1.5 LG","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Cu-Mai-R1":{"id":"Llama-3.3-70B-Cu-Mai-R1","name":"Llama 3.3 70B Cu Mai R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"hidream":{"id":"hidream","name":"Hidream","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"auto-model":{"id":"auto-model","name":"Auto model","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1000000,"input":1000000,"output":1000000}},"jamba-mini-1.7":{"id":"jamba-mini-1.7","name":"Jamba Mini 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"doubao-seed-2-0-pro-260215":{"id":"doubao-seed-2-0-pro-260215","name":"Doubao Seed 2.0 Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.876},"limit":{"context":256000,"input":256000,"output":128000}},"Llama-3.3-70B-Nova":{"id":"Llama-3.3-70B-Nova","name":"Llama 3.3 70B Nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-preview-09-2025-thinking":{"id":"gemini-2.5-flash-preview-09-2025-thinking","name":"Gemini 2.5 Flash Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Sapphira-0.2":{"id":"Llama-3.3-70B-Sapphira-0.2","name":"Llama 3.3 70B Sapphira 0.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"auto-model-standard":{"id":"auto-model-standard","name":"Auto model (Standard)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"grok-3-mini-fast-beta":{"id":"grok-3-mini-fast-beta","name":"Grok 3 Mini Fast Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4},"limit":{"context":131072,"input":131072,"output":131072}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3995,"output":1.2002},"limit":{"context":995904,"input":995904,"output":32768}},"Meta-Llama-3-1-8B-Instruct-FP8":{"id":"Meta-Llama-3-1-8B-Instruct-FP8","name":"Llama 3.1 8B (decentralized)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"input":128000,"output":16384}},"step-3":{"id":"step-3","name":"Step-3","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2499,"output":0.6494},"limit":{"context":65536,"input":65536,"output":8192}},"Gemma-3-27B-it":{"id":"Gemma-3-27B-it","name":"Gemma 3 27B IT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"universal-summarizer":{"id":"universal-summarizer","name":"Universal Summarizer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-05-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":30},"limit":{"context":32768,"input":32768,"output":32768}},"deepclaude":{"id":"deepclaude","name":"DeepClaude","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"brave-pro":{"id":"brave-pro","name":"Brave (Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"claude-3-7-sonnet-reasoner":{"id":"claude-3-7-sonnet-reasoner","name":"Claude 3.7 Sonnet Reasoner","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-29","last_updated":"2025-03-29","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":1000000,"input":1000000,"output":8192}},"claude-opus-4-thinking:8192":{"id":"claude-opus-4-thinking:8192","name":"Claude 4 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-opus-4-thinking:32768":{"id":"claude-opus-4-thinking:32768","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"glm-zero-preview":{"id":"glm-zero-preview","name":"GLM Zero Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.802,"output":1.802},"limit":{"context":8000,"input":8000,"output":4096}},"azure-gpt-4o-mini":{"id":"azure-gpt-4o-mini","name":"Azure gpt-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"deepseek-math-v2":{"id":"deepseek-math-v2","name":"DeepSeek Math V2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"input":128000,"output":65536}},"glm-4-long":{"id":"glm-4-long","name":"GLM-4 Long","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":4096}},"GLM-4.5-Air-Derestricted-Iceblink":{"id":"GLM-4.5-Air-Derestricted-Iceblink","name":"GLM 4.5 Air Derestricted Iceblink","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"claude-opus-4-1-thinking:1024":{"id":"claude-opus-4-1-thinking:1024","name":"Claude 4.1 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"qwen3-vl-235b-a22b-instruct-original":{"id":"qwen3-vl-235b-a22b-instruct-original","name":"Qwen3 VL 235B A22B Instruct Original","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":32768,"input":32768,"output":32768}},"Llama-3.3+(3.1v3.3)-70B-Hanami-x1":{"id":"Llama-3.3+(3.1v3.3)-70B-Hanami-x1","name":"Llama 3.3+ 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-1-thinking:8192":{"id":"claude-opus-4-1-thinking:8192","name":"Claude 4.1 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Damascus-R1":{"id":"Llama-3.3-70B-Damascus-R1","name":"Damascus R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-ArliAI-RPMax-v3":{"id":"Gemma-3-27B-ArliAI-RPMax-v3","name":"Gemma 3 27B RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-preview-05-20:thinking":{"id":"gemini-2.5-flash-preview-05-20:thinking","name":"Gemini 2.5 Flash 0520 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048000,"input":1048000,"output":65536}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude 4 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"claude-opus-4-1-thinking:32000":{"id":"claude-opus-4-1-thinking:32000","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"sarvan-medium":{"id":"sarvan-medium","name":"Sarvam Medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3-70B-Anthrobomination":{"id":"Llama-3.3-70B-Anthrobomination","name":"Llama 3.3 70B Anthrobomination","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":16384}},"Baichuan4-Air":{"id":"Baichuan4-Air","name":"Baichuan 4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.157,"output":0.157},"limit":{"context":32768,"input":32768,"output":32768}},"jamba-mini":{"id":"jamba-mini","name":"Jamba Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"KAT-Coder-Exp-72B-1010":{"id":"KAT-Coder-Exp-72B-1010","name":"KAT Coder Exp 72B 1010","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"gemini-2.5-flash-preview-04-17:thinking":{"id":"gemini-2.5-flash-preview-04-17:thinking","name":"Gemini 2.5 Flash Preview Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"brave-research":{"id":"brave-research","name":"Brave (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":16384,"input":16384,"output":16384}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude 4.1 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Argunaut-1-SFT":{"id":"Llama-3.3-70B-Argunaut-1-SFT","name":"Llama 3.3 70B Argunaut 1 SFT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-5-20251101:thinking":{"id":"claude-opus-4-5-20251101:thinking","name":"Claude 4.5 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"grok-3-beta":{"id":"grok-3-beta","name":"Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":131072,"input":131072,"output":131072}},"azure-o3-mini":{"id":"azure-o3-mini","name":"Azure o3-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.088,"output":4.3996},"limit":{"context":200000,"input":200000,"output":65536}},"QwQ-32B-ArliAI-RpR-v1":{"id":"QwQ-32B-ArliAI-RpR-v1","name":"QwQ 32b Arli V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"input":32768,"output":32768}},"Llama-3.3-70B-Forgotten-Abomination-v5.0":{"id":"Llama-3.3-70B-Forgotten-Abomination-v5.0","name":"Llama 3.3 70B Forgotten Abomination v5.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-2-0-code-preview-260215":{"id":"doubao-seed-2-0-code-preview-260215","name":"Doubao Seed 2.0 Code Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.893},"limit":{"context":256000,"input":256000,"output":128000}},"Llama-3.3-70B-Mhnnn-x1":{"id":"Llama-3.3-70B-Mhnnn-x1","name":"Llama 3.3 70B Mhnnn x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"hunyuan-t1-latest":{"id":"hunyuan-t1-latest","name":"Hunyuan T1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-22","last_updated":"2025-03-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.66},"limit":{"context":256000,"input":256000,"output":16384}},"Gemma-3-27B-CardProjector-v4":{"id":"Gemma-3-27B-CardProjector-v4","name":"Gemma 3 27B CardProjector v4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-4-flash":{"id":"glm-4-flash","name":"GLM-4 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":4096}},"learnlm-1.5-pro-experimental":{"id":"learnlm-1.5-pro-experimental","name":"Gemini LearnLM Experimental","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.502,"output":10.506},"limit":{"context":32767,"input":32767,"output":8192}},"Llama-3.3-70B-Dark-Ages-v0.1":{"id":"Llama-3.3-70B-Dark-Ages-v0.1","name":"Llama 3.3 70B Dark Ages v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"yi-large":{"id":"yi-large","name":"Yi Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.196,"output":3.196},"limit":{"context":32000,"input":32000,"output":4096}},"exa-answer":{"id":"exa-answer","name":"Exa (Answer)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":4096,"input":4096,"output":4096}},"gemini-2.5-pro-exp-03-25":{"id":"gemini-2.5-pro-exp-03-25","name":"Gemini 2.5 Pro Experimental 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"LLM360/K2-Think":{"id":"LLM360/K2-Think","name":"K2-Think","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":32768}},"abacusai/Dracarys-72B-Instruct":{"id":"abacusai/Dracarys-72B-Instruct","name":"Llama 3.1 70B Dracarys 2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B":{"id":"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B","name":"Nemotron Tenyxchat Storybreaker 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B":{"id":"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B","name":"Llama 3.05 Storybreaker Ministral 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"Olmo 3 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.44999999999999996},"limit":{"context":128000,"input":128000,"output":8192}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"Molmo 2 8B","family":"allenai","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"input":36864,"output":36864}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"Olmo 3.1 32B Instruct","family":"allenai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"input":65536,"output":8192}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"Olmo 3.1 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"input":65536,"output":8192}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"DeepSeek V3.1 Nex N1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":128000,"input":128000,"output":8192}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-5:thinking":{"id":"zai-org/glm-5:thinking","name":"GLM 5 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF":{"id":"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF","name":"Nvidia Nemotron 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.357,"output":0.408},"limit":{"context":16384,"input":16384,"output":8192}},"nvidia/Llama-3.3-Nemotron-Super-49B-v1":{"id":"nvidia/Llama-3.3-Nemotron-Super-49B-v1","name":"Nvidia Nemotron Super 49B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1","name":"Nvidia Nemotron Ultra 253B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.8},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nvidia Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":256000,"input":256000,"output":262144}},"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5":{"id":"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5","name":"Nvidia Nemotron Super 49B v1.5","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond":{"id":"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond","name":"MS3.2 24B Magnum Diamond","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":32768}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.045000000000000005,"output":0.15},"limit":{"context":131072,"input":131072,"output":8192}},"arcee-ai/trinity-large":{"id":"arcee-ai/trinity-large","name":"Trinity Large","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131072,"input":131072,"output":8192}},"meganova-ai/manta-flash-1.0":{"id":"meganova-ai/manta-flash-1.0","name":"Manta Flash 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":16384,"input":16384,"output":16384}},"meganova-ai/manta-pro-1.0":{"id":"meganova-ai/manta-pro-1.0","name":"Manta Pro 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.5},"limit":{"context":32768,"input":32768,"output":32768}},"meganova-ai/manta-mini-1.0":{"id":"meganova-ai/manta-mini-1.0","name":"Manta Mini 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":8192,"input":8192,"output":8192}},"xiaomi/mimo-v2-flash-original":{"id":"xiaomi/mimo-v2-flash-original","name":"MiMo V2 Flash Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-thinking":{"id":"xiaomi/mimo-v2-flash-thinking","name":"MiMo V2 Flash (Thinking)","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-thinking-original":{"id":"xiaomi/mimo-v2-flash-thinking-original","name":"MiMo V2 Flash (Thinking) Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"microsoft/MAI-DS-R1-FP8":{"id":"microsoft/MAI-DS-R1-FP8","name":"Microsoft DeepSeek R1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":8192}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":65536,"input":65536,"output":8192}},"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5":{"id":"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5","name":"Llama 3 70B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":8192,"input":8192,"output":8192}},"featherless-ai/Qwerky-72B":{"id":"featherless-ai/Qwerky-72B","name":"Qwerky 72B","family":"qwerky","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32000,"input":32000,"output":8192}},"TEE/glm-5":{"id":"TEE/glm-5","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":3.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/deepseek-v3.1":{"id":"TEE/deepseek-v3.1","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":164000,"input":164000,"output":8192}},"TEE/glm-4.7-flash":{"id":"TEE/glm-4.7-flash","name":"GLM 4.7 Flash TEE","family":"glm-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/qwen3-coder":{"id":"TEE/qwen3-coder","name":"Qwen3 Coder 480B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":128000,"input":128000,"output":32768}},"TEE/glm-4.6":{"id":"TEE/glm-4.6","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":2},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/deepseek-r1-0528":{"id":"TEE/deepseek-r1-0528","name":"DeepSeek R1 0528 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65536}},"TEE/minimax-m2.1":{"id":"TEE/minimax-m2.1","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":200000,"input":200000,"output":131072}},"TEE/qwen3.5-397b-a17b":{"id":"TEE/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-28","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"TEE/gpt-oss-120b":{"id":"TEE/gpt-oss-120b","name":"GPT-OSS 120B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"TEE/kimi-k2.5":{"id":"TEE/kimi-k2.5","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/qwen3-30b-a3b-instruct-2507":{"id":"TEE/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.44999999999999996},"limit":{"context":262000,"input":262000,"output":32768}},"TEE/kimi-k2.5-thinking":{"id":"TEE/kimi-k2.5-thinking","name":"Kimi K2.5 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/qwen2.5-vl-72b-instruct":{"id":"TEE/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B TEE","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":65536,"input":65536,"output":8192}},"TEE/deepseek-v3.2":{"id":"TEE/deepseek-v3.2","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1},"limit":{"context":164000,"input":164000,"output":65536}},"TEE/glm-4.7":{"id":"TEE/glm-4.7","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.3},"limit":{"context":131000,"input":131000,"output":65535}},"TEE/kimi-k2-thinking":{"id":"TEE/kimi-k2-thinking","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/llama3-3-70b":{"id":"TEE/llama3-3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"TEE/gemma-3-27b-it":{"id":"TEE/gemma-3-27b-it","name":"Gemma 3 27B TEE","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"TEE/gpt-oss-20b":{"id":"TEE/gpt-oss-20b","name":"GPT-OSS 20B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon Nova Micro 1.0","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0357,"output":0.1394},"limit":{"context":128000,"input":128000,"output":5120}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon Nova Lite 1.0","family":"nova-lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0595,"output":0.238},"limit":{"context":300000,"input":300000,"output":5120}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5099999999999999,"output":4.25},"limit":{"context":1000000,"input":1000000,"output":65535}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":3.1959999999999997},"limit":{"context":300000,"input":300000,"output":32000}},"anthracite-org/magnum-v2-72b":{"id":"anthracite-org/magnum-v2-72b","name":"Magnum V2 72B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"RNJ-1 Instruct 8B","family":"rnj","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-13","last_updated":"2025-12-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-4-405b":{"id":"NousResearch 2/hermes-4-405b","name":"Hermes 4 Large","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-3-llama-3.1-70b":{"id":"NousResearch 2/hermes-3-llama-3.1-70b","name":"Hermes 3 70B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.408},"limit":{"context":65536,"input":65536,"output":8192}},"NousResearch 2/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch 2/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes-3 Mistral 24B (Preview)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":32768}},"NousResearch 2/hermes-4-70b":{"id":"NousResearch 2/hermes-4-70b","name":"Hermes 4 Medium","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-4-405b:thinking":{"id":"NousResearch 2/hermes-4-405b:thinking","name":"Hermes 4 Large (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/Hermes-4-70B:thinking":{"id":"NousResearch 2/Hermes-4-70B:thinking","name":"Hermes 4 (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-17","last_updated":"2025-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"pamanseau/OpenReasoning-Nemotron-32B":{"id":"pamanseau/OpenReasoning-Nemotron-32B","name":"OpenReasoning Nemotron 32B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":32768,"input":32768,"output":65536}},"MiniMaxAI/MiniMax-M1-80k":{"id":"MiniMaxAI/MiniMax-M1-80k","name":"MiniMax M1 80K","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6052,"output":2.4225000000000003},"limit":{"context":1000000,"input":1000000,"output":131072}},"deepseek-ai/deepseek-v3.2-exp-thinking":{"id":"deepseek-ai/deepseek-v3.2-exp-thinking","name":"DeepSeek V3.2 Exp Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":163840}},"deepseek-ai/DeepSeek-V3.1:thinking":{"id":"deepseek-ai/DeepSeek-V3.1:thinking","name":"DeepSeek V3.1 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/deepseek-v3.2-exp":{"id":"deepseek-ai/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus:thinking":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus:thinking","name":"DeepSeek V3.1 Terminus (Thinking)","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"raifle/sorcererlm-8x22b":{"id":"raifle/sorcererlm-8x22b","name":"SorcererLM 8x22B","family":"mixtral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.505,"output":4.505},"limit":{"context":16000,"input":16000,"output":8192}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"Aion 1.0 mini (DeepSeek)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.394},"limit":{"context":131072,"input":131072,"output":8192}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"Llama 3.1 8b (uncensored)","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":32768,"input":32768,"output":16384}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"Aion 1.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.995,"output":7.99},"limit":{"context":65536,"input":65536,"output":8192}},"mlabonne/NeuralDaredevil-8B-abliterated":{"id":"mlabonne/NeuralDaredevil-8B-abliterated","name":"Neural Daredevil 8B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44,"output":0.44},"limit":{"context":8192,"input":8192,"output":8192}},"unsloth/gemma-3-1b-it":{"id":"unsloth/gemma-3-1b-it","name":"Gemma 3 1B IT","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.272,"output":0.272},"limit":{"context":128000,"input":128000,"output":131072}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"Gemma 3 4B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"Gemma 3 27B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2992,"output":0.2992},"limit":{"context":128000,"input":128000,"output":96000}},"meituan-longcat/LongCat-Flash-Chat-FP8":{"id":"meituan-longcat/LongCat-Flash-Chat-FP8","name":"LongCat Flash","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-31","last_updated":"2025-08-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.7},"limit":{"context":128000,"input":128000,"output":32768}},"cognitivecomputations/dolphin-2.9.2-qwen2-72b":{"id":"cognitivecomputations/dolphin-2.9.2-qwen2-72b","name":"Dolphin 72b","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":8192,"input":8192,"output":4096}},"Infermatic/MN-12B-Inferor-v0.0":{"id":"Infermatic/MN-12B-Inferor-v0.0","name":"Mistral Nemo Inferor 12B","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"Hunyuan MT 7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":20},"limit":{"context":8192,"input":8192,"output":8192}},"Gryphe/MythoMax-L2-13b":{"id":"Gryphe/MythoMax-L2-13b","name":"MythoMax 13B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":4000,"input":4000,"output":4096}},"CrucibleLab/L3.3-70B-Loki-V2.0":{"id":"CrucibleLab/L3.3-70B-Loki-V2.0","name":"L3.3 70B Loki v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"soob3123/Veiled-Calla-12B":{"id":"soob3123/Veiled-Calla-12B","name":"Veiled Calla 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"soob3123/amoral-gemma3-27B-v2":{"id":"soob3123/amoral-gemma3-27B-v2","name":"Amoral Gemma3 27B v2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-23","last_updated":"2025-05-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"soob3123/GrayLine-Qwen3-8B":{"id":"soob3123/GrayLine-Qwen3-8B","name":"Grayline Qwen3 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":16384,"input":16384,"output":32768}},"NeverSleep/Llama-3-Lumimaid-70B-v0.1":{"id":"NeverSleep/Llama-3-Lumimaid-70B-v0.1","name":"Lumimaid 70b","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":8192}},"NeverSleep/Lumimaid-v0.2-70B":{"id":"NeverSleep/Lumimaid-v0.2-70B","name":"Lumimaid v0.2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1.5},"limit":{"context":16384,"input":16384,"output":8192}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"DeepSeek Prover v2 671B","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":160000,"input":160000,"output":16384}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-v3.2:thinking":{"id":"deepseek/deepseek-v3.2:thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"MarinaraSpaghetti/NemoMix-Unleashed-12B":{"id":"MarinaraSpaghetti/NemoMix-Unleashed-12B","name":"NemoMix 12B Unleashed","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/kimi-k2.5:thinking":{"id":"moonshotai/kimi-k2.5:thinking","name":"Kimi K2.5 Thinking","family":"kimi-thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"moonshotai/kimi-k2-thinking-turbo-original":{"id":"moonshotai/kimi-k2-thinking-turbo-original","name":"Kimi K2 Thinking Turbo Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8},"limit":{"context":256000,"input":256000,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2-instruct-0711":{"id":"moonshotai/kimi-k2-instruct-0711","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":8192}},"moonshotai/Kimi-Dev-72B":{"id":"moonshotai/Kimi-Dev-72B","name":"Kimi Dev 72B","family":"kimi","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2-thinking-original":{"id":"moonshotai/kimi-k2-thinking-original","name":"Kimi K2 Thinking Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"input":256000,"output":16384}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B","family":"ernie","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.5599999999999999},"limit":{"context":32768,"input":32768,"output":16384}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"ERNIE 4.5 300B","family":"ernie","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.15},"limit":{"context":131072,"input":131072,"output":16384}},"google/gemini-flash-1.5":{"id":"google/gemini-flash-1.5","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":2000000,"input":2000000,"output":8192}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"google/gemini-3-flash-preview-thinking":{"id":"google/gemini-3-flash-preview-thinking","name":"Gemini 3 Flash Thinking","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"z-ai/glm-4.6:thinking":{"id":"z-ai/glm-4.6:thinking","name":"GLM 4.6 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v:thinking":{"id":"z-ai/glm-4.5v:thinking","name":"GLM 4.5V Thinking","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"stepfun-ai/step-3.5-flash:thinking":{"id":"stepfun-ai/step-3.5-flash:thinking","name":"Step 3.5 Flash Thinking","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Cogito v2.1 671B MoE","family":"cogito","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"input":128000,"output":16384}},"deepcogito/cogito-v1-preview-qwen-32B":{"id":"deepcogito/cogito-v1-preview-qwen-32B","name":"Cogito v1 Preview Qwen 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.7999999999999998,"output":1.7999999999999998},"limit":{"context":128000,"input":128000,"output":32768}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.2069999999999999},"limit":{"context":6144,"input":6144,"output":4096}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"inflatebot/MN-12B-Mag-Mell-R1":{"id":"inflatebot/MN-12B-Mag-Mell-R1","name":"Mag Mell R1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16":{"id":"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16","name":"Llama 3.1 70B Celeste v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"x-ai/grok-4-fast:thinking":{"id":"x-ai/grok-4-fast:thinking","name":"Grok 4 Fast Thinking","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"input":256000,"output":131072}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4-07-09":{"id":"x-ai/grok-4-07-09","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"input":256000,"output":131072}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Llama 4 Scout","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.085,"output":0.46},"limit":{"context":328000,"input":328000,"output":65536}},"meta-llama/llama-3.2-90b-vision-instruct":{"id":"meta-llama/llama-3.2-90b-vision-instruct","name":"Llama 3.2 Medium","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9009999999999999,"output":0.9009999999999999},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.23},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Llama 3.2 3b Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0306,"output":0.0493},"limit":{"context":131072,"input":131072,"output":8192}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Llama 4 Maverick","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18000000000000002,"output":0.8},"limit":{"context":1048576,"input":1048576,"output":65536}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":131072,"input":131072,"output":16384}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":128000,"input":128000,"output":8192}},"tngtech/tng-r1t-chimera":{"id":"tngtech/tng-r1t-chimera","name":"TNG R1T Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":65536}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral Saba","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.595},"limit":{"context":32000,"input":32000,"output":32768}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":8192}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.8999999999999999},"limit":{"context":256000,"input":256000,"output":32768}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":262144,"input":262144,"output":256000}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral Small Creative","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Ministral 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/mixtral-8x22b-instruct-v0.1":{"id":"mistralai/mixtral-8x22b-instruct-v0.1","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8999999999999999,"output":0.8999999999999999},"limit":{"context":65536,"input":65536,"output":32768}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Ministral 14B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Mistral Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.060000000000000005},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/mistral-tiny":{"id":"mistralai/mistral-tiny","name":"Mistral Tiny","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-12-11","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.25499999999999995},"limit":{"context":32000,"input":32000,"output":8192}},"mistralai/mistral-7b-instruct":{"id":"mistralai/mistral-7b-instruct","name":"Mistral 7B Instruct","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":262144,"input":262144,"output":65536}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":6.001},"limit":{"context":128000,"input":128000,"output":256000}},"mistralai/mixtral-8x7b-instruct-v0.1":{"id":"mistralai/mixtral-8x7b-instruct-v0.1","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"Tongyi-Zhiwen/QwenLong-L1-32B":{"id":"Tongyi-Zhiwen/QwenLong-L1-32B","name":"QwenLong L1 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.6},"limit":{"context":128000,"input":128000,"output":40960}},"ReadyArt/The-Omega-Abomination-L-70B-v1.0":{"id":"ReadyArt/The-Omega-Abomination-L-70B-v1.0","name":"The Omega Abomination V1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.95},"limit":{"context":16384,"input":16384,"output":16384}},"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0":{"id":"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0","name":"Omega Directive 24B Unslop v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":16384,"input":16384,"output":32768}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-2025-11-13":{"id":"openai/gpt-5.1-2025-11-13","name":"GPT-5.1 (2025-11-13)","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"input":1000000,"output":32768}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":256000,"input":256000,"output":32768}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT 5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-chat-latest":{"id":"openai/gpt-5-chat-latest","name":"GPT 5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT-4o mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.088,"output":0.35},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":20},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT 5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI o3 Deep Research","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT 5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT 5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI o4-mini Deep Research","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT 5.1 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"GPT-4 Turbo Preview","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.004999999999995},"limit":{"context":128000,"input":128000,"output":4096}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT 4.1 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2022-11-30","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":16385,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT 5.1 Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT 5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/o3-mini-low":{"id":"openai/o3-mini-low","name":"OpenAI o3-mini (Low)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"input":128000,"output":4096}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT 5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT 4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":128000,"input":128000,"output":32768}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI o1 Pro","family":"o-pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT 5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT 4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.993999999999998},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT 5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-pro-2025-06-10":{"id":"openai/o3-pro-2025-06-10","name":"OpenAI o3-pro (2025-06-10)","family":"o-pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1-chat-latest":{"id":"openai/gpt-5.1-chat-latest","name":"GPT 5.1 Chat (Latest)","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":16384}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT 5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI o3-mini (High)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.64,"output":2.588},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI o4-mini high","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"GPT-4o Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.47,"output":5.88},"limit":{"context":128000,"input":128000,"output":16384}},"VongolaChouko/Starcannon-Unleashed-12B-v1.0":{"id":"VongolaChouko/Starcannon-Unleashed-12B-v1.0","name":"Mistral Nemo Starcannon 12b v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.856,"output":14.246},"limit":{"context":128000,"input":128000,"output":4096}},"cohere/command-r":{"id":"cohere/command-r","name":"Cohere: Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-11","last_updated":"2024-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.476,"output":1.428},"limit":{"context":128000,"input":128000,"output":4096}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"GLM 4 32B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"GLM 4 9B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"GLM Z1 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"GLM Z1 9B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-Z1-Rumination-32B-0414":{"id":"THUDM/GLM-Z1-Rumination-32B-0414","name":"GLM Z1 Rumination 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":65536}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax 01","family":"minimax","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.1219999999999999},"limit":{"context":1000192,"input":1000192,"output":16384}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":200000,"input":200000,"output":131072}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax M2-her","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-24","last_updated":"2026-01-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.30200000000000005,"output":1.2069999999999999},"limit":{"context":65532,"input":65532,"output":2048}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24b Instruct","family":"chutesai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"baseten/Kimi-K2-Instruct-FP4":{"id":"baseten/Kimi-K2-Instruct-FP4","name":"Kimi K2 0711 Instruct FP4","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":131072}},"GalrionSoftworks/MN-LooseCannon-12B-v1":{"id":"GalrionSoftworks/MN-LooseCannon-12B-v1","name":"MN-LooseCannon-12B-v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B":{"id":"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B","name":"Tongyi DeepResearch 30B A3B","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.24000000000000002},"limit":{"context":128000,"input":128000,"output":65536}},"Steelskull/L3.3-Electra-R1-70b":{"id":"Steelskull/L3.3-Electra-R1-70b","name":"Steelskull Electra R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evalebis-70b":{"id":"Steelskull/L3.3-MS-Evalebis-70b","name":"MS Evalebis 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Cu-Mai-R1-70b":{"id":"Steelskull/L3.3-Cu-Mai-R1-70b","name":"Llama 3.3 70B Cu Mai","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Nevoria-R1-70b":{"id":"Steelskull/L3.3-Nevoria-R1-70b","name":"Steelskull Nevoria R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Nevoria-70b":{"id":"Steelskull/L3.3-MS-Nevoria-70b","name":"Steelskull Nevoria 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evayale-70B":{"id":"Steelskull/L3.3-MS-Evayale-70B","name":"Evayale 70b ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Salesforce/Llama-xLAM-2-70b-fc-r":{"id":"Salesforce/Llama-xLAM-2-70b-fc-r","name":"Llama-xLAM-2 70B fc-r","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":128000,"input":128000,"output":16384}},"LatitudeGames/Wayfarer-Large-70B-Llama-3.3":{"id":"LatitudeGames/Wayfarer-Large-70B-Llama-3.3","name":"Llama 3.3 70B Wayfarer","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.700000007,"output":0.700000007},"limit":{"context":16384,"input":16384,"output":16384}},"TheDrummer 2/Cydonia-24B-v4.3":{"id":"TheDrummer 2/Cydonia-24B-v4.3","name":"The Drummer Cydonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Anubis-70B-v1":{"id":"TheDrummer 2/Anubis-70B-v1","name":"Anubis 70B v1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":65536,"input":65536,"output":16384}},"TheDrummer 2/Cydonia-24B-v4":{"id":"TheDrummer 2/Cydonia-24B-v4","name":"The Drummer Cydonia 24B v4","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2414},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/Magidonia-24B-v4.3":{"id":"TheDrummer 2/Magidonia-24B-v4.3","name":"The Drummer Magidonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Anubis-70B-v1.1":{"id":"TheDrummer 2/Anubis-70B-v1.1","name":"Anubis 70B v1.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":131072,"input":131072,"output":16384}},"TheDrummer 2/Rocinante-12B-v1.1":{"id":"TheDrummer 2/Rocinante-12B-v1.1","name":"Rocinante 12b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.595},"limit":{"context":16384,"input":16384,"output":8192}},"TheDrummer 2/Cydonia-24B-v2":{"id":"TheDrummer 2/Cydonia-24B-v2","name":"The Drummer Cydonia 24B v2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/skyfall-36b-v2":{"id":"TheDrummer 2/skyfall-36b-v2","name":"TheDrummer Skyfall 36B V2","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":64000,"input":64000,"output":32768}},"TheDrummer 2/UnslopNemo-12B-v4.1":{"id":"TheDrummer 2/UnslopNemo-12B-v4.1","name":"UnslopNemo 12b v4","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"TheDrummer 2/Cydonia-24B-v4.1":{"id":"TheDrummer 2/Cydonia-24B-v4.1","name":"The Drummer Cydonia 24B v4.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"shisa-ai/shisa-v2.1-llama3.3-70b":{"id":"shisa-ai/shisa-v2.1-llama3.3-70b","name":"Shisa V2.1 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32768,"input":32768,"output":4096}},"shisa-ai/shisa-v2-llama3.3-70b":{"id":"shisa-ai/shisa-v2-llama3.3-70b","name":"Shisa V2 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":128000,"input":128000,"output":16384}},"anthropic/claude-sonnet-4.6:thinking":{"id":"anthropic/claude-sonnet-4.6:thinking","name":"Claude Sonnet 4.6 Thinking","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:low":{"id":"anthropic/claude-opus-4.6:thinking:low","name":"Claude 4.6 Opus Thinking Low","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking":{"id":"anthropic/claude-opus-4.6:thinking","name":"Claude 4.6 Opus Thinking","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:medium":{"id":"anthropic/claude-opus-4.6:thinking:medium","name":"Claude 4.6 Opus Thinking Medium","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:max":{"id":"anthropic/claude-opus-4.6:thinking:max","name":"Claude 4.6 Opus Thinking Max","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude 4.6 Opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"miromind-ai/mirothinker-v1.5-235b":{"id":"miromind-ai/mirothinker-v1.5-235b","name":"MiroThinker v1.5 235B","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":32768,"input":32768,"output":4000}},"Sao10K/L3.1-70B-Hanami-x1":{"id":"Sao10K/L3.1-70B-Hanami-x1","name":"Llama 3.1 70B Hanami","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Sao10K/L3.3-70B-Euryale-v2.3":{"id":"Sao10K/L3.3-70B-Euryale-v2.3","name":"Llama 3.3 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3.1-70B-Euryale-v2.2":{"id":"Sao10K/L3.1-70B-Euryale-v2.2","name":"Llama 3.1 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.357},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3-8B-Stheno-v3.2":{"id":"Sao10K/L3-8B-Stheno-v3.2","name":"Sao10K Stheno 8b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated","name":"DeepSeek R1 Llama 70B Abliterated","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/Qwen2.5-32B-Instruct-abliterated":{"id":"huihui-ai/Qwen2.5-32B-Instruct-abliterated","name":"Qwen 2.5 32B Abliterated","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-06","last_updated":"2025-01-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"input":32768,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated","name":"DeepSeek R1 Qwen Abliterated","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.4},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/Llama-3.3-70B-Instruct-abliterated":{"id":"huihui-ai/Llama-3.3-70B-Instruct-abliterated","name":"Llama 3.3 70B Instruct abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated":{"id":"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated","name":"Nemotron 3.1 70B abliterated","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection 3 Productivity","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection 3 Pi","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"dmind/dmind-1-mini":{"id":"dmind/dmind-1-mini","name":"DMind-1-Mini","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":32768,"input":32768,"output":8192}},"dmind/dmind-1":{"id":"dmind/dmind-1","name":"DMind-1","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.6},"limit":{"context":32768,"input":32768,"output":8192}},"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2","name":"EVA-Qwen2.5-72B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","name":"EVA Llama 3.33 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","name":"EVA-LLaMA-3.33-70B-v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2","name":"EVA-Qwen2.5-32B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}}}},"cerebras":{"id":"cerebras","env":["CEREBRAS_API_KEY"],"npm":"@ai-sdk/cerebras","name":"Cerebras","doc":"https://inference-docs.cerebras.ai/models/overview","models":{"qwen-3-235b-a22b-instruct-2507":{"id":"qwen-3-235b-a22b-instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":131000,"output":32000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.69},"limit":{"context":131072,"output":32768}},"llama3.1-8b":{"id":"llama3.1-8b","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":32000,"output":8000}},"zai-glm-4.7":{"id":"zai-glm-4.7","name":"Z.AI GLM-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.25,"output":2.75,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":40000}}}},"azure":{"id":"azure","env":["AZURE_RESOURCE_NAME","AZURE_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.3-chat":{"id":"gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}}}},"cortecs":{"id":"cortecs","env":["CORTECS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cortecs.ai/v1","name":"Cortecs","doc":"https://api.cortecs.ai/v1/models","models":{"kimi-k2-instruct":{"id":"kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-07-11","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":2.646},"limit":{"context":131000,"output":131000}},"claude-opus4-6":{"id":"claude-opus4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":1000000,"output":1000000}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.164,"output":1.311},"limit":{"context":128000,"output":128000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.441,"output":1.984},"limit":{"context":262000,"output":262000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.34},"limit":{"context":131072,"output":131072}},"claude-4-6-sonnet":{"id":"claude-4-6-sonnet","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.59,"output":17.92},"limit":{"context":1000000,"output":1000000}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":2.46},"limit":{"context":131072,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.53},"limit":{"context":203000,"output":203000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.099,"output":0.33},"limit":{"context":16384,"output":16384}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.34},"limit":{"context":196000,"output":196000}},"devstral-small-2512":{"id":"devstral-small-2512","name":"Devstral Small 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"intellect-3":{"id":"intellect-3","name":"INTELLECT 3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.219,"output":1.202},"limit":{"context":128000,"output":128000}},"nova-pro-v1":{"id":"nova-pro-v1","name":"Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.016,"output":4.061},"limit":{"context":300000,"output":5000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT Oss 120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.76},"limit":{"context":256000,"output":256000}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":1.654},"limit":{"context":128000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.354,"output":9.417},"limit":{"context":1047576,"output":32768}},"llama-3.1-405b-instruct":{"id":"llama-3.1-405b-instruct","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"glm-4.7":{"id":"glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.23},"limit":{"context":198000,"output":198000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.656,"output":2.731},"limit":{"context":262000,"output":262000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.09,"output":5.43},"limit":{"context":200000,"output":200000}},"minimax-m2":{"id":"minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-11","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.57},"limit":{"context":400000,"output":400000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":1.18},"limit":{"context":196608,"output":196608}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.307,"output":16.536},"limit":{"context":200000,"output":64000}},"claude-opus4-5":{"id":"claude-opus4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":200000,"output":200000}},"claude-4-5-sonnet":{"id":"claude-4-5-sonnet","name":"Claude 4.5 Sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.259,"output":16.296},"limit":{"context":200000,"output":200000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.654,"output":11.024},"limit":{"context":1048576,"output":65535}}}},"xai":{"id":"xai","env":["XAI_API_KEY"],"npm":"@ai-sdk/xai","name":"xAI","doc":"https://docs.x.ai/docs/models","models":{"grok-2-1212":{"id":"grok-2-1212","name":"Grok 2 (1212)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-12-12","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-4.20-multi-agent-0309":{"id":"grok-4.20-multi-agent-0309","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-2":{"id":"grok-2","name":"Grok 2","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-3-fast-latest":{"id":"grok-3-fast-latest","name":"Grok 3 Fast Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"grok-2-vision":{"id":"grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"grok-2-vision-1212":{"id":"grok-2-vision-1212","name":"Grok 2 Vision (1212)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-beta":{"id":"grok-beta","name":"Grok Beta","family":"grok-beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":131072,"output":4096}},"grok-3-mini-fast":{"id":"grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-4-fast":{"id":"grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"grok-3-latest":{"id":"grok-3-latest","name":"Grok 3 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-4-1-fast":{"id":"grok-4-1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-2-vision-latest":{"id":"grok-2-vision-latest","name":"Grok 2 Vision Latest","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-3-mini-latest":{"id":"grok-3-mini-latest","name":"Grok 3 Mini Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-3-mini-fast-latest":{"id":"grok-3-mini-fast-latest","name":"Grok 3 Mini Fast Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-4.20-0309-reasoning":{"id":"grok-4.20-0309-reasoning","name":"Grok 4.20 (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-2-latest":{"id":"grok-2-latest","name":"Grok 2 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-vision-beta":{"id":"grok-vision-beta","name":"Grok Vision Beta","family":"grok-vision","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":8192,"output":4096}},"grok-4.20-0309-non-reasoning":{"id":"grok-4.20-0309-non-reasoning","name":"Grok 4.20 (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-3-fast":{"id":"grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}}}},"alibaba-cn":{"id":"alibaba-cn","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope.aliyuncs.com/compatible-mode/v1","name":"Alibaba (China)","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":131072,"output":8192}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen-math-plus":{"id":"qwen-math-plus","name":"Qwen Math Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-08-16","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"deepseek-v3-1":{"id":"deepseek-v3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":65536}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.15},"limit":{"context":202752,"output":16384}},"qwen2-5-coder-7b-instruct":{"id":"qwen2-5-coder-7b-instruct","name":"Qwen2.5-Coder 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":1.434},"limit":{"context":131072,"output":32768}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":1.147},"limit":{"context":65536,"output":8192}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"qwen-long":{"id":"qwen-long","name":"Qwen Long","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.287},"limit":{"context":10000000,"output":8192}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574,"reasoning":1.434},"limit":{"context":131072,"output":8192}},"qwq-32b":{"id":"qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.574},"limit":{"context":1000000,"output":65536}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.108,"output":0.431,"reasoning":1.076},"limit":{"context":131072,"output":32768}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.032,"output":0.032},"limit":{"context":53248,"output":4096}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.345,"output":1.377},"limit":{"context":131072,"output":8192}},"deepseek-r1-distill-qwen-14b":{"id":"deepseek-r1-distill-qwen-14b","name":"DeepSeek R1 Distill Qwen 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.431},"limit":{"context":32768,"output":16384}},"moonshot-kimi-k2-instruct":{"id":"moonshot-kimi-k2-instruct","name":"Moonshot Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":8192}},"qwen-doc-turbo":{"id":"qwen-doc-turbo","name":"Qwen Doc Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.087,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-07-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.044,"output":0.087,"reasoning":0.431},"limit":{"context":1000000,"output":16384}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.294,"output":6.881},"limit":{"context":131072,"output":8192}},"tongyi-intent-detect-v3":{"id":"tongyi-intent-detect-v3","name":"Tongyi Intent Detect V3","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.058,"output":0.144},"limit":{"context":8192,"output":1024}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.431},"limit":{"context":131072,"output":8192}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.287,"reasoning":0.717},"limit":{"context":131072,"output":8192}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":2.58,"reasoning":2.58},"limit":{"context":262144,"output":65536}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.147,"output":4.588},"limit":{"context":131072,"output":8192}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.087,"output":0.345,"input_audio":5.448},"limit":{"context":32768,"output":2048}},"qwen-plus-character":{"id":"qwen-plus-character","name":"Qwen Plus Character","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":32768,"output":4096}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.717},"limit":{"context":131072,"output":8192}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Moonshot Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.411},"limit":{"context":262144,"output":32768}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"deepseek-v3-2-exp":{"id":"deepseek-v3-2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.431},"limit":{"context":131072,"output":65536}},"deepseek-r1-distill-llama-8b":{"id":"deepseek-r1-distill-llama-8b","name":"DeepSeek R1 Distill Llama 8B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.216,"output":0.861},"limit":{"context":262144,"output":65536}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.259,"output":0.775},"limit":{"context":16384,"output":8192}},"qwen3.5-flash":{"id":"qwen3.5-flash","name":"Qwen3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-23","last_updated":"2026-02-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.172,"output":1.72,"reasoning":1.72},"limit":{"context":1000000,"output":65536}},"qwen2-5-math-7b-instruct":{"id":"qwen2-5-math-7b-instruct","name":"Qwen2.5-Math 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":4096,"output":3072}},"deepseek-r1-distill-qwen-1-5b":{"id":"deepseek-r1-distill-qwen-1-5b","name":"DeepSeek R1 Distill Qwen 1.5B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"deepseek-r1-distill-qwen-7b":{"id":"deepseek-r1-distill-qwen-7b","name":"DeepSeek R1 Distill Qwen 7B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.144},"limit":{"context":32768,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Moonshot Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":262144,"output":16384}},"deepseek-r1-distill-qwen-32b":{"id":"deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen-deep-research":{"id":"qwen-deep-research","name":"Qwen Deep Research","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.742,"output":23.367},"limit":{"context":1000000,"output":32768}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.143353,"output":1.433525,"reasoning":4.300576},"limit":{"context":262144,"output":32768}},"qwen2-5-math-72b-instruct":{"id":"qwen2-5-math-72b-instruct","name":"Qwen2.5-Math 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287,"reasoning":1.147},"limit":{"context":1000000,"output":32768}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574},"limit":{"context":131072,"output":32768}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.573,"output":3.44,"reasoning":3.44},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"qwen-math-turbo":{"id":"qwen-math-turbo","name":"Qwen Math Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":4096,"output":3072}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.216},"limit":{"context":1000000,"output":32768}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":8192}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.717,"output":0.717},"limit":{"context":34096,"output":4096}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.286705,"output":1.14682,"reasoning":2.867051},"limit":{"context":131072,"output":32768}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.101,"output":0.28},"limit":{"context":16384,"output":8192}},"qwen2-5-coder-32b-instruct":{"id":"qwen2-5-coder-32b-instruct","name":"Qwen2.5-Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}},"kimi/kimi-k2.5":{"id":"kimi/kimi-k2.5","name":"kimi/kimi-k2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"siliconflow/deepseek-r1-0528":{"id":"siliconflow/deepseek-r1-0528","name":"siliconflow/deepseek-r1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":163840,"output":32768}},"siliconflow/deepseek-v3-0324":{"id":"siliconflow/deepseek-v3-0324","name":"siliconflow/deepseek-v3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":163840,"output":163840}},"siliconflow/deepseek-v3.1-terminus":{"id":"siliconflow/deepseek-v3.1-terminus","name":"siliconflow/deepseek-v3.1-terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":65536}},"siliconflow/deepseek-v3.2":{"id":"siliconflow/deepseek-v3.2","name":"siliconflow/deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":163840,"output":65536}},"MiniMax/MiniMax-M2.5":{"id":"MiniMax/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.301,"output":1.205},"limit":{"context":204800,"output":131072}}}},"chutes":{"id":"chutes","env":["CHUTES_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.chutes.ai/v1","name":"Chutes","doc":"https://llm.chutes.ai/v1/models","models":{"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM 4.7 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.35},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.7-TEE":{"id":"zai-org/GLM-4.7-TEE","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.5},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6-TEE":{"id":"zai-org/GLM-4.6-TEE","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.7,"cache_read":0.2},"limit":{"context":202752,"output":65536}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"zai-org/GLM-5-TEE":{"id":"zai-org/GLM-5-TEE","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15,"cache_read":0.475},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM 4.6V","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.15},"limit":{"context":131072,"output":65536}},"zai-org/GLM-4.6-FP8":{"id":"zai-org/GLM-4.6-FP8","name":"GLM 4.6 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-TEE":{"id":"zai-org/GLM-4.5-TEE","name":"GLM 4.5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.55},"limit":{"context":131072,"output":65536}},"zai-org/GLM-5-Turbo":{"id":"zai-org/GLM-5-Turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":1.96,"cache_read":0.245},"limit":{"context":202752,"output":65535}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16","name":"NVIDIA Nemotron 3 Nano 30B A3B BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"NousResearch/Hermes-4.3-36B":{"id":"NousResearch/Hermes-4.3-36B","name":"Hermes 4.3 36B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":8192}},"NousResearch/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes 3 Mistral 24B Preview","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":32768,"output":32768}},"NousResearch/Hermes-4-14B":{"id":"NousResearch/Hermes-4-14B","name":"Hermes 4 14B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.05},"limit":{"context":40960,"output":40960}},"NousResearch/Hermes-4-405B-FP8-TEE":{"id":"NousResearch/Hermes-4-405B-FP8-TEE","name":"Hermes 4 405B FP8 TEE","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes 4 70B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":131072,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":262144,"output":32000}},"MiniMaxAI/MiniMax-M2.5-TEE":{"id":"MiniMaxAI/MiniMax-M2.5-TEE","name":"MiniMax M2.5 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.1,"cache_read":0.15},"limit":{"context":196608,"output":65536}},"MiniMaxAI/MiniMax-M2.1-TEE":{"id":"MiniMaxAI/MiniMax-M2.1-TEE","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12},"limit":{"context":196608,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus-TEE","name":"DeepSeek V3.1 Terminus TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":0.9},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-TEE","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.14},"limit":{"context":131072,"output":65536}},"deepseek-ai/DeepSeek-V3-0324-TEE":{"id":"deepseek-ai/DeepSeek-V3-0324-TEE","name":"DeepSeek V3 0324 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.19,"output":0.87,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-Speciale-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-Speciale-TEE","name":"DeepSeek V3.2 Speciale TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-TEE":{"id":"deepseek-ai/DeepSeek-R1-TEE","name":"DeepSeek R1 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-R1-Distill-Llama-70B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3.1-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-TEE","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528-TEE":{"id":"deepseek-ai/DeepSeek-R1-0528-TEE","name":"DeepSeek R1 0528 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":163840,"output":65536}},"rednote-hilab/dots.ocr":{"id":"rednote-hilab/dots.ocr","name":"dots.ocr","family":"rednote","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":131072,"output":131072}},"unsloth/Mistral-Nemo-Instruct-2407":{"id":"unsloth/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01},"limit":{"context":131072,"output":131072}},"unsloth/Mistral-Small-24B-Instruct-2501":{"id":"unsloth/Mistral-Small-24B-Instruct-2501","name":"Mistral Small 24B Instruct 2501","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"gemma 3 12b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"gemma 3 4b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.03},"limit":{"context":96000,"output":96000}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"gemma 3 27b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"unsloth/Llama-3.2-1B-Instruct":{"id":"unsloth/Llama-3.2-1B-Instruct","name":"Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"unsloth/Llama-3.2-3B-Instruct":{"id":"unsloth/Llama-3.2-3B-Instruct","name":"Llama 3.2 3B Instruct","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-02-12","last_updated":"2025-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":16384,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.195},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5-TEE":{"id":"moonshotai/Kimi-K2.5-TEE","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":65535}},"moonshotai/Kimi-K2-Thinking-TEE":{"id":"moonshotai/Kimi-K2-Thinking-TEE","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":262144,"output":65535}},"Qwen/Qwen3-30B-A3B":{"id":"Qwen/Qwen3-30B-A3B","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.33},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3.5-397B-A17B-TEE":{"id":"Qwen/Qwen3.5-397B-A17B-TEE","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":2.34,"cache_read":0.195},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE","name":"Qwen3 Coder 480B A35B Instruct FP8 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11},"limit":{"context":262144,"output":262144}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE","name":"Qwen3 235B A22B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.55,"cache_read":0.04},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":40960,"output":40960}},"Qwen/Qwen2.5-VL-72B-Instruct-TEE":{"id":"Qwen/Qwen2.5-VL-72B-Instruct-TEE","name":"Qwen2.5 VL 72B Instruct TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3Guard-Gen-0.6B":{"id":"Qwen/Qwen3Guard-Gen-0.6B","name":"Qwen3Guard Gen 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":16384,"output":16384}},"tngtech/DeepSeek-R1T-Chimera":{"id":"tngtech/DeepSeek-R1T-Chimera","name":"DeepSeek R1T Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":163840}},"tngtech/TNG-R1T-Chimera-Turbo":{"id":"tngtech/TNG-R1T-Chimera-Turbo","name":"TNG R1T Chimera Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.6},"limit":{"context":163840,"output":65536}},"tngtech/TNG-R1T-Chimera-TEE":{"id":"tngtech/TNG-R1T-Chimera-TEE","name":"TNG R1T Chimera TEE","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":65536}},"mistralai/Devstral-2-123B-Instruct-2512-TEE":{"id":"mistralai/Devstral-2-123B-Instruct-2512-TEE","name":"Devstral 2 123B Instruct 2512 TEE","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":262144,"output":65536}},"openai/gpt-oss-120b-TEE":{"id":"openai/gpt-oss-120b-TEE","name":"gpt oss 120b TEE","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.18},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt oss 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":131072,"output":131072}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18},"limit":{"context":131072,"output":131072}},"chutesai/Mistral-Small-3.1-24B-Instruct-2503":{"id":"chutesai/Mistral-Small-3.1-24B-Instruct-2503","name":"Mistral Small 3.1 24B Instruct 2503","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"miromind-ai/MiroThinker-v1.5-235B":{"id":"miromind-ai/MiroThinker-v1.5-235B","name":"MiroThinker V1.5 235B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.15},"limit":{"context":262144,"output":8192}},"OpenGVLab/InternVL3-78B-TEE":{"id":"OpenGVLab/InternVL3-78B-TEE","name":"InternVL3 78B TEE","family":"opengvlab","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-06","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":32768}}}}} +export const snapshot = { + evroc: { + id: "evroc", + env: ["EVROC_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.think.evroc.com/v1", + name: "evroc", + doc: "https://docs.evroc.com/products/think/overview.html", + models: { + "nvidia/Llama-3.3-70B-Instruct-FP8": { + id: "nvidia/Llama-3.3-70B-Instruct-FP8", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.18, output: 1.18 }, + limit: { context: 131072, output: 32768 }, + }, + "microsoft/Phi-4-multimodal-instruct": { + id: "microsoft/Phi-4-multimodal-instruct", + name: "Phi-4 15B", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.47 }, + limit: { context: 32000, output: 32000 }, + }, + "intfloat/multilingual-e5-large-instruct": { + id: "intfloat/multilingual-e5-large-instruct", + name: "E5 Multi-Lingual Large Embeddings 0.6B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.12 }, + limit: { context: 512, output: 512 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 1.47, output: 5.9 }, + limit: { context: 262144, output: 262144 }, + }, + "KBLab/kb-whisper-large": { + id: "KBLab/kb-whisper-large", + name: "KB Whisper", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 448, output: 448 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", + name: "Qwen3 30B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.42 }, + limit: { context: 64000, output: 64000 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen3 Embedding 8B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.12 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen3 VL 30B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.94 }, + limit: { context: 100000, output: 100000 }, + }, + "mistralai/Voxtral-Small-24B-2507": { + id: "mistralai/Voxtral-Small-24B-2507", + name: "Voxtral Small 24B", + family: "voxtral", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["audio", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 32000, output: 32000 }, + }, + "mistralai/devstral-small-2-24b-instruct-2512": { + id: "mistralai/devstral-small-2-24b-instruct-2512", + name: "Devstral Small 2 24B Instruct 2512", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.47 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/Magistral-Small-2509": { + id: "mistralai/Magistral-Small-2509", + name: "Magistral Small 1.2 24B", + family: "magistral-small", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 2.36 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.94 }, + limit: { context: 65536, output: 65536 }, + }, + "openai/whisper-large-v3": { + id: "openai/whisper-large-v3", + name: "Whisper 3 Large", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 448, output: 4096 }, + }, + }, + }, + zai: { + id: "zai", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.z.ai/api/paas/v4", + name: "Z.AI", + doc: "https://docs.z.ai/guides/overview/pricing", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + "alibaba-coding-plan": { + id: "alibaba-coding-plan", + env: ["ALIBABA_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding-intl.dashscope.aliyuncs.com/v1", + name: "Alibaba Coding Plan", + doc: "https://www.alibabacloud.com/help/en/model-studio/coding-plan", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 196608, input: 196601, output: 24576 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + }, + }, + zenmux: { + id: "zenmux", + env: ["ZENMUX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://zenmux.ai/api/anthropic/v1", + name: "ZenMux", + doc: "https://docs.zenmux.ai", + models: { + "xiaomi/mimo-v2-omni": { + id: "xiaomi/mimo-v2-omni", + name: "MiMo V2 Omni", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 265000, output: 265000 }, + }, + "xiaomi/mimo-v2-flash-free": { + id: "xiaomi/mimo-v2-flash-free", + name: "MiMo-V2-Flash Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 64000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 262000, output: 64000 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo V2 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 4.5 }, + limit: { context: 1000000, output: 256000 }, + }, + "kuaishou/kat-coder-pro-v1-free": { + id: "kuaishou/kat-coder-pro-v1-free", + name: "KAT-Coder-Pro-V1 Free", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-23", + last_updated: "2025-10-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "kuaishou/kat-coder-pro-v1": { + id: "kuaishou/kat-coder-pro-v1", + name: "KAT-Coder-Pro-V1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-23", + last_updated: "2025-10-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3.5-flash-free": { + id: "stepfun/step-3.5-flash-free", + name: "Step 3.5 Flash (Free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3": { + id: "stepfun/step-3", + name: "Step-3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 65536, output: 64000 }, + }, + "inclusionai/ling-1t": { + id: "inclusionai/ling-1t", + name: "Ling-1T", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-09", + last_updated: "2025-10-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, + limit: { context: 128000, output: 64000 }, + }, + "inclusionai/ring-1t": { + id: "inclusionai/ring-1t", + name: "Ring-1T", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-12", + last_updated: "2025-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, + limit: { context: 128000, output: 64000 }, + }, + "volcengine/doubao-seed-1.8": { + id: "volcengine/doubao-seed-1.8", + name: "Doubao-Seed-1.8", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.28, cache_read: 0.02, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-pro": { + id: "volcengine/doubao-seed-2.0-pro", + name: "Doubao-Seed-2.0-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 2.24, cache_read: 0.09, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-mini": { + id: "volcengine/doubao-seed-2.0-mini", + name: "Doubao-Seed-2.0-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.28, cache_read: 0.01, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-code": { + id: "volcengine/doubao-seed-code", + name: "Doubao-Seed-Code", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-11", + last_updated: "2025-11-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.12, cache_read: 0.03 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-lite": { + id: "volcengine/doubao-seed-2.0-lite", + name: "Doubao-Seed-2.0-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.51, cache_read: 0.02, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-code": { + id: "volcengine/doubao-seed-2.0-code", + name: "Doubao Seed 2.0 Code", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 4.48 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-05", + last_updated: "2025-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.43 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-chat": { + id: "deepseek/deepseek-chat", + name: "DeepSeek-V3.2 (Non-thinking Mode)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek-V3.2-Exp", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 0.33 }, + limit: { context: 163000, output: 64000 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 3.02, cache_read: 0.1 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-thinking-turbo": { + id: "moonshotai/kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "baidu/ernie-5.0-thinking-preview": { + id: "baidu/ernie-5.0-thinking-preview", + name: "ERNIE 5.0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.84, output: 3.37 }, + limit: { context: 128000, output: 64000 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.07, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 1050000, output: 65530 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "pdf", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-19", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-3-pro-image-preview": { + id: "google/gemini-3-pro-image-preview", + name: "Gemini 3 Pro Image Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["pdf", "image", "text", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 2.6, cache_read: 0.14 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7-flashx": { + id: "z-ai/glm-4.7-flashx", + name: "GLM 4.7 FlashX", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.42, cache_read: 0.01 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.56, cache_read: 0.02 }, + limit: { context: 128000, output: 64000 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, + limit: { context: 128000, output: 64000 }, + }, + "z-ai/glm-4.6v-flash-free": { + id: "z-ai/glm-4.6v-flash-free", + name: "GLM 4.6V Flash (Free)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.14, cache_read: 0.06 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.7-flash-free": { + id: "z-ai/glm-4.7-flash-free", + name: "GLM 4.7 Flash (Free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.6v-flash": { + id: "z-ai/glm-4.6v-flash", + name: "GLM 4.6V FlashX", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.21, cache_read: 0.0043 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5-turbo": { + id: "z-ai/glm-5-turbo", + name: "GLM 5 Turbo", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.88, output: 3.48 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.6v": { + id: "z-ai/glm-4.6v", + name: "GLM 4.6V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.42, cache_read: 0.03 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen/qwen3.5-flash": { + id: "qwen/qwen3.5-flash", + name: "Qwen3.5 Flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1020000, output: 1020000 }, + }, + "qwen/qwen3.5-plus": { + id: "qwen/qwen3.5-plus", + name: "Qwen3.5 Plus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4.8 }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3-Max-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen/qwen3-coder-plus": { + id: "qwen/qwen3-coder-plus", + name: "Qwen3-Coder-Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 1000000, output: 64000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4.1-fast-non-reasoning": { + id: "x-ai/grok-4.1-fast-non-reasoning", + name: "Grok 4.1 Fast Non Reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4.2-fast": { + id: "x-ai/grok-4.2-fast", + name: "Grok 4.2 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 9 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.2-fast-non-reasoning": { + id: "x-ai/grok-4.2-fast-non-reasoning", + name: "Grok 4.2 Fast Non Reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 9 }, + limit: { context: 2000000, output: 30000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01-01", + release_date: "2026-01-15", + last_updated: "2026-01-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.17 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["pdf", "image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 128000, output: 64000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01-01", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.17 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.75, output: 18.75 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 45, output: 225 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "GPT-5.3 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16380 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4 Nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax/minimax-m2.5-lightning": { + id: "minimax/minimax-m2.5-lightning", + name: "MiniMax M2.5 highspeed", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4.8, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204000, output: 64000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3055, output: 1.2219 }, + limit: { context: 204800, output: 131070 }, + }, + "minimax/minimax-m2.7-highspeed": { + id: "minimax/minimax-m2.7-highspeed", + name: "MiniMax M2.7 highspeed", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.611, output: 2.4439 }, + limit: { context: 204800, output: 131070 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204000, output: 64000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude 3.5 Sonnet (Retiring Soon)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + status: "deprecated", + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2024-11-04", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["pdf", "image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + "io-net": { + id: "io-net", + env: ["IOINTELLIGENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.intelligence.io.solutions/api/v1", + name: "IO.NET", + doc: "https://io.net/docs/guides/intelligence/io-intelligence", + models: { + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-15", + last_updated: "2024-11-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.75, cache_read: 0.2, cache_write: 0.8 }, + limit: { context: 200000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 8.75, cache_read: 1, cache_write: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar": { + id: "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", + name: "Qwen 3 Coder 480B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.95, cache_read: 0.11, cache_write: 0.44 }, + limit: { context: 106000, output: 4096 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-09-05", + last_updated: "2024-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39, output: 1.9, cache_read: 0.195, cache_write: 0.78 }, + limit: { context: 32768, output: 4096 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.25, cache_read: 0.275, cache_write: 1.1 }, + limit: { context: 32768, output: 4096 }, + }, + "meta-llama/Llama-3.2-90B-Vision-Instruct": { + id: "meta-llama/Llama-3.2-90B-Vision-Instruct", + name: "Llama 3.2 90B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.4, cache_read: 0.175, cache_write: 0.7 }, + limit: { context: 16000, output: 4096 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.38, cache_read: 0.065, cache_write: 0.26 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B 128E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6, cache_read: 0.075, cache_write: 0.3 }, + limit: { context: 430000, output: 4096 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen 3 Next 80B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-10", + last_updated: "2025-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.8, cache_read: 0.05, cache_write: 0.2 }, + limit: { context: 262144, output: 4096 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen 3 235B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6, cache_read: 0.055, cache_write: 0.22 }, + limit: { context: 262144, output: 4096 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen 2.5 VL 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, + limit: { context: 32000, output: 4096 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04, cache_read: 0.01, cache_write: 0.04 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Magistral-Small-2506": { + id: "mistralai/Magistral-Small-2506", + name: "Magistral Small 2506", + family: "magistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Mistral-Large-Instruct-2411": { + id: "mistralai/Mistral-Large-Instruct-2411", + name: "Mistral Large Instruct 2411", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 1, cache_write: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Devstral-Small-2505": { + id: "mistralai/Devstral-Small-2505", + name: "Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.4, cache_read: 0.02, cache_write: 0.08 }, + limit: { context: 131072, output: 4096 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT-OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14, cache_read: 0.015, cache_write: 0.06 }, + limit: { context: 64000, output: 4096 }, + }, + }, + }, + nvidia: { + id: "nvidia", + env: ["NVIDIA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://integrate.api.nvidia.com/v1", + name: "Nvidia", + doc: "https://docs.api.nvidia.com/nim/", + models: { + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + id: "nvidia/llama-3.1-nemotron-70b-instruct", + name: "Llama 3.1 Nemotron 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-10-12", + last_updated: "2024-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.1-nemotron-ultra-253b-v1": { + id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", + name: "Llama-3.1-Nemotron-Ultra-253B-v1", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/llama-3.1-nemotron-51b-instruct": { + id: "nvidia/llama-3.1-nemotron-51b-instruct", + name: "Llama 3.1 Nemotron 51b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-22", + last_updated: "2024-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/parakeet-tdt-0.6b-v2": { + id: "nvidia/parakeet-tdt-0.6b-v2", + name: "Parakeet TDT 0.6B v2", + family: "parakeet", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + id: "nvidia/nvidia-nemotron-nano-9b-v2", + name: "nvidia-nemotron-nano-9b-v2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/llama-embed-nemotron-8b": { + id: "nvidia/llama-embed-nemotron-8b", + name: "Llama Embed Nemotron 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-03", + release_date: "2025-03-18", + last_updated: "2025-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 2048 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", + name: "Llama 3.3 Nemotron Super 49b V1.5", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1", + name: "Llama 3.3 Nemotron Super 49b V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama3-chatqa-1.5-70b": { + id: "nvidia/llama3-chatqa-1.5-70b", + name: "Llama3 Chatqa 1.5 70b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-28", + last_updated: "2024-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/cosmos-nemotron-34b": { + id: "nvidia/cosmos-nemotron-34b", + name: "Cosmos Nemotron 34B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nemoretriever-ocr-v1": { + id: "nvidia/nemoretriever-ocr-v1", + name: "NeMo Retriever OCR v1", + family: "nemoretriever", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "nvidia/nemotron-4-340b-instruct": { + id: "nvidia/nemotron-4-340b-instruct", + name: "Nemotron 4 340b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-06-13", + last_updated: "2024-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "nemotron-3-nano-30b-a3b", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "microsoft/phi-3-small-128k-instruct": { + id: "microsoft/phi-3-small-128k-instruct", + name: "Phi 3 Small 128k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-128k-instruct": { + id: "microsoft/phi-3-medium-128k-instruct", + name: "Phi 3 Medium 128k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3.5-moe-instruct": { + id: "microsoft/phi-3.5-moe-instruct", + name: "Phi 3.5 Moe Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-17", + last_updated: "2024-08-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-vision-128k-instruct": { + id: "microsoft/phi-3-vision-128k-instruct", + name: "Phi 3 Vision 128k Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-19", + last_updated: "2024-05-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-mini-instruct": { + id: "microsoft/phi-4-mini-instruct", + name: "Phi-4-Mini", + family: "phi", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "microsoft/phi-3.5-vision-instruct": { + id: "microsoft/phi-3.5-vision-instruct", + name: "Phi 3.5 Vision Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-4k-instruct": { + id: "microsoft/phi-3-medium-4k-instruct", + name: "Phi 3 Medium 4k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4000, output: 4096 }, + }, + "microsoft/phi-3-small-8k-instruct": { + id: "microsoft/phi-3-small-8k-instruct", + name: "Phi 3 Small 8k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 4096 }, + }, + "minimaxai/minimax-m2.1": { + id: "minimaxai/minimax-m2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "minimaxai/minimax-m2.5": { + id: "minimaxai/minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-ai/deepseek-v3.1": { + id: "deepseek-ai/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-20", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/deepseek-r1-0528": { + id: "deepseek-ai/deepseek-r1-0528", + name: "Deepseek R1 0528", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-r1": { + id: "deepseek-ai/deepseek-r1", + name: "Deepseek R1", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.1-terminus": { + id: "deepseek-ai/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/deepseek-coder-6.7b-instruct": { + id: "deepseek-ai/deepseek-coder-6.7b-instruct", + name: "Deepseek Coder 6.7b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2023-10-29", + last_updated: "2023-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.2": { + id: "deepseek-ai/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 163840, output: 65536 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-01-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "moonshotai/kimi-k2-instruct-0905": { + id: "moonshotai/kimi-k2-instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-07", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "google/codegemma-7b": { + id: "google/codegemma-7b", + name: "Codegemma 7b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-03-21", + last_updated: "2024-03-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-2-2b-it": { + id: "google/gemma-2-2b-it", + name: "Gemma 2 2b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-1b-it": { + id: "google/gemma-3-1b-it", + name: "Gemma 3 1b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-2-27b-it": { + id: "google/gemma-2-27b-it", + name: "Gemma 2 27b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-06-24", + last_updated: "2024-06-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3n-e2b-it": { + id: "google/gemma-3n-e2b-it", + name: "Gemma 3n E2b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-06-12", + last_updated: "2025-06-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/codegemma-1.1-7b": { + id: "google/codegemma-1.1-7b", + name: "Codegemma 1.1 7b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-04-30", + last_updated: "2024-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Gemma 3n E4b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-06-03", + last_updated: "2025-06-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Gemma 3 12b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma-3-27B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "z-ai/glm4.7": { + id: "z-ai/glm4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm5": { + id: "z-ai/glm5", + name: "GLM5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 202752, output: 131000 }, + }, + "stepfun-ai/step-3.5-flash": { + id: "stepfun-ai/step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwq-32b": { + id: "qwen/qwq-32b", + name: "Qwq 32b", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen2.5-coder-7b-instruct": { + id: "qwen/qwen2.5-coder-7b-instruct", + name: "Qwen2.5 Coder 7b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-17", + last_updated: "2024-09-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 8192 }, + }, + "qwen/qwen2.5-coder-32b-instruct": { + id: "qwen/qwen2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-06", + last_updated: "2024-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3-235b-a22b": { + id: "qwen/qwen3-235b-a22b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "meta/llama-3.1-70b-instruct": { + id: "meta/llama-3.1-70b-instruct", + name: "Llama 3.1 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.3-70b-instruct": { + id: "meta/llama-3.3-70b-instruct", + name: "Llama 3.3 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-26", + last_updated: "2024-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-scout-17b-16e-instruct": { + id: "meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17b 16e Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-02", + release_date: "2025-04-02", + last_updated: "2025-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11b Vision Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama3-8b-instruct": { + id: "meta/llama3-8b-instruct", + name: "Llama3 8b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/codellama-70b": { + id: "meta/codellama-70b", + name: "Codellama 70b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-29", + last_updated: "2024-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.2-1b-instruct": { + id: "meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.1-405b-instruct": { + id: "meta/llama-3.1-405b-instruct", + name: "Llama 3.1 405b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama3-70b-instruct": { + id: "meta/llama3-70b-instruct", + name: "Llama3 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-maverick-17b-128e-instruct": { + id: "meta/llama-4-maverick-17b-128e-instruct", + name: "Llama 4 Maverick 17b 128e Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-02", + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + id: "mistralai/mistral-large-3-675b-instruct-2512", + name: "Mistral Large 3 675B Instruct 2512", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mamba-codestral-7b-v0.1": { + id: "mistralai/mamba-codestral-7b-v0.1", + name: "Mamba Codestral 7b V0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/codestral-22b-instruct-v0.1": { + id: "mistralai/codestral-22b-instruct-v0.1", + name: "Codestral 22b Instruct V0.1", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-29", + last_updated: "2024-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mistral-large-2-instruct": { + id: "mistralai/mistral-large-2-instruct", + name: "Mistral Large 2 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/ministral-14b-instruct-2512": { + id: "mistralai/ministral-14b-instruct-2512", + name: "Ministral 3 14B Instruct 2512", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-01", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-small-3.1-24b-instruct-2503": { + id: "mistralai/mistral-small-3.1-24b-instruct-2503", + name: "Mistral Small 3.1 24b Instruct 2503", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/devstral-2-123b-instruct-2512": { + id: "mistralai/devstral-2-123b-instruct-2512", + name: "Devstral-2-123B-Instruct-2512", + family: "devstral", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-08", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS-120B", + family: "gpt-oss", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-04", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/whisper-large-v3": { + id: "openai/whisper-large-v3", + name: "Whisper Large v3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "black-forest-labs/flux.1-dev": { + id: "black-forest-labs/flux.1-dev", + name: "FLUX.1-dev", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 0 }, + }, + }, + }, + fastrouter: { + id: "fastrouter", + env: ["FASTROUTER_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://go.fastrouter.ai/api/v1", + name: "FastRouter", + doc: "https://fastrouter.ai/models", + models: { + "deepseek-ai/deepseek-r1-distill-llama-70b": { + id: "deepseek-ai/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-23", + last_updated: "2025-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32768 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 256000, output: 64000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + iflowcn: { + id: "iflowcn", + env: ["IFLOW_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://apis.iflow.cn/v1", + name: "iFlow", + doc: "https://platform.iflow.cn/en/docs", + models: { + "kimi-k2": { + id: "kimi-k2", + name: "Kimi-K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 64000 }, + }, + "qwen3-max-preview": { + id: "qwen3-max-preview", + name: "Qwen3-Max-Preview", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "kimi-k2-0905": { + id: "kimi-k2-0905", + name: "Kimi-K2-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-235b-a22b-instruct": { + id: "qwen3-235b-a22b-instruct", + name: "Qwen3-235B-A22B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2-Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 64000 }, + }, + "qwen3-235b": { + id: "qwen3-235b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL-Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3-235B-A22B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3-Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3-Coder-Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + }, + }, + modelscope: { + id: "modelscope", + env: ["MODELSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api-inference.modelscope.cn/v1", + name: "ModelScope", + doc: "https://modelscope.cn/docs/model-service/API-Inference/intro", + models: { + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "ZhipuAI/GLM-4.6": { + id: "ZhipuAI/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 202752, output: 98304 }, + }, + "ZhipuAI/GLM-4.5": { + id: "ZhipuAI/GLM-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 98304 }, + }, + }, + }, + llama: { + id: "llama", + env: ["LLAMA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.llama.com/compat/v1/", + name: "Llama", + doc: "https://llama.developer.meta.com/docs/models", + models: { + "cerebras-llama-4-maverick-17b-128e-instruct": { + id: "cerebras-llama-4-maverick-17b-128e-instruct", + name: "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-scout-17b-16e-instruct-fp8": { + id: "llama-4-scout-17b-16e-instruct-fp8", + name: "Llama-4-Scout-17B-16E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-3.3-8b-instruct": { + id: "llama-3.3-8b-instruct", + name: "Llama-3.3-8B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "groq-llama-4-maverick-17b-128e-instruct": { + id: "groq-llama-4-maverick-17b-128e-instruct", + name: "Groq-Llama-4-Maverick-17B-128E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cerebras-llama-4-scout-17b-16e-instruct": { + id: "cerebras-llama-4-scout-17b-16e-instruct", + name: "Cerebras-Llama-4-Scout-17B-16E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + }, + }, + inference: { + id: "inference", + env: ["INFERENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://inference.net/v1", + name: "Inference", + doc: "https://inference.net/models", + models: { + "mistral/mistral-nemo-12b-instruct": { + id: "mistral/mistral-nemo-12b-instruct", + name: "Mistral Nemo 12B Instruct", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.038, output: 0.1 }, + limit: { context: 16000, output: 4096 }, + }, + "google/gemma-3": { + id: "google/gemma-3", + name: "Google Gemma 3", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.3 }, + limit: { context: 125000, output: 4096 }, + }, + "qwen/qwen3-embedding-4b": { + id: "qwen/qwen3-embedding-4b", + name: "Qwen 3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 2048 }, + }, + "qwen/qwen-2.5-7b-vision-instruct": { + id: "qwen/qwen-2.5-7b-vision-instruct", + name: "Qwen 2.5 7B Vision Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 125000, output: 4096 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.055, output: 0.055 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-3b-instruct": { + id: "meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-1b-instruct": { + id: "meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.1-8b-instruct": { + id: "meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.025, output: 0.025 }, + limit: { context: 16000, output: 4096 }, + }, + "osmosis/osmosis-structure-0.6b": { + id: "osmosis/osmosis-structure-0.6b", + name: "Osmosis Structure 0.6B", + family: "osmosis", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 4000, output: 2048 }, + }, + }, + }, + deepinfra: { + id: "deepinfra", + env: ["DEEPINFRA_API_KEY"], + npm: "@ai-sdk/deepinfra", + name: "Deep Infra", + doc: "https://deepinfra.com/models", + models: { + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 1.74, cache_read: 0.08 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 98304 }, + status: "deprecated", + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.56, cache_read: 0.16 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-06", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.95, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2": { + id: "MiniMaxAI/MiniMax-M2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.254, output: 1.02 }, + limit: { context: 262144, output: 32768 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.15, cache_read: 0.35 }, + limit: { context: 163840, output: 64000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.26, output: 0.38, cache_read: 0.13 }, + limit: { context: 163840, output: 64000 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.8 }, + limit: { context: 262144, output: 32768 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-06", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.47, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "meta-llama/Llama-3.1-8B-Instruct-Turbo": { + id: "meta-llama/Llama-3.1-8B-Instruct-Turbo", + name: "Llama 3.1 8B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.1-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.1-70B-Instruct-Turbo", + name: "Llama 3.1 70B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama 4 Scout 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 10000000, output: 16384 }, + }, + "meta-llama/Llama-3.1-70B-Instruct": { + id: "meta-llama/Llama-3.1-70B-Instruct", + name: "Llama 3.1 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1000000, output: 16384 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", + name: "Llama 3.3 70B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.32 }, + limit: { context: 131072, output: 16384 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", + name: "Qwen3 Coder 480B A35B Instruct Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 262144, output: 66536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.24 }, + limit: { context: 131072, output: 16384 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 16384 }, + }, + "anthropic/claude-3-7-sonnet-latest": { + id: "anthropic/claude-3-7-sonnet-latest", + name: "Claude Sonnet 3.7 (Latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.3, output: 16.5, cache_read: 0.33 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-4-opus": { + id: "anthropic/claude-4-opus", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-06-12", + last_updated: "2025-06-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 82.5 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + "perplexity-agent": { + id: "perplexity-agent", + env: ["PERPLEXITY_API_KEY"], + npm: "@ai-sdk/openai", + api: "https://api.perplexity.ai/v1", + name: "Perplexity Agent", + doc: "https://docs.perplexity.ai/docs/agent-api/models", + models: { + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2.5 }, + limit: { context: 1000000, output: 32000 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 1.25, + output: 10, + cache_read: 0.125, + context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2.5, cache_read: 0.0625 }, + limit: { context: 128000, output: 8192 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 128000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "xai/grok-4-1-fast-non-reasoning": { + id: "xai/grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + }, + }, + xiaomi: { + id: "xiaomi", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.xiaomimimo.com/v1", + name: "Xiaomi", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 256000, output: 128000 }, + }, + "mimo-v2-flash": { + id: "mimo-v2-flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12-01", + release_date: "2025-12-16", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 256000, output: 64000 }, + }, + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 0.2 }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + synthetic: { + id: "synthetic", + env: ["SYNTHETIC_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.synthetic.new/openai/v1", + name: "Synthetic", + doc: "https://synthetic.new/pricing", + models: { + "hf:MiniMaxAI/MiniMax-M2.5": { + id: "hf:MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-07", + last_updated: "2026-02-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.6 }, + limit: { context: 191488, output: 65536 }, + }, + "hf:MiniMaxAI/MiniMax-M2": { + id: "hf:MiniMaxAI/MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 196608, output: 131000 }, + }, + "hf:MiniMaxAI/MiniMax-M2.1": { + id: "hf:MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 204800, output: 131072 }, + }, + "hf:deepseek-ai/DeepSeek-R1": { + id: "hf:deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-R1-0528": { + id: "hf:deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 (0528)", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 8 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.1": { + id: "hf:deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.2": { + id: "hf:deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4, cache_read: 0.27, cache_write: 0 }, + limit: { context: 162816, input: 162816, output: 8000 }, + }, + "hf:deepseek-ai/DeepSeek-V3-0324": { + id: "hf:deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 (0324)", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3": { + id: "hf:deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:moonshotai/Kimi-K2-Instruct-0905": { + id: "hf:moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 262144, output: 32768 }, + }, + "hf:moonshotai/Kimi-K2.5": { + id: "hf:moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:moonshotai/Kimi-K2-Thinking": { + id: "hf:moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 262144 }, + }, + "hf:openai/gpt-oss-120b": { + id: "hf:openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:nvidia/Kimi-K2.5-NVFP4": { + id: "hf:nvidia/Kimi-K2.5-NVFP4", + name: "Kimi K2.5 (NVFP4)", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama-4-Scout-17B-16E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 328000, output: 4096 }, + }, + "hf:meta-llama/Llama-3.1-405B-Instruct": { + id: "hf:meta-llama/Llama-3.1-405B-Instruct", + name: "Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.1-70B-Instruct": { + id: "hf:meta-llama/Llama-3.1-70B-Instruct", + name: "Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.1-8B-Instruct": { + id: "hf:meta-llama/Llama-3.1-8B-Instruct", + name: "Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.3-70B-Instruct": { + id: "hf:meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 524000, output: 4096 }, + }, + "hf:zai-org/GLM-4.7-Flash": { + id: "hf:zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-18", + last_updated: "2026-01-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.06 }, + limit: { context: 196608, output: 65536 }, + }, + "hf:zai-org/GLM-4.6": { + id: "hf:zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 200000, output: 64000 }, + }, + "hf:zai-org/GLM-4.7": { + id: "hf:zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 200000, output: 64000 }, + }, + "hf:Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 3 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "hf:Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen 3 Coder 480B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen 3 235B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 256000, output: 32000 }, + }, + }, + }, + nebius: { + id: "nebius", + env: ["NEBIUS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.tokenfactory.nebius.com/v1", + name: "Nebius Token Factory", + doc: "https://docs.tokenfactory.nebius.com/", + models: { + "zai-org/GLM-4.7-FP8": { + id: "zai-org/GLM-4.7-FP8", + name: "GLM-4.7 (FP8)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM-4.5-Air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "GLM-4.5", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-03-01", + last_updated: "2026-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3.2, cache_read: 0.1, cache_write: 1 }, + limit: { context: 200000, input: 200000, output: 16384 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron-3-Super-120B-A12B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": { + id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", + name: "Llama-3.1-Nemotron-Ultra-253B-v1", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "nvidia/Nemotron-Nano-V2-12b": { + id: "nvidia/Nemotron-Nano-V2-12b", + name: "Nemotron-Nano-V2-12b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.2, cache_read: 0.007, cache_write: 0.08 }, + limit: { context: 32000, input: 30000, output: 4096 }, + }, + "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": { + id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B", + name: "Nemotron-3-Nano-30B-A3B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24, cache_read: 0.006, cache_write: 0.075 }, + limit: { context: 32000, input: 30000, output: 4096 }, + }, + "NousResearch/Hermes-4-405B": { + id: "NousResearch/Hermes-4-405B", + name: "Hermes-4-405B", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, reasoning: 3, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "NousResearch/Hermes-4-70B": { + id: "NousResearch/Hermes-4-70B", + name: "Hermes-4-70B", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, reasoning: 0.4, cache_read: 0.013, cache_write: 0.16 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "BAAI/bge-en-icl": { + id: "BAAI/bge-en-icl", + name: "BGE-ICL", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-06", + release_date: "2024-07-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "BAAI/bge-multilingual-gemma2": { + id: "BAAI/bge-multilingual-gemma2", + name: "bge-multilingual-gemma2", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-06", + release_date: "2024-07-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 8192, input: 8192, output: 0 }, + }, + "PrimeIntellect/INTELLECT-3": { + id: "PrimeIntellect/INTELLECT-3", + name: "INTELLECT-3", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-25", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-02-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, reasoning: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3-0324-fast": { + id: "deepseek-ai/DeepSeek-V3-0324-fast", + name: "DeepSeek-V3-0324 (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.25, cache_read: 0.075, cache_write: 0.28125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4, reasoning: 2.4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 128000, input: 120000, output: 32768 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45, reasoning: 0.45, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 163000, input: 160000, output: 16384 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek-V3-0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5, cache_read: 0.05, cache_write: 0.1875 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1-0528-fast": { + id: "deepseek-ai/DeepSeek-R1-0528-fast", + name: "DeepSeek R1 0528 Fast", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 8192 }, + }, + "intfloat/e5-mistral-7b-instruct": { + id: "intfloat/e5-mistral-7b-instruct", + name: "e5-mistral-7b-instruct", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2023-12", + release_date: "2024-01-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi-K2-Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-05", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.4, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 200000, input: 190000, output: 8192 }, + }, + "moonshotai/Kimi-K2.5-fast": { + id: "moonshotai/Kimi-K2.5-fast", + name: "Kimi-K2.5-fast", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-15", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.5, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-15", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.5, reasoning: 2.5, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi-K2-Thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, reasoning: 2.5, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "google/gemma-2-2b-it": { + id: "google/gemma-2-2b-it", + name: "Gemma-2-2b-it", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-07-31", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 8192, input: 8000, output: 4096 }, + }, + "google/gemma-3-27b-it-fast": { + id: "google/gemma-3-27b-it-fast", + name: "Gemma-3-27b-it (Fast)", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 110000, input: 100000, output: 8192 }, + }, + "google/gemma-2-9b-it-fast": { + id: "google/gemma-2-9b-it-fast", + name: "Gemma-2-9b-it (Fast)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-27", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.0375 }, + limit: { context: 8192, input: 8000, output: 4096 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma-3-27b-it", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 110000, input: 100000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "Meta-Llama-3.1-8B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-07-23", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "meta-llama/Llama-Guard-3-8B": { + id: "meta-llama/Llama-Guard-3-8B", + name: "Llama-Guard-3-8B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: false, + knowledge: "2024-04", + release_date: "2024-04-18", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 8192, input: 8000, output: 1024 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-fast": { + id: "meta-llama/Llama-3.3-70B-Instruct-fast", + name: "Llama-3.3-70B-Instruct (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-12-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct-fast": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", + name: "Meta-Llama-3.1-8B-Instruct (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-07-23", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-12-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, cache_read: 0.013, cache_write: 0.16 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3-30B-A3B-Instruct-2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3-32B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 8192 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3-30B-A3B-Thinking-2507", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, reasoning: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.8 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen2.5-VL-72B-Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen3-Embedding-8B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2025-10", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "Qwen/Qwen3-32B-fast": { + id: "Qwen/Qwen3-32B-fast", + name: "Qwen3-32B (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.2, reasoning: 1.2, cache_read: 0.015, cache_write: 0.18 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "Qwen/Qwen2.5-Coder-7B-fast": { + id: "Qwen/Qwen2.5-Coder-7B-fast", + name: "Qwen2.5-Coder-7B (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-19", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3-Coder-30B-A3B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6, reasoning: 0.6, cache_read: 0.015, cache_write: 0.18 }, + limit: { context: 128000, input: 124000, output: 8192 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2, cache_read: 0.005, cache_write: 0.06 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "black-forest-labs/flux-dev": { + id: "black-forest-labs/flux-dev", + name: "FLUX.1-dev", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-07", + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 77, input: 77, output: 0 }, + }, + "black-forest-labs/flux-schnell": { + id: "black-forest-labs/flux-schnell", + name: "FLUX.1-schnell", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-07", + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 77, input: 77, output: 0 }, + }, + }, + }, + "qiniu-ai": { + id: "qiniu-ai", + env: ["QINIU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.qnaigc.com/v1", + name: "Qiniu", + doc: "https://developer.qiniu.com/aitokenapi", + models: { + "claude-4.5-haiku": { + id: "claude-4.5-haiku", + name: "Claude 4.5 Haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "claude-3.5-sonnet": { + id: "claude-3.5-sonnet", + name: "Claude 3.5 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-09", + last_updated: "2025-09-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 8200 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235b A22B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 64000 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 128000 }, + }, + "claude-3.7-sonnet": { + id: "claude-3.7-sonnet", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "qwen3-max-preview": { + id: "qwen3-max-preview", + name: "Qwen3 Max Preview", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-06", + last_updated: "2025-09-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 32768 }, + }, + "claude-4.0-sonnet": { + id: "claude-4.0-sonnet", + name: "Claude 4.0 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "qwen-vl-max-2025-01-25": { + id: "qwen-vl-max-2025-01-25", + name: "Qwen VL-MAX-2025-01-25", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek-V3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "doubao-seed-1.6-thinking": { + id: "doubao-seed-1.6-thinking", + name: "Doubao-Seed 1.6 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-14", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262000, output: 4096 }, + }, + "mimo-v2-flash": { + id: "mimo-v2-flash", + name: "Mimo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131000, output: 4096 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 98304 }, + }, + "claude-4.5-sonnet": { + id: "claude-4.5-sonnet", + name: "Claude 4.5 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "qwen2.5-vl-7b-instruct": { + id: "qwen2.5-vl-7b-instruct", + name: "Qwen 2.5 VL 7B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "doubao-seed-2.0-pro": { + id: "doubao-seed-2.0-pro", + name: "Doubao Seed 2.0 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 64000 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "doubao-seed-1.6": { + id: "doubao-seed-1.6", + name: "Doubao-Seed 1.6", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "doubao-seed-2.0-mini": { + id: "doubao-seed-2.0-mini", + name: "Doubao Seed 2.0 Mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "claude-4.0-opus": { + id: "claude-4.0-opus", + name: "Claude 4.0 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 32000 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen-Turbo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 4096 }, + }, + "gemini-3.0-pro-preview": { + id: "gemini-3.0-pro-preview", + name: "Gemini 3.0 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 64000 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 40000, output: 4096 }, + }, + "doubao-1.5-vision-pro": { + id: "doubao-1.5-vision-pro", + name: "Doubao 1.5 Vision Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "gemini-3.0-pro-image-preview": { + id: "gemini-3.0-pro-image-preview", + name: "Gemini 3.0 Pro Image Preview", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 32768, output: 8192 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-22", + last_updated: "2026-02-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 64000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 64000 }, + }, + "claude-3.5-haiku": { + id: "claude-3.5-haiku", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 8192 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "doubao-1.5-pro-32k": { + id: "doubao-1.5-pro-32k", + name: "Doubao 1.5 Pro 32k", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 12000 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30b A3b Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "qwen2.5-vl-72b-instruct": { + id: "qwen2.5-vl-72b-instruct", + name: "Qwen 2.5 VL 72B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen 3 235B A22B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "doubao-seed-2.0-lite": { + id: "doubao-seed-2.0-lite", + name: "Doubao Seed 2.0 Lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "claude-4.1-opus": { + id: "claude-4.1-opus", + name: "Claude 4.1 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 32000 }, + }, + "doubao-1.5-thinking-pro": { + id: "doubao-1.5-thinking-pro", + name: "Doubao 1.5 Thinking Pro", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 32768, output: 8192 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax M1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 80000 }, + }, + "doubao-seed-1.6-flash": { + id: "doubao-seed-1.6-flash", + name: "Doubao-Seed 1.6 Flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-vl-30b-a3b-thinking": { + id: "qwen3-vl-30b-a3b-thinking", + name: "Qwen3-Vl 30b A3b Thinking", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-09", + last_updated: "2026-02-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "doubao-seed-2.0-code": { + id: "doubao-seed-2.0-code", + name: "Doubao Seed 2.0 Code", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 128000 }, + }, + "qwen3-30b-a3b-thinking-2507": { + id: "qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30b A3b Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 126000, output: 32000 }, + }, + "claude-4.5-opus": { + id: "claude-4.5-opus", + name: "Claude 4.5 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 4096 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 32768 }, + }, + "gemini-3.0-flash-preview": { + id: "gemini-3.0-flash-preview", + name: "Gemini 3.0 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 64000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 40000, output: 4096 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "kling-v2-6": { + id: "kling-v2-6", + name: "Kling-V2 6", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-13", + last_updated: "2026-01-13", + modalities: { input: ["text", "image", "video"], output: ["video"] }, + open_weights: false, + limit: { context: 99999999, output: 99999999 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 8192 }, + }, + "qwen-max-2025-01-25": { + id: "qwen-max-2025-01-25", + name: "Qwen2.5-Max-2025-01-25", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "Xiaomi/Mimo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-26", + last_updated: "2025-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Stepfun/Step-3.5 Flash", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 64000, output: 4096 }, + }, + "deepseek/deepseek-v3.2-exp-thinking": { + id: "deepseek/deepseek-v3.2-exp-thinking", + name: "DeepSeek/DeepSeek-V3.2-Exp-Thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek/DeepSeek-V3.1-Terminus", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-251201": { + id: "deepseek/deepseek-v3.2-251201", + name: "Deepseek/DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-math-v2": { + id: "deepseek/deepseek-math-v2", + name: "Deepseek/Deepseek-Math-V2", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 160000, output: 160000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek/DeepSeek-V3.2-Exp", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.1-terminus-thinking": { + id: "deepseek/deepseek-v3.1-terminus-thinking", + name: "DeepSeek/DeepSeek-V3.1-Terminus-Thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 100000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Moonshotai/Kimi-K2.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 100000 }, + }, + "z-ai/autoglm-phone-9b": { + id: "z-ai/autoglm-phone-9b", + name: "Z-Ai/Autoglm Phone 9b", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 12800, output: 4096 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "Z-Ai/GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "Z-AI/GLM 4.6", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "Z-Ai/GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "stepfun-ai/gelab-zero-4b-preview": { + id: "stepfun-ai/gelab-zero-4b-preview", + name: "Stepfun-Ai/Gelab Zero 4b Preview", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 8192, output: 4096 }, + }, + "meituan/longcat-flash-lite": { + id: "meituan/longcat-flash-lite", + name: "Meituan/Longcat-Flash-Lite", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 320000 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "Meituan/Longcat-Flash-Chat", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-05", + last_updated: "2025-11-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 131072 }, + }, + "x-ai/grok-4-fast-reasoning": { + id: "x-ai/grok-4-fast-reasoning", + name: "X-Ai/Grok-4-Fast-Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "x-AI/Grok-Code-Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-02", + last_updated: "2025-09-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4.1-fast-reasoning": { + id: "x-ai/grok-4.1-fast-reasoning", + name: "X-Ai/Grok 4.1 Fast Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 20000000, output: 2000000 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "x-AI/Grok-4-Fast", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-20", + last_updated: "2025-09-20", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast-non-reasoning": { + id: "x-ai/grok-4.1-fast-non-reasoning", + name: "X-Ai/Grok 4.1 Fast Non Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "x-AI/Grok-4.1-Fast", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4-fast-non-reasoning": { + id: "x-ai/grok-4-fast-non-reasoning", + name: "X-Ai/Grok-4-Fast-Non-Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "OpenAI/GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "OpenAI/GPT-5", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 400000, output: 128000 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "Minimax/Minimax-M2.5 Highspeed", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax/Minimax-M2.1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "Minimax/Minimax-M2", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "Minimax/Minimax-M2.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + }, + }, + "ollama-cloud": { + id: "ollama-cloud", + env: ["OLLAMA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://ollama.com/v1", + name: "Ollama Cloud", + doc: "https://docs.ollama.com/cloud", + models: { + "glm-5": { + id: "glm-5", + name: "glm-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "qwen3-coder:480b": { + id: "qwen3-coder:480b", + name: "qwen3-coder:480b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-22", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "nemotron-3-nano:30b": { + id: "nemotron-3-nano:30b", + name: "nemotron-3-nano:30b", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 1048576, output: 131072 }, + }, + "ministral-3:8b": { + id: "ministral-3:8b", + name: "ministral-3:8b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "qwen3-coder-next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2026-02-02", + last_updated: "2026-02-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "gpt-oss:120b": { + id: "gpt-oss:120b", + name: "gpt-oss:120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 32768 }, + }, + "devstral-2:123b": { + id: "devstral-2:123b", + name: "devstral-2:123b", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-09", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "glm-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-09-29", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "qwen3-vl:235b-instruct": { + id: "qwen3-vl:235b-instruct", + name: "qwen3-vl:235b-instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-09-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 131072 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 1048576, output: 65536 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "minimax-m2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-23", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "ministral-3:14b": { + id: "ministral-3:14b", + name: "ministral-3:14b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "qwen3-next:80b": { + id: "qwen3-next:80b", + name: "qwen3-next:80b", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-09-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 32768 }, + }, + "kimi-k2:1t": { + id: "kimi-k2:1t", + name: "kimi-k2:1t", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "gemma3:12b": { + id: "gemma3:12b", + name: "gemma3:12b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "minimax-m2.7": { + id: "minimax-m2.7", + name: "minimax-m2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "kimi-k2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "gpt-oss:20b": { + id: "gpt-oss:20b", + name: "gpt-oss:20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 32768 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "deepseek-v3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-06-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 65536 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "glm-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-22", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "kimi-k2-thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "ministral-3:3b": { + id: "ministral-3:3b", + name: "ministral-3:3b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-10-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "qwen3.5:397b": { + id: "qwen3.5:397b", + name: "qwen3.5:397b", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + release_date: "2026-02-15", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 81920 }, + }, + "gemma3:27b": { + id: "gemma3:27b", + name: "gemma3:27b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2025-07-27", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "minimax-m2", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-10-23", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 128000 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "minimax-m2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "devstral-small-2:24b": { + id: "devstral-small-2:24b", + name: "devstral-small-2:24b", + family: "devstral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-12-09", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "nemotron-3-super": { + id: "nemotron-3-super", + name: "nemotron-3-super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "cogito-2.1:671b": { + id: "cogito-2.1:671b", + name: "cogito-2.1:671b", + family: "cogito", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-11-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 32000 }, + }, + "gemma3:4b": { + id: "gemma3:4b", + name: "gemma3:4b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-v3.1:671b": { + id: "deepseek-v3.1:671b", + name: "deepseek-v3.1:671b", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-21", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 163840 }, + }, + "mistral-large-3:675b": { + id: "mistral-large-3:675b", + name: "mistral-large-3:675b", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-12-02", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "rnj-1:8b": { + id: "rnj-1:8b", + name: "rnj-1:8b", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-06", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 32768, output: 4096 }, + }, + "qwen3-vl:235b": { + id: "qwen3-vl:235b", + name: "qwen3-vl:235b", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2025-09-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 32768 }, + }, + }, + }, + scaleway: { + id: "scaleway", + env: ["SCALEWAY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.scaleway.ai/v1", + name: "Scaleway", + doc: "https://www.scaleway.com/en/docs/generative-apis/", + models: { + "voxtral-small-24b-2507": { + id: "voxtral-small-24b-2507", + name: "Voxtral Small 24B 2507", + family: "voxtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-17", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 32000, output: 16384 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.25 }, + limit: { context: 260000, output: 16384 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 100000, output: 16384 }, + }, + "mistral-small-3.2-24b-instruct-2506": { + id: "mistral-small-3.2-24b-instruct-2506", + name: "Mistral Small 3.2 24B Instruct (2506)", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 128000, output: 32768 }, + }, + "qwen3-embedding-8b": { + id: "qwen3-embedding-8b", + name: "Qwen3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-25-11", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 32768, output: 4096 }, + }, + "bge-multilingual-gemma2": { + id: "bge-multilingual-gemma2", + name: "BGE Multilingual Gemma2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-07-26", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 256000, output: 16384 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 32768 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 32000, output: 8196 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 128000, output: 32768 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper Large v3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2026-03-17", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.003, output: 0 }, + limit: { context: 0, output: 8192 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 16384 }, + }, + "devstral-2-123b-instruct-2512": { + id: "devstral-2-123b-instruct-2512", + name: "Devstral 2 123B Instruct (2512)", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-07", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, output: 16384 }, + }, + "pixtral-12b-2409": { + id: "pixtral-12b-2409", + name: "Pixtral 12B 2409", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-25", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral-nemo-instruct-2407": { + id: "mistral-nemo-instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral-nemo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-25", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 8192 }, + }, + "gemma-3-27b-it": { + id: "gemma-3-27b-it", + name: "Gemma-3-27B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.5 }, + limit: { context: 40000, output: 8192 }, + }, + }, + }, + dinference: { + id: "dinference", + env: ["DINFERENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.dinference.com/v1", + name: "DInference", + doc: "https://dinference.com", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.4 }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08", + last_updated: "2025-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0675, output: 0.27 }, + limit: { context: 131072, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.65 }, + limit: { context: 200000, output: 128000 }, + }, + }, + }, + "cloudflare-ai-gateway": { + id: "cloudflare-ai-gateway", + env: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"], + npm: "ai-gateway-provider", + name: "Cloudflare AI Gateway", + doc: "https://developers.cloudflare.com/ai-gateway/", + models: { + "workers-ai/@cf/zai-org/glm-4.7-flash": { + id: "workers-ai/@cf/zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { + id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { + id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", + name: "IBM Granite 4.0 H Micro", + family: "granite", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-small-en-v1.5": { + id: "workers-ai/@cf/baai/bge-small-en-v1.5", + name: "BGE Small EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-large-en-v1.5": { + id: "workers-ai/@cf/baai/bge-large-en-v1.5", + name: "BGE Large EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-reranker-base": { + id: "workers-ai/@cf/baai/bge-reranker-base", + name: "BGE Reranker Base", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0031, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-m3": { + id: "workers-ai/@cf/baai/bge-m3", + name: "BGE M3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-base-en-v1.5": { + id: "workers-ai/@cf/baai/bge-base-en-v1.5", + name: "BGE Base EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.067, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/pfnet/plamo-embedding-1b": { + id: "workers-ai/@cf/pfnet/plamo-embedding-1b", + name: "PLaMo Embedding 1B", + family: "plamo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.019, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { + id: "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 4.88 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/facebook/bart-large-cnn": { + id: "workers-ai/@cf/facebook/bart-large-cnn", + name: "BART Large CNN", + family: "bart", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1": { + id: "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1", + name: "Mistral 7B Instruct v0.1", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/myshell-ai/melotts": { + id: "workers-ai/@cf/myshell-ai/melotts", + name: "MyShell MeloTTS", + family: "melotts", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/pipecat-ai/smart-turn-v2": { + id: "workers-ai/@cf/pipecat-ai/smart-turn-v2", + name: "Pipecat Smart Turn v2", + family: "smart-turn", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/moonshotai/kimi-k2.5": { + id: "workers-ai/@cf/moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "workers-ai/@cf/google/gemma-3-12b-it": { + id: "workers-ai/@cf/google/gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwq-32b": { + id: "workers-ai/@cf/qwen/qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { + id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct": { + id: "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct", + name: "Qwen 2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen3-embedding-0.6b": { + id: "workers-ai/@cf/qwen/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8", + name: "Llama 3.1 8B Instruct FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.29 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3-8b-instruct-awq": { + id: "workers-ai/@cf/meta/llama-3-8b-instruct-awq", + name: "Llama 3 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq", + name: "Llama 3.1 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { + id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049, output: 0.68 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-3b-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-guard-3-8b": { + id: "workers-ai/@cf/meta/llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 0.03 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-1b-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { + id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", + name: "Llama 3.3 70B Instruct FP8 Fast", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 2.25 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.8299999999999998 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/m2m100-1.2b": { + id: "workers-ai/@cf/meta/m2m100-1.2b", + name: "M2M100 1.2B", + family: "m2m", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-2-7b-chat-fp16": { + id: "workers-ai/@cf/meta/llama-2-7b-chat-fp16", + name: "Llama 2 7B Chat FP16", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 6.67 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3-8b-instruct": { + id: "workers-ai/@cf/meta/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.83 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { + id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/aura-2-es": { + id: "workers-ai/@cf/deepgram/aura-2-es", + name: "Deepgram Aura 2 (ES)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/nova-3": { + id: "workers-ai/@cf/deepgram/nova-3", + name: "Deepgram Nova 3", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/aura-2-en": { + id: "workers-ai/@cf/deepgram/aura-2-en", + name: "Deepgram Aura 2 (EN)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/openai/gpt-oss-120b": { + id: "workers-ai/@cf/openai/gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/openai/gpt-oss-20b": { + id: "workers-ai/@cf/openai/gpt-oss-20b", + name: "GPT OSS 20B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B": { + id: "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B", + name: "IndicTrans2 EN-Indic 1B", + family: "indictrans", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/huggingface/distilbert-sst-2-int8": { + id: "workers-ai/@cf/huggingface/distilbert-sst-2-int8", + name: "DistilBERT SST-2 INT8", + family: "distilbert", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.026, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it": { + id: "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it", + name: "Gemma SEA-LION v4 27B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5-turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2021-09-01", + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4": { + id: "openai/gpt-4", + name: "GPT-4", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4-1": { + id: "anthropic/claude-opus-4-1", + name: "Claude Opus 4.1 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3-sonnet": { + id: "anthropic/claude-3-sonnet", + name: "Claude Sonnet 3", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-3-5-haiku": { + id: "anthropic/claude-3-5-haiku", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-opus": { + id: "anthropic/claude-3-opus", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + "kuae-cloud-coding-plan": { + id: "kuae-cloud-coding-plan", + env: ["KUAE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding-plan-endpoint.kuaecloud.net/v1", + name: "KUAE Cloud Coding Plan", + doc: "https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/", + models: { + "GLM-4.7": { + id: "GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + upstage: { + id: "upstage", + env: ["UPSTAGE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.upstage.ai/v1/solar", + name: "Upstage", + doc: "https://developers.upstage.ai/docs/apis/chat", + models: { + "solar-pro2": { + id: "solar-pro2", + name: "solar-pro2", + family: "solar-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 65536, output: 8192 }, + }, + "solar-mini": { + id: "solar-mini", + name: "solar-mini", + family: "solar-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-06-12", + last_updated: "2025-04-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 4096 }, + }, + "solar-pro3": { + id: "solar-pro3", + name: "solar-pro3", + family: "solar-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + inception: { + id: "inception", + env: ["INCEPTION_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.inceptionlabs.ai/v1/", + name: "Inception", + doc: "https://platform.inceptionlabs.ai/docs", + models: { + "mercury-2": { + id: "mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + mercury: { + id: "mercury", + name: "Mercury", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-06-26", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "mercury-edit": { + id: "mercury-edit", + name: "Mercury Edit", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 8192 }, + }, + "mercury-coder": { + id: "mercury-coder", + name: "Mercury Coder", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-02-26", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + submodel: { + id: "submodel", + env: ["SUBMODEL_INSTAGEN_ACCESS_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://llm.submodel.ai/v1", + name: "submodel", + doc: "https://submodel.gitbook.io", + models: { + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "zai-org/GLM-4.5-FP8": { + id: "zai-org/GLM-4.5-FP8", + name: "GLM 4.5 FP8", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.15 }, + limit: { context: 75000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 75000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 75000, output: 163840 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 262144, output: 131072 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + "minimax-cn-coding-plan": { + id: "minimax-cn-coding-plan", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimaxi.com/anthropic/v1", + name: "MiniMax Coding Plan (minimaxi.com)", + doc: "https://platform.minimaxi.com/docs/coding-plan/intro", + models: { + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "novita-ai": { + id: "novita-ai", + env: ["NOVITA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.novita.ai/openai", + name: "NovitaAI", + doc: "https://novita.ai/docs/guides/introduction", + models: { + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131072 }, + }, + "zai-org/glm-4.5-air": { + id: "zai-org/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-10-13", + last_updated: "2025-10-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.85 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/glm-4.6": { + id: "zai-org/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/autoglm-phone-9b-multilingual": { + id: "zai-org/autoglm-phone-9b-multilingual", + name: "AutoGLM-Phone-9B-Multilingual", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-12-10", + last_updated: "2025-12-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.035, output: 0.138 }, + limit: { context: 65536, output: 65536 }, + }, + "zai-org/glm-4.5v": { + id: "zai-org/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 65536, output: 16384 }, + }, + "zai-org/glm-4.6v": { + id: "zai-org/glm-4.6v", + name: "GLM 4.6V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9, cache_read: 0.055 }, + limit: { context: 131072, output: 32768 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "Wizardlm 2 8x22B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-24", + last_updated: "2024-04-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 0.62 }, + limit: { context: 65535, output: 8000 }, + }, + "minimaxai/minimax-m1-80k": { + id: "minimaxai/minimax-m1-80k", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "skywork/r1v4-lite": { + id: "skywork/r1v4-lite", + name: "Skywork R1V4-Lite", + family: "skywork", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 65536 }, + }, + "gryphe/mythomax-l2-13b": { + id: "gryphe/mythomax-l2-13b", + name: "Mythomax L2 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.09 }, + limit: { context: 4096, output: 3200 }, + }, + "paddlepaddle/paddleocr-vl": { + id: "paddlepaddle/paddleocr-vl", + name: "PaddleOCR-VL", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 16384, output: 16384 }, + }, + "baichuan/baichuan-m2-32b": { + id: "baichuan/baichuan-m2-32b", + name: "baichuan-m2-32b", + family: "baichuan", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-12", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 131072, output: 131072 }, + }, + "kwaipilot/kat-coder-pro": { + id: "kwaipilot/kat-coder-pro", + name: "Kat Coder Pro", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-05", + last_updated: "2026-01-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 128000 }, + }, + "kwaipilot/kat-coder": { + id: "kwaipilot/kat-coder", + name: "KAT-Coder-Pro V1(Free)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek/deepseek-v3-turbo": { + id: "deepseek/deepseek-v3-turbo", + name: "DeepSeek V3 (Turbo)\t", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.3 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-prover-v2-671b": { + id: "deepseek/deepseek-prover-v2-671b", + name: "Deepseek Prover V2 671B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 160000, output: 160000 }, + }, + "deepseek/deepseek-r1-turbo": { + id: "deepseek/deepseek-r1-turbo", + name: "DeepSeek R1 (Turbo)\t", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-ocr-2": { + id: "deepseek/deepseek-ocr-2", + name: "deepseek/deepseek-ocr-2", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1, cache_read: 0.135 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5, cache_read: 0.35 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-r1-0528-qwen3-8b": { + id: "deepseek/deepseek-r1-0528-qwen3-8b", + name: "DeepSeek R1 0528 Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-05-29", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.09 }, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill LLama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.12, cache_read: 0.135 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "Deepseek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1, cache_read: 0.135 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "Deepseek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.269, output: 0.4, cache_read: 0.1345 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-ocr": { + id: "deepseek/deepseek-ocr", + name: "DeepSeek-OCR", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-24", + last_updated: "2025-10-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "Deepseek V3.2 Exp", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + "baidu/ernie-4.5-vl-28b-a3b-thinking": { + id: "baidu/ernie-4.5-vl-28b-a3b-thinking", + name: "ERNIE-4.5-VL-28B-A3B-Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 0.39 }, + limit: { context: 131072, output: 65536 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "ERNIE 4.5 VL 424B A47B", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "ERNIE 4.5 VL 28B A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 5.6 }, + limit: { context: 30000, output: 8000 }, + }, + "baidu/ernie-4.5-300b-a47b-paddle": { + id: "baidu/ernie-4.5-300b-a47b-paddle", + name: "ERNIE 4.5 300B A47B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "baidu/ernie-4.5-21B-a3b": { + id: "baidu/ernie-4.5-21B-a3b", + name: "ERNIE 4.5 21B A3B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 120000, output: 8000 }, + }, + "baidu/ernie-4.5-21B-a3b-thinking": { + id: "baidu/ernie-4.5-21B-a3b-thinking", + name: "ERNIE-4.5-21B-A3B-Thinking", + family: "ernie", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131072, output: 65536 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.119, output: 0.2 }, + limit: { context: 98304, output: 16384 }, + }, + "qwen/qwen3-4b-fp8": { + id: "qwen/qwen3-4b-fp8", + name: "Qwen3 4B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 128000, output: 20000 }, + }, + "qwen/qwen3-235b-a22b-instruct-2507": { + id: "qwen/qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.58 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen/qwen3-32b-fp8": { + id: "qwen/qwen3-32b-fp8", + name: "Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.3 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-fp8": { + id: "qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 64000 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30b A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-09", + last_updated: "2025-10-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + id: "qwen/qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-mt-plus": { + id: "qwen/qwen-mt-plus", + name: "Qwen MT Plus", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-03", + last_updated: "2025-09-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen/qwen3-omni-30b-a3b-instruct": { + id: "qwen/qwen3-omni-30b-a3b-instruct", + name: "Qwen3 Omni 30B A3B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "video", "audio", "image"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen/qwen-2.5-72b-instruct": { + id: "qwen/qwen-2.5-72b-instruct", + name: "Qwen 2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-15", + last_updated: "2024-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 0.4 }, + limit: { context: 32000, output: 8192 }, + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + id: "qwen/qwen3-vl-30b-a3b-thinking", + name: "qwen/qwen3-vl-30b-a3b-thinking", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + id: "qwen/qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.98, output: 3.95 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22b Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen2.5-7b-instruct": { + id: "qwen/qwen2.5-7b-instruct", + name: "Qwen2.5 7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 32000, output: 32000 }, + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + id: "qwen/qwen3-vl-30b-a3b-instruct", + name: "qwen/qwen3-vl-30b-a3b-instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-fp8": { + id: "qwen/qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-vl-8b-instruct": { + id: "qwen/qwen3-vl-8b-instruct", + name: "qwen/qwen3-vl-8b-instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-17", + last_updated: "2025-10-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.11, output: 8.45 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-8b-fp8": { + id: "qwen/qwen3-8b-fp8", + name: "Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.035, output: 0.138 }, + limit: { context: 128000, output: 20000 }, + }, + "qwen/qwen3-omni-30b-a3b-thinking": { + id: "qwen/qwen3-omni-30b-a3b-thinking", + name: "Qwen3 Omni 30B A3B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "audio", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, + limit: { context: 65536, output: 16384 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-07", + last_updated: "2024-12-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.135, output: 0.4 }, + limit: { context: 131072, output: 120000 }, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + id: "meta-llama/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-06", + last_updated: "2025-04-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.59 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3-70b-instruct": { + id: "meta-llama/llama-3-70b-instruct", + name: "Llama3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 16384, output: 16384 }, + }, + "meta-llama/llama-3-8b-instruct": { + id: "meta-llama/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 8192, output: 8192 }, + }, + "meta-llama/llama-4-maverick-17b-128e-instruct-fp8": { + id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-06", + last_updated: "2025-04-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 1048576, output: 8192 }, + }, + "mistralai/mistral-nemo": { + id: "mistralai/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-07-30", + last_updated: "2024-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.17 }, + limit: { context: 60288, output: 16000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "OpenAI: GPT OSS 20B", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 131072, output: 32768 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "sao10k/l3-70b-euryale-v2.1": { + id: "sao10k/l3-70b-euryale-v2.1", + name: "L3 70B Euryale V2.1\t", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-06-18", + last_updated: "2024-06-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l31-70b-euryale-v2.2": { + id: "sao10k/l31-70b-euryale-v2.2", + name: "L31 70B Euryale V2.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3-8b-lunaris": { + id: "sao10k/l3-8b-lunaris", + name: "Sao10k L3 8B Lunaris\t", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2024-11-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/L3-8B-Stheno-v3.2": { + id: "sao10k/L3-8B-Stheno-v3.2", + name: "L3 8B Stheno V3.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 8192, output: 32000 }, + }, + "xiaomimimo/mimo-v2-flash": { + id: "xiaomimimo/mimo-v2-flash", + name: "XiaomiMiMo/MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.3 }, + limit: { context: 262144, output: 32000 }, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + id: "nousresearch/hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + }, + }, + }, + opencode: { + id: "opencode", + env: ["OPENCODE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://opencode.ai/zen/v1", + name: "OpenCode Zen", + doc: "https://opencode.ai/docs/zen", + models: { + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gemini-3.1-pro": { + id: "gemini-3.1-pro", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/google" }, + }, + "trinity-large-preview-free": { + id: "trinity-large-preview-free", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + status: "deprecated", + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "kimi-k2.5-free": { + id: "kimi-k2.5-free", + name: "Kimi K2.5 Free", + family: "kimi-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "grok-code": { + id: "grok-code", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-20", + last_updated: "2025-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 256000, output: 256000 }, + status: "deprecated", + }, + "nemotron-3-super-free": { + id: "nemotron-3-super-free", + name: "Nemotron 3 Super Free", + family: "nemotron-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + "claude-3-5-haiku": { + id: "claude-3-5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "mimo-v2-flash-free": { + id: "mimo-v2-flash-free", + name: "MiMo V2 Flash Free", + family: "mimo-flash-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 65536 }, + status: "deprecated", + }, + "gemini-3-flash": { + id: "gemini-3-flash", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/google" }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.3-codex-spark": { + id: "gpt-5.3-codex-spark", + name: "GPT-5.3 Codex Spark", + family: "gpt-codex-spark", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 128000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "qwen3-coder": { + id: "qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.8 }, + limit: { context: 262144, output: 65536 }, + status: "deprecated", + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "mimo-v2-omni-free": { + id: "mimo-v2-omni-free", + name: "MiMo V2 Omni Free", + family: "mimo-omni-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 64000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.08 }, + limit: { context: 262144, output: 65536 }, + }, + "minimax-m2.1-free": { + id: "minimax-m2.1-free", + name: "MiniMax M2.1 Free", + family: "minimax-free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + provider: { npm: "@ai-sdk/anthropic" }, + }, + "mimo-v2-pro-free": { + id: "mimo-v2-pro-free", + name: "MiMo V2 Pro Free", + family: "mimo-pro-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1048576, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "glm-5-free": { + id: "glm-5-free", + name: "GLM-5 Free", + family: "glm-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "big-pickle": { + id: "big-pickle", + name: "Big Pickle", + family: "big-pickle", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-10-17", + last_updated: "2025-10-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.5-free": { + id: "minimax-m2.5-free", + name: "MiniMax M2.5 Free", + family: "minimax-free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "glm-4.7-free": { + id: "glm-4.7-free", + name: "GLM-4.7 Free", + family: "glm-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "gemini-3-pro": { + id: "gemini-3-pro", + name: "Gemini 3 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + status: "deprecated", + provider: { npm: "@ai-sdk/google" }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + }, + }, + poe: { + id: "poe", + env: ["POE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.poe.com/v1", + name: "Poe", + doc: "https://creator.poe.com/docs/external-applications/openai-compatible-api", + models: { + "stabilityai/stablediffusionxl": { + id: "stabilityai/stablediffusionxl", + name: "StableDiffusionXL", + family: "stable-diffusion", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-07-09", + last_updated: "2023-07-09", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 200, output: 0 }, + }, + "ideogramai/ideogram-v2": { + id: "ideogramai/ideogram-v2", + name: "Ideogram-v2", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-21", + last_updated: "2024-08-21", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram": { + id: "ideogramai/ideogram", + name: "Ideogram", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-04-03", + last_updated: "2024-04-03", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2a-turbo": { + id: "ideogramai/ideogram-v2a-turbo", + name: "Ideogram-v2a-Turbo", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2a": { + id: "ideogramai/ideogram-v2a", + name: "Ideogram-v2a", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "novita/glm-4.7-flash": { + id: "novita/glm-4.7-flash", + name: "glm-4.7-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 65500 }, + }, + "novita/glm-4.7-n": { + id: "novita/glm-4.7-n", + name: "glm-4.7-n", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/glm-4.6": { + id: "novita/glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "novita/minimax-m2.1": { + id: "novita/minimax-m2.1", + name: "minimax-m2.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-26", + last_updated: "2025-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/kimi-k2.5": { + id: "novita/kimi-k2.5", + name: "kimi-k2.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 262144 }, + }, + "novita/glm-4.7": { + id: "novita/glm-4.7", + name: "glm-4.7", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/kimi-k2-thinking": { + id: "novita/kimi-k2-thinking", + name: "kimi-k2-thinking", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 0 }, + }, + "novita/glm-4.6v": { + id: "novita/glm-4.6v", + name: "glm-4.6v", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 131000, output: 32768 }, + }, + "google/gemini-3.1-pro": { + id: "google/gemini-3.1-pro", + name: "Gemini-3.1-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/lyria": { + id: "google/lyria", + name: "Lyria", + family: "lyria", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "google/gemini-3-flash": { + id: "google/gemini-3-flash", + name: "Gemini-3-Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-07", + last_updated: "2025-10-07", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, cache_read: 0.04 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/imagen-3": { + id: "google/imagen-3", + name: "Imagen-3", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-15", + last_updated: "2024-10-15", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini-2.5-Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-26", + last_updated: "2025-04-26", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, + limit: { context: 1065535, output: 65535 }, + }, + "google/veo-3.1": { + id: "google/veo-3.1", + name: "Veo-3.1", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/imagen-3-fast": { + id: "google/imagen-3-fast", + name: "Imagen-3-Fast", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-17", + last_updated: "2024-10-17", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/nano-banana-pro": { + id: "google/nano-banana-pro", + name: "Nano-Banana-Pro", + family: "nano-banana", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 65536, output: 0 }, + }, + "google/veo-2": { + id: "google/veo-2", + name: "Veo-2", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-02", + last_updated: "2024-12-02", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/imagen-4-ultra": { + id: "google/imagen-4-ultra", + name: "Imagen-4-Ultra", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-24", + last_updated: "2025-05-24", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini-2.5-Flash-Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-19", + last_updated: "2025-06-19", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 1024000, output: 64000 }, + }, + "google/nano-banana": { + id: "google/nano-banana", + name: "Nano-Banana", + family: "nano-banana", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, + limit: { context: 65536, output: 0 }, + }, + "google/veo-3.1-fast": { + id: "google/veo-3.1-fast", + name: "Veo-3.1-Fast", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-deep-research": { + id: "google/gemini-deep-research", + name: "gemini-deep-research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 9.6 }, + limit: { context: 1048576, output: 0 }, + }, + "google/veo-3": { + id: "google/veo-3", + name: "Veo-3", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/imagen-4": { + id: "google/imagen-4", + name: "Imagen-4", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.0-flash-lite": { + id: "google/gemini-2.0-flash-lite", + name: "Gemini-2.0-Flash-Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.052, output: 0.21 }, + limit: { context: 990000, output: 8192 }, + }, + "google/gemini-3.1-flash-lite": { + id: "google/gemini-3.1-flash-lite", + name: "Gemini-3.1-Flash-Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro": { + id: "google/gemini-3-pro", + name: "Gemini-3-Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 9.6, cache_read: 0.16 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini-2.5-Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.87, output: 7, cache_read: 0.087 }, + limit: { context: 1065535, output: 65535 }, + }, + "google/gemini-2.0-flash": { + id: "google/gemini-2.0-flash", + name: "Gemini-2.0-Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.42 }, + limit: { context: 990000, output: 8192 }, + }, + "google/veo-3-fast": { + id: "google/veo-3-fast", + name: "Veo-3-Fast", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-13", + last_updated: "2025-10-13", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/imagen-4-fast": { + id: "google/imagen-4-fast", + name: "Imagen-4-Fast", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "lumalabs/ray2": { + id: "lumalabs/ray2", + name: "Ray2", + family: "ray", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 5000, output: 0 }, + }, + "poetools/claude-code": { + id: "poetools/claude-code", + name: "claude-code", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-27", + last_updated: "2025-11-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-10", + last_updated: "2026-02-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5-Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 14, output: 110 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.54, cache_read: 0.068 }, + limit: { context: 124096, output: 4096 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9, output: 36, cache_read: 2.2 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2024-12-18", + last_updated: "2024-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 14, output: 54 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "o4-mini-deep-research", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5-Chat", + family: "gpt-codex", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-classic": { + id: "openai/gpt-4-classic", + name: "GPT-4-Classic", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-03-25", + last_updated: "2024-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 27, output: 54 }, + limit: { context: 8192, output: 4096 }, + }, + "openai/gpt-5.3-instant": { + id: "openai/gpt-5.3-instant", + name: "GPT-5.3-Instant", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-image-1.5": { + id: "openai/gpt-image-1.5", + name: "gpt-image-1.5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36, cache_read: 0.022 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-image-1-mini": { + id: "openai/gpt-image-1-mini", + name: "GPT-Image-1-Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/sora-2-pro": { + id: "openai/sora-2-pro", + name: "Sora-2-Pro", + family: "sora", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5-Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-13", + last_updated: "2023-09-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 1.4 }, + limit: { context: 16384, output: 2048 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4o-aug": { + id: "openai/gpt-4o-aug", + name: "GPT-4o-Aug", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-11-21", + last_updated: "2024-11-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 9, cache_read: 1.1 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 18, output: 72 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4-Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-13", + last_updated: "2023-09-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 9, output: 27 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-image-1": { + id: "openai/gpt-image-1", + name: "GPT-Image-1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-31", + last_updated: "2025-03-31", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "openai/sora-2": { + id: "openai/sora-2", + name: "Sora-2", + family: "sora", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/gpt-3.5-turbo-raw": { + id: "openai/gpt-3.5-turbo-raw", + name: "GPT-3.5-Turbo-Raw", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-27", + last_updated: "2023-09-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 1.4 }, + limit: { context: 4524, output: 2048 }, + }, + "openai/gpt-4o-mini-search": { + id: "openai/gpt-4o-mini-search", + name: "GPT-4o-mini-Search", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.54 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4, cache_read: 0.25 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.36, output: 1.4, cache_read: 0.09 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "pdf"], output: ["image"] }, + open_weights: false, + cost: { input: 2.2, output: 14, cache_read: 0.22 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + cost: { input: 27, output: 160 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "o1-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-03-19", + last_updated: "2025-03-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 140, output: 540 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/chatgpt-4o-latest": { + id: "openai/chatgpt-4o-latest", + name: "ChatGPT-4o-Latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-14", + last_updated: "2024-08-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.5, output: 14 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 19, output: 150 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/dall-e-3": { + id: "openai/dall-e-3", + name: "DALL-E-3", + family: "dall-e", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 800, output: 0 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-search": { + id: "openai/gpt-4o-search", + name: "GPT-4o-Search", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 9 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4-Nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 1.1, cache_read: 0.018 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-4-classic-0314": { + id: "openai/gpt-4-classic-0314", + name: "GPT-4-Classic-0314", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-26", + last_updated: "2024-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 27, output: 54 }, + limit: { context: 8192, output: 4096 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045, output: 0.36, cache_read: 0.0045 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "GPT-3.5-Turbo-Instruct", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-20", + last_updated: "2023-09-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 1.8 }, + limit: { context: 3500, output: 1024 }, + }, + "openai/gpt-5.2-instant": { + id: "openai/gpt-5.2-instant", + name: "GPT-5.2-Instant", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "o3-mini-high", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.68, output: 4, cache_read: 0.068 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1-instant": { + id: "openai/gpt-5.1-instant", + name: "GPT-5.1-Instant", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "topazlabs-co/topazlabs": { + id: "topazlabs-co/topazlabs", + name: "TopazLabs", + family: "topazlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 204, output: 0 }, + }, + "runwayml/runway": { + id: "runwayml/runway", + name: "Runway", + family: "runway", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 256, output: 0 }, + }, + "runwayml/runway-gen-4-turbo": { + id: "runwayml/runway-gen-4-turbo", + name: "Runway-Gen-4-Turbo", + family: "runway", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-09", + last_updated: "2025-05-09", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 256, output: 0 }, + }, + "anthropic/claude-sonnet-3.5-june": { + id: "anthropic/claude-sonnet-3.5-june", + name: "Claude-Sonnet-3.5-June", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-11-18", + last_updated: "2024-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude-Opus-4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, + limit: { context: 196608, output: 32000 }, + }, + "anthropic/claude-sonnet-3.5": { + id: "anthropic/claude-sonnet-3.5", + name: "Claude-Sonnet-3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-haiku-3": { + id: "anthropic/claude-haiku-3", + name: "Claude-Haiku-3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-03-09", + last_updated: "2024-03-09", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 1.1, cache_read: 0.021, cache_write: 0.26 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-haiku-3.5": { + id: "anthropic/claude-haiku-3.5", + name: "Claude-Haiku-3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.68, output: 3.4, cache_read: 0.068, cache_write: 0.85 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude-Sonnet-4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 128000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude-Haiku-4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 4.3, cache_read: 0.085, cache_write: 1.1 }, + limit: { context: 192000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude-Opus-4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-21", + last_updated: "2025-11-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, + limit: { context: 196608, output: 64000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude-Opus-4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, + limit: { context: 192512, output: 28672 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude-Sonnet-4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude-Sonnet-4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 32768 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude-Opus-4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, + limit: { context: 983040, output: 128000 }, + }, + "anthropic/claude-sonnet-3.7": { + id: "anthropic/claude-sonnet-3.7", + name: "Claude-Sonnet-3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 196608, output: 128000 }, + }, + "trytako/tako": { + id: "trytako/tako", + name: "Tako", + family: "tako", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 2048, output: 0 }, + }, + "elevenlabs/elevenlabs-music": { + id: "elevenlabs/elevenlabs-music", + name: "ElevenLabs-Music", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-29", + last_updated: "2025-08-29", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 2000, output: 0 }, + }, + "elevenlabs/elevenlabs-v3": { + id: "elevenlabs/elevenlabs-v3", + name: "ElevenLabs-v3", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "elevenlabs/elevenlabs-v2.5-turbo": { + id: "elevenlabs/elevenlabs-v2.5-turbo", + name: "ElevenLabs-v2.5-Turbo", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-28", + last_updated: "2024-10-28", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "cerebras/llama-3.1-8b-cs": { + id: "cerebras/llama-3.1-8b-cs", + name: "llama-3.1-8b-cs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-13", + last_updated: "2025-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/gpt-oss-120b-cs": { + id: "cerebras/gpt-oss-120b-cs", + name: "gpt-oss-120b-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/qwen3-235b-2507-cs": { + id: "cerebras/qwen3-235b-2507-cs", + name: "qwen3-235b-2507-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/llama-3.3-70b-cs": { + id: "cerebras/llama-3.3-70b-cs", + name: "llama-3.3-70b-cs", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-13", + last_updated: "2025-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/qwen3-32b-cs": { + id: "cerebras/qwen3-32b-cs", + name: "qwen3-32b-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-15", + last_updated: "2025-05-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4-fast-reasoning": { + id: "xai/grok-4-fast-reasoning", + name: "Grok-4-Fast-Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-code-fast-1": { + id: "xai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-22", + last_updated: "2025-08-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 128000 }, + }, + "xai/grok-4.1-fast-reasoning": { + id: "xai/grok-4.1-fast-reasoning", + name: "Grok-4.1-Fast-Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok-4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 128000 }, + }, + "xai/grok-4.1-fast-non-reasoning": { + id: "xai/grok-4.1-fast-non-reasoning", + name: "Grok-4.1-Fast-Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4-fast-non-reasoning": { + id: "xai/grok-4-fast-non-reasoning", + name: "Grok-4-Fast-Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + }, + }, + "amazon-bedrock": { + id: "amazon-bedrock", + env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"], + npm: "@ai-sdk/amazon-bedrock", + name: "Amazon Bedrock", + doc: "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + models: { + "deepseek.r1-v1:0": { + id: "deepseek.r1-v1:0", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 32768 }, + }, + "meta.llama3-1-70b-instruct-v1:0": { + id: "meta.llama3-1-70b-instruct-v1:0", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen.qwen3-coder-480b-a35b-v1:0": { + id: "qwen.qwen3-coder-480b-a35b-v1:0", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.8 }, + limit: { context: 131072, output: 65536 }, + }, + "eu.anthropic.claude-sonnet-4-6": { + id: "eu.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (EU)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.mistral-large-3-675b-instruct": { + id: "mistral.mistral-large-3-675b-instruct", + name: "Mistral Large 3", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 8192 }, + }, + "openai.gpt-oss-120b-1:0": { + id: "openai.gpt-oss-120b-1:0", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-opus-4-20250514-v1:0": { + id: "us.anthropic.claude-opus-4-20250514-v1:0", + name: "Claude Opus 4 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "nvidia.nemotron-nano-12b-v2": { + id: "nvidia.nemotron-nano-12b-v2", + name: "NVIDIA Nemotron Nano 12B v2 VL BF16", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-3-7-sonnet-20250219-v1:0": { + id: "anthropic.claude-3-7-sonnet-20250219-v1:0", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic.claude-sonnet-4-6": { + id: "anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "minimax.minimax-m2.1": { + id: "minimax.minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "global.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "global.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (Global)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.ministral-3-8b-instruct": { + id: "mistral.ministral-3-8b-instruct", + name: "Ministral 3 8B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 4096 }, + }, + "openai.gpt-oss-safeguard-20b": { + id: "openai.gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "amazon.nova-lite-v1:0": { + id: "amazon.nova-lite-v1:0", + name: "Nova Lite", + family: "nova-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, + limit: { context: 300000, output: 8192 }, + }, + "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.pixtral-large-2502-v1:0": { + id: "mistral.pixtral-large-2502-v1:0", + name: "Pixtral Large (25.02)", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-08", + last_updated: "2025-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 8192 }, + }, + "google.gemma-3-12b-it": { + id: "google.gemma-3-12b-it", + name: "Google Gemma 3 12B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, + limit: { context: 131072, output: 8192 }, + }, + "meta.llama3-1-8b-instruct-v1:0": { + id: "meta.llama3-1-8b-instruct-v1:0", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral.devstral-2-123b": { + id: "mistral.devstral-2-123b", + name: "Devstral 2 123B", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, output: 8192 }, + }, + "anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "meta.llama4-maverick-17b-instruct-v1:0": { + id: "meta.llama4-maverick-17b-instruct-v1:0", + name: "Llama 4 Maverick 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.97 }, + limit: { context: 1000000, output: 16384 }, + }, + "mistral.ministral-3-14b-instruct": { + id: "mistral.ministral-3-14b-instruct", + name: "Ministral 14B 3.0", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "minimax.minimax-m2": { + id: "minimax.minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204608, output: 128000 }, + }, + "amazon.nova-micro-v1:0": { + id: "amazon.nova-micro-v1:0", + name: "Nova Micro", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, + limit: { context: 128000, output: 8192 }, + }, + "anthropic.claude-3-5-sonnet-20241022-v2:0": { + id: "anthropic.claude-3-5-sonnet-20241022-v2:0", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "nvidia.nemotron-nano-3-30b": { + id: "nvidia.nemotron-nano-3-30b", + name: "NVIDIA Nemotron Nano 3 30B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-sonnet-4-20250514-v1:0": { + id: "anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen.qwen3-vl-235b-a22b": { + id: "qwen.qwen3-vl-235b-a22b", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "global.anthropic.claude-opus-4-6-v1": { + id: "global.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (Global)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "writer.palmyra-x4-v1:0": { + id: "writer.palmyra-x4-v1:0", + name: "Palmyra X4", + family: "palmyra", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 122880, output: 8192 }, + }, + "minimax.minimax-m2.5": { + id: "minimax.minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 98304 }, + }, + "amazon.nova-pro-v1:0": { + id: "amazon.nova-pro-v1:0", + name: "Nova Pro", + family: "nova-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, + limit: { context: 300000, output: 8192 }, + }, + "us.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "us.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "meta.llama3-2-90b-instruct-v1:0": { + id: "meta.llama3-2-90b-instruct-v1:0", + name: "Llama 3.2 90B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-opus-4-6-v1": { + id: "us.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "google.gemma-3-4b-it": { + id: "google.gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.08 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-opus-4-6-v1": { + id: "anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "zai.glm-4.7-flash": { + id: "zai.glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 131072 }, + }, + "anthropic.claude-opus-4-20250514-v1:0": { + id: "anthropic.claude-opus-4-20250514-v1:0", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "global.anthropic.claude-sonnet-4-6": { + id: "global.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "meta.llama3-2-1b-instruct-v1:0": { + id: "meta.llama3-2-1b-instruct-v1:0", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 4096 }, + }, + "anthropic.claude-opus-4-1-20250805-v1:0": { + id: "anthropic.claude-opus-4-1-20250805-v1:0", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "meta.llama4-scout-17b-instruct-v1:0": { + id: "meta.llama4-scout-17b-instruct-v1:0", + name: "Llama 4 Scout 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 3500000, output: 16384 }, + }, + "deepseek.v3.2": { + id: "deepseek.v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 1.85 }, + limit: { context: 163840, output: 81920 }, + }, + "deepseek.v3-v1:0": { + id: "deepseek.v3-v1:0", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 163840, output: 81920 }, + }, + "mistral.ministral-3-3b-instruct": { + id: "mistral.ministral-3-3b-instruct", + name: "Ministral 3 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 256000, output: 8192 }, + }, + "global.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (Global)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "nvidia.nemotron-nano-9b-v2": { + id: "nvidia.nemotron-nano-9b-v2", + name: "NVIDIA Nemotron Nano 9B v2", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.23 }, + limit: { context: 128000, output: 4096 }, + }, + "writer.palmyra-x5-v1:0": { + id: "writer.palmyra-x5-v1:0", + name: "Palmyra X5", + family: "palmyra", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 6 }, + limit: { context: 1040000, output: 8192 }, + }, + "meta.llama3-3-70b-instruct-v1:0": { + id: "meta.llama3-3-70b-instruct-v1:0", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "zai.glm-4.7": { + id: "zai.glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "moonshot.kimi-k2-thinking": { + id: "moonshot.kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 256000, output: 256000 }, + }, + "anthropic.claude-3-haiku-20240307-v1:0": { + id: "anthropic.claude-3-haiku-20240307-v1:0", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-02", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25 }, + limit: { context: 200000, output: 4096 }, + }, + "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "openai.gpt-oss-20b-1:0": { + id: "openai.gpt-oss-20b-1:0", + name: "gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-sonnet-4-6": { + id: "us.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "meta.llama3-2-11b-instruct-v1:0": { + id: "meta.llama3-2-11b-instruct-v1:0", + name: "Llama 3.2 11B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.16 }, + limit: { context: 128000, output: 4096 }, + }, + "eu.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (EU)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "meta.llama3-1-405b-instruct-v1:0": { + id: "meta.llama3-1-405b-instruct-v1:0", + name: "Llama 3.1 405B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 2.4 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen.qwen3-next-80b-a3b": { + id: "qwen.qwen3-next-80b-a3b", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "us.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "us.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen.qwen3-coder-30b-a3b-v1:0": { + id: "qwen.qwen3-coder-30b-a3b-v1:0", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 131072 }, + }, + "us.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (US)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen.qwen3-235b-a22b-2507-v1:0": { + id: "qwen.qwen3-235b-a22b-2507-v1:0", + name: "Qwen3 235B A22B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 262144, output: 131072 }, + }, + "openai.gpt-oss-safeguard-120b": { + id: "openai.gpt-oss-safeguard-120b", + name: "GPT OSS Safeguard 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-3-5-sonnet-20240620-v1:0": { + id: "anthropic.claude-3-5-sonnet-20240620-v1:0", + name: "Claude Sonnet 3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "mistral.voxtral-small-24b-2507": { + id: "mistral.voxtral-small-24b-2507", + name: "Voxtral Small 24B 2507", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 32000, output: 8192 }, + }, + "anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "meta.llama3-2-3b-instruct-v1:0": { + id: "meta.llama3-2-3b-instruct-v1:0", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 131000, output: 4096 }, + }, + "google.gemma-3-27b-it": { + id: "google.gemma-3-27b-it", + name: "Google Gemma 3 27B Instruct", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-27", + last_updated: "2025-07-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 202752, output: 8192 }, + }, + "us.anthropic.claude-opus-4-1-20250805-v1:0": { + id: "us.anthropic.claude-opus-4-1-20250805-v1:0", + name: "Claude Opus 4.1 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "global.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "global.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-3-5-haiku-20241022-v1:0": { + id: "anthropic.claude-3-5-haiku-20241022-v1:0", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "zai.glm-5": { + id: "zai.glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 101376 }, + }, + "eu.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "eu.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-opus-4-5-20251101-v1:0": { + id: "anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "nvidia.nemotron-super-3-120b": { + id: "nvidia.nemotron-super-3-120b", + name: "NVIDIA Nemotron 3 Super 120B A12B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.65 }, + limit: { context: 262144, output: 131072 }, + }, + "eu.anthropic.claude-opus-4-6-v1": { + id: "eu.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (EU)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "amazon.nova-premier-v1:0": { + id: "amazon.nova-premier-v1:0", + name: "Nova Premier", + family: "nova", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 12.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "amazon.nova-2-lite-v1:0": { + id: "amazon.nova-2-lite-v1:0", + name: "Nova 2 Lite", + family: "nova", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 2.75 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen.qwen3-32b-v1:0": { + id: "qwen.qwen3-32b-v1:0", + name: "Qwen3 32B (dense)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 16384, output: 16384 }, + }, + "mistral.magistral-small-2509": { + id: "mistral.magistral-small-2509", + name: "Magistral Small 1.2", + family: "magistral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 40000 }, + }, + "moonshotai.kimi-k2.5": { + id: "moonshotai.kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral.voxtral-mini-3b-2507": { + id: "mistral.voxtral-mini-3b-2507", + name: "Voxtral Mini 3B 2507", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["audio", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 4096 }, + }, + "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + "alibaba-coding-plan-cn": { + id: "alibaba-coding-plan-cn", + env: ["ALIBABA_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding.dashscope.aliyuncs.com/v1", + name: "Alibaba Coding Plan (China)", + doc: "https://help.aliyun.com/zh/model-studio/coding-plan", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 196608, output: 24576 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + }, + }, + "minimax-cn": { + id: "minimax-cn", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimaxi.com/anthropic/v1", + name: "MiniMax (minimaxi.com)", + doc: "https://platform.minimaxi.com/docs/guides/quickstart", + models: { + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + bailing: { + id: "bailing", + env: ["BAILING_API_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.tbox.cn/api/llm/v1/chat/completions", + name: "Bailing", + doc: "https://alipaytbox.yuque.com/sxs0ba/ling/intro", + models: { + "Ring-1T": { + id: "Ring-1T", + name: "Ring-1T", + family: "ring", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.29 }, + limit: { context: 128000, output: 32000 }, + }, + "Ling-1T": { + id: "Ling-1T", + name: "Ling-1T", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.29 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + "azure-cognitive-services": { + id: "azure-cognitive-services", + env: ["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME", "AZURE_COGNITIVE_SERVICES_API_KEY"], + npm: "@ai-sdk/azure", + name: "Azure Cognitive Services", + doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + models: { + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "phi-3-small-8k-instruct": { + id: "phi-3-small-8k-instruct", + name: "Phi-3-small-instruct (8k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "codestral-2501": { + id: "codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral-small-2503": { + id: "mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 32768 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-3.5-turbo-instruct": { + id: "gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-09-21", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 8192, output: 8192 }, + }, + "gpt-3.5-turbo-1106": { + id: "gpt-3.5-turbo-1106", + name: "GPT-3.5 Turbo 1106", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 16384, output: 16384 }, + }, + "phi-4-reasoning": { + id: "phi-4-reasoning", + name: "Phi-4-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "phi-3-mini-128k-instruct": { + id: "phi-3-mini-128k-instruct", + name: "Phi-3-mini-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "cohere-embed-v3-english": { + id: "cohere-embed-v3-english", + name: "Embed v3 English", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "phi-3-medium-4k-instruct": { + id: "phi-3-medium-4k-instruct", + name: "Phi-3-medium-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 4096, output: 1024 }, + }, + "cohere-embed-v3-multilingual": { + id: "cohere-embed-v3-multilingual", + name: "Embed v3 Multilingual", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "gpt-3.5-turbo-0125": { + id: "gpt-3.5-turbo-0125", + name: "GPT-3.5 Turbo 0125", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16384, output: 16384 }, + }, + "phi-4-mini-reasoning": { + id: "phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "meta-llama-3.1-8b-instruct": { + id: "meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 66, cache_read: 8.25 }, + limit: { context: 128000, output: 32768 }, + }, + "meta-llama-3.1-70b-instruct": { + id: "meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 128000, output: 32768 }, + }, + "phi-3-mini-4k-instruct": { + id: "phi-3-mini-4k-instruct", + name: "Phi-3-mini-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 4096, output: 1024 }, + }, + "codex-mini": { + id: "codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "phi-4-reasoning-plus": { + id: "phi-4-reasoning-plus", + name: "Phi-4-reasoning-plus", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "phi-4": { + id: "phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 4096 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-4-32k": { + id: "gpt-4-32k", + name: "GPT-4 32K", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 32768, output: 32768 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "cohere-embed-v-4-0": { + id: "cohere-embed-v-4-0", + name: "Embed v4", + family: "cohere-embed", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0 }, + limit: { context: 128000, output: 1536 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "model-router": { + id: "model-router", + name: "Model Router", + family: "model-router", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-05-19", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.14, output: 4.56 }, + limit: { context: 131072, output: 131072 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + shape: "completions", + }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "gpt-3.5-turbo-0613": { + id: "gpt-3.5-turbo-0613", + name: "GPT-3.5 Turbo 0613", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16384, output: 16384 }, + }, + "cohere-command-r-08-2024": { + id: "cohere-command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-v3.2-speciale": { + id: "deepseek-v3.2-speciale", + name: "DeepSeek-V3.2-Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "phi-4-mini": { + id: "phi-4-mini", + name: "Phi-4-mini", + family: "phi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "gpt-3.5-turbo-0301": { + id: "gpt-3.5-turbo-0301", + name: "GPT-3.5 Turbo 0301", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "meta-llama-3-70b-instruct": { + id: "meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 8192, output: 2048 }, + }, + "llama-3.2-11b-vision-instruct": { + id: "llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.37, output: 0.37 }, + limit: { context: 128000, output: 8192 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "meta-llama-3-8b-instruct": { + id: "meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5.1-chat": { + id: "gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "gpt-5-chat": { + id: "gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-10-24", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.2-chat": { + id: "gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "cohere-command-r-plus-08-2024": { + id: "cohere-command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "meta-llama-3.1-405b-instruct": { + id: "meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 5.33, output: 16 }, + limit: { context: 128000, output: 32768 }, + }, + "llama-4-scout-17b-16e-instruct": { + id: "llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.78 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 272000, output: 128000 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "cohere-command-a": { + id: "cohere-command-a", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "phi-3.5-mini-instruct": { + id: "phi-3.5-mini-instruct", + name: "Phi-3.5-mini-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 32768 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "llama-3.2-90b-vision-instruct": { + id: "llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.04, output: 2.04 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "ministral-3b": { + id: "ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-4-turbo-vision": { + id: "gpt-4-turbo-vision", + name: "GPT-4 Turbo Vision", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-3.5-moe-instruct": { + id: "phi-3.5-moe-instruct", + name: "Phi-3.5-MoE-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.64 }, + limit: { context: 128000, output: 4096 }, + }, + "mai-ds-r1": { + id: "mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 8192 }, + }, + "phi-4-multimodal": { + id: "phi-4-multimodal", + name: "Phi-4-multimodal", + family: "phi", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.32, input_audio: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-3-medium-128k-instruct": { + id: "phi-3-medium-128k-instruct", + name: "Phi-3-medium-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, output: 4096 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "phi-3-small-128k-instruct": { + id: "phi-3-small-128k-instruct", + name: "Phi-3-small-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + }, + }, + alibaba: { + id: "alibaba", + env: ["DASHSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", + name: "Alibaba", + doc: "https://www.alibabacloud.com/help/en/model-studio/models", + models: { + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen-VL Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-08-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.63 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen-VL Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next 80B-A3B (Thinking)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3-Coder 480B-A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.5, output: 7.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-14b": { + id: "qwen3-14b", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.4, reasoning: 4.2 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-vl-30b-a3b": { + id: "qwen3-vl-30b-a3b", + name: "Qwen3-VL 30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8, reasoning: 2.4 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-asr-flash": { + id: "qwen3-asr-flash", + name: "Qwen3-ASR Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.035 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11-01", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.2, reasoning: 0.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "qwen2-5-7b-instruct": { + id: "qwen2-5-7b-instruct", + name: "Qwen2.5 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.175, output: 0.7 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5-VL 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.8, output: 8.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-14b-instruct": { + id: "qwen2-5-14b-instruct", + name: "Qwen2.5 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-8b": { + id: "qwen3-8b", + name: "Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.7, reasoning: 2.1 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6, reasoning: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qvq-max": { + id: "qvq-max", + name: "QVQ Max", + family: "qvq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4.8 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-omni-7b": { + id: "qwen2-5-omni-7b", + name: "Qwen2.5-Omni 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4, input_audio: 6.76 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen2-5-vl-7b-instruct": { + id: "qwen2-5-vl-7b-instruct", + name: "Qwen2.5-VL 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.05 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-omni-turbo-realtime": { + id: "qwen-omni-turbo-realtime", + name: "Qwen-Omni Turbo Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.27, output: 1.07, input_audio: 4.44, output_audio: 8.89 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.25 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen-Omni Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-19", + last_updated: "2025-03-26", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.07, output: 0.27, input_audio: 4.44, output_audio: 8.89 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen-mt-plus": { + id: "qwen-mt-plus", + name: "Qwen-MT Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.46, output: 7.37 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.6, reasoning: 4.8 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-livetranslate-flash-realtime": { + id: "qwen3-livetranslate-flash-realtime", + name: "Qwen3-LiveTranslate Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 10, output: 10, input_audio: 10, output_audio: 38 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.2, reasoning: 4 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-32b-instruct": { + id: "qwen2-5-32b-instruct", + name: "Qwen2.5 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next 80B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-omni-flash": { + id: "qwen3-omni-flash", + name: "Qwen3-Omni Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.43, output: 1.66, input_audio: 3.81, output_audio: 15.11 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-72b-instruct": { + id: "qwen2-5-72b-instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 5.6 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-omni-flash-realtime": { + id: "qwen3-omni-flash-realtime", + name: "Qwen3-Omni Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.52, output: 1.99, input_audio: 4.57, output_audio: 18.13 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen-vl-ocr": { + id: "qwen-vl-ocr", + name: "Qwen-VL OCR", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-28", + last_updated: "2025-04-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 34096, output: 4096 }, + }, + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3-VL 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-plus-character-ja": { + id: "qwen-plus-character-ja", + name: "Qwen Plus Character (Japanese)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.4 }, + limit: { context: 8192, output: 512 }, + }, + "qwen-mt-turbo": { + id: "qwen-mt-turbo", + name: "Qwen-MT Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.49 }, + limit: { context: 16384, output: 8192 }, + }, + }, + }, + "cloudflare-workers-ai": { + id: "cloudflare-workers-ai", + env: ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", + name: "Cloudflare Workers AI", + doc: "https://developers.cloudflare.com/workers-ai/models/", + models: { + "@cf/zai-org/glm-4.7-flash": { + id: "@cf/zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "@cf/nvidia/nemotron-3-120b-a12b": { + id: "@cf/nvidia/nemotron-3-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "@cf/ibm-granite/granite-4.0-h-micro": { + id: "@cf/ibm-granite/granite-4.0-h-micro", + name: "IBM Granite 4.0 H Micro", + family: "granite", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/baai/bge-small-en-v1.5": { + id: "@cf/baai/bge-small-en-v1.5", + name: "BGE Small EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/baai/bge-large-en-v1.5": { + id: "@cf/baai/bge-large-en-v1.5", + name: "BGE Large EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/baai/bge-reranker-base": { + id: "@cf/baai/bge-reranker-base", + name: "BGE Reranker Base", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0031, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/baai/bge-m3": { + id: "@cf/baai/bge-m3", + name: "BGE M3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/baai/bge-base-en-v1.5": { + id: "@cf/baai/bge-base-en-v1.5", + name: "BGE Base EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.067, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/pfnet/plamo-embedding-1b": { + id: "@cf/pfnet/plamo-embedding-1b", + name: "PLaMo Embedding 1B", + family: "plamo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.019, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { + id: "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 4.88 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/facebook/bart-large-cnn": { + id: "@cf/facebook/bart-large-cnn", + name: "BART Large CNN", + family: "bart", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/mistral/mistral-7b-instruct-v0.1": { + id: "@cf/mistral/mistral-7b-instruct-v0.1", + name: "Mistral 7B Instruct v0.1", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/myshell-ai/melotts": { + id: "@cf/myshell-ai/melotts", + name: "MyShell MeloTTS", + family: "melotts", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/pipecat-ai/smart-turn-v2": { + id: "@cf/pipecat-ai/smart-turn-v2", + name: "Pipecat Smart Turn v2", + family: "smart-turn", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/moonshotai/kimi-k2.5": { + id: "@cf/moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "@cf/google/gemma-3-12b-it": { + id: "@cf/google/gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/qwen/qwq-32b": { + id: "@cf/qwen/qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/qwen/qwen3-30b-a3b-fp8": { + id: "@cf/qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/qwen/qwen2.5-coder-32b-instruct": { + id: "@cf/qwen/qwen2.5-coder-32b-instruct", + name: "Qwen 2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/qwen/qwen3-embedding-0.6b": { + id: "@cf/qwen/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.1-8b-instruct-fp8": { + id: "@cf/meta/llama-3.1-8b-instruct-fp8", + name: "Llama 3.1 8B Instruct FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.29 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3-8b-instruct-awq": { + id: "@cf/meta/llama-3-8b-instruct-awq", + name: "Llama 3 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.1-8b-instruct-awq": { + id: "@cf/meta/llama-3.1-8b-instruct-awq", + name: "Llama 3.1 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-4-scout-17b-16e-instruct": { + id: "@cf/meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.2-11b-vision-instruct": { + id: "@cf/meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049, output: 0.68 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.2-3b-instruct": { + id: "@cf/meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-guard-3-8b": { + id: "@cf/meta/llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 0.03 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.2-1b-instruct": { + id: "@cf/meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.3-70b-instruct-fp8-fast": { + id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast", + name: "Llama 3.3 70B Instruct FP8 Fast", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 2.25 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3.1-8b-instruct": { + id: "@cf/meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.8299999999999998 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/m2m100-1.2b": { + id: "@cf/meta/m2m100-1.2b", + name: "M2M100 1.2B", + family: "m2m", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-2-7b-chat-fp16": { + id: "@cf/meta/llama-2-7b-chat-fp16", + name: "Llama 2 7B Chat FP16", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 6.67 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-3-8b-instruct": { + id: "@cf/meta/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.83 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/mistralai/mistral-small-3.1-24b-instruct": { + id: "@cf/mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/deepgram/aura-2-es": { + id: "@cf/deepgram/aura-2-es", + name: "Deepgram Aura 2 (ES)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/deepgram/nova-3": { + id: "@cf/deepgram/nova-3", + name: "Deepgram Nova 3", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/deepgram/aura-2-en": { + id: "@cf/deepgram/aura-2-en", + name: "Deepgram Aura 2 (EN)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/openai/gpt-oss-120b": { + id: "@cf/openai/gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/openai/gpt-oss-20b": { + id: "@cf/openai/gpt-oss-20b", + name: "GPT OSS 20B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/ai4bharat/indictrans2-en-indic-1B": { + id: "@cf/ai4bharat/indictrans2-en-indic-1B", + name: "IndicTrans2 EN-Indic 1B", + family: "indictrans", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/huggingface/distilbert-sst-2-int8": { + id: "@cf/huggingface/distilbert-sst-2-int8", + name: "DistilBERT SST-2 INT8", + family: "distilbert", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.026, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/aisingapore/gemma-sea-lion-v4-27b-it": { + id: "@cf/aisingapore/gemma-sea-lion-v4-27b-it", + name: "Gemma SEA-LION v4 27B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + groq: { + id: "groq", + env: ["GROQ_API_KEY"], + npm: "@ai-sdk/groq", + name: "Groq", + doc: "https://console.groq.com/docs/models", + models: { + "llama3-70b-8192": { + id: "llama3-70b-8192", + name: "Llama 3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "qwen-qwq-32b": { + id: "qwen-qwq-32b", + name: "Qwen QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-27", + last_updated: "2024-11-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.39 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "llama-3.1-8b-instant": { + id: "llama-3.1-8b-instant", + name: "Llama 3.1 8B Instant", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 131072, output: 131072 }, + }, + "llama-guard-3-8b": { + id: "llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 0.99 }, + limit: { context: 131072, output: 8192 }, + status: "deprecated", + }, + "llama3-8b-8192": { + id: "llama3-8b-8192", + name: "Llama 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "mistral-saba-24b": { + id: "mistral-saba-24b", + name: "Mistral Saba 24B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-02-06", + last_updated: "2025-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.79, output: 0.79 }, + limit: { context: 32768, output: 32768 }, + status: "deprecated", + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 131072, output: 32768 }, + }, + "gemma2-9b-it": { + id: "gemma2-9b-it", + name: "Gemma 2 9B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "moonshotai/kimi-k2-instruct-0905": { + id: "moonshotai/kimi-k2-instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwen3-32b": { + id: "qwen/qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11-08", + release_date: "2024-12-23", + last_updated: "2024-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.59 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + id: "meta-llama/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.34 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-guard-4-12b": { + id: "meta-llama/llama-guard-4-12b", + name: "Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 131072, output: 1024 }, + }, + "meta-llama/llama-4-maverick-17b-128e-instruct": { + id: "meta-llama/llama-4-maverick-17b-128e-instruct", + name: "Llama 4 Maverick 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 131072, output: 65536 }, + }, + }, + }, + wandb: { + id: "wandb", + env: ["WANDB_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.inference.wandb.ai/v1", + name: "Weights & Biases", + doc: "https://docs.wandb.ai/guides/integrations/inference/", + models: { + "zai-org/GLM-5-FP8": { + id: "zai-org/GLM-5-FP8", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 200000, output: 200000 }, + }, + "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": { + id: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8", + name: "NVIDIA Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "microsoft/Phi-4-mini-instruct": { + id: "microsoft/Phi-4-mini-instruct", + name: "Phi-4-mini-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.35 }, + limit: { context: 128000, output: 128000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.65 }, + limit: { context: 161000, output: 161000 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.85 }, + limit: { context: 262144, output: 262144 }, + }, + "meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 64000, output: 64000 }, + }, + "meta-llama/Llama-3.1-70B-Instruct": { + id: "meta-llama/Llama-3.1-70B-Instruct", + name: "Llama 3.1 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 128000, output: 128000 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 128000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 128000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 131072 }, + }, + "OpenPipe/Qwen3-14B-Instruct": { + id: "OpenPipe/Qwen3-14B-Instruct", + name: "OpenPipe Qwen3 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 32768, output: 32768 }, + }, + }, + }, + aihubmix: { + id: "aihubmix", + env: ["AIHUBMIX_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://aihubmix.com/v1", + name: "AIHubMix", + doc: "https://docs.aihubmix.com", + models: { + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.12 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5-Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 7, output: 28, cache_read: 3.5 }, + limit: { context: 400000, output: 128000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.88, output: 2.82 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 82.5, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.82, output: 3.29 }, + limit: { context: 262144, output: 131000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 128000 }, + }, + "coding-glm-4.7-free": { + id: "coding-glm-4.7-free", + name: "Coding GLM 4.7 Free", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "coding-minimax-m2.1-free": { + id: "coding-minimax-m2.1-free", + name: "Coding MiniMax M2.1 Free", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.02 }, + limit: { context: 1000000, output: 65000 }, + }, + "claude-opus-4-6-think": { + id: "claude-opus-4-6-think", + name: "Claude Opus 4.6 Think", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.55 }, + limit: { context: 262144, input: 262144, output: 65536 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.15 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "gemini-3-pro-preview-search": { + id: "gemini-3-pro-preview-search", + name: "Gemini 3 Pro Preview Search", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.5 }, + limit: { context: 1000000, output: 65000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-v3.2-think": { + id: "deepseek-v3.2-think", + name: "DeepSeek-V3.2-Think", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 131000, output: 64000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-07", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "Kimi-K2-0905": { + id: "Kimi-K2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 131000, output: 64000 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 1.37 }, + limit: { context: 262144, output: 65536 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 20, cache_read: 2.5 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-09", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.75 }, + limit: { context: 200000, output: 65536 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 5.5, cache_read: 0.11, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.15 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 32000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.5 }, + limit: { context: 1000000, output: 65000 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen 3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.66 }, + limit: { context: 1000000, output: 65536 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.3, output: 16.5, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.75 }, + limit: { context: 200000, output: 64000 }, + }, + "deepseek-v3.2-fast": { + id: "deepseek-v3.2-fast", + name: "DeepSeek-V3.2-Fast", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.1, output: 3.29 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.41 }, + limit: { context: 128000, output: 32768 }, + }, + "coding-glm-4.7": { + id: "coding-glm-4.7", + name: "Coding-GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, + limit: { context: 204800, output: 131072 }, + }, + "coding-glm-5-free": { + id: "coding-glm-5-free", + name: "Coding-GLM-5-Free", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 5, cache_read: 0.31 }, + limit: { context: 2000000, output: 65000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5-Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2, cache_read: 0.25 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-sonnet-4-6-think": { + id: "claude-sonnet-4-6-think", + name: "Claude Sonnet 4.6 Think", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + "minimax-coding-plan": { + id: "minimax-coding-plan", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimax.io/anthropic/v1", + name: "MiniMax Coding Plan (minimax.io)", + doc: "https://platform.minimax.io/docs/coding-plan/intro", + models: { + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "kimi-for-coding": { + id: "kimi-for-coding", + env: ["KIMI_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.kimi.com/coding/v1", + name: "Kimi For Coding", + doc: "https://www.kimi.com/coding/docs/en/third-party-agents.html", + models: { + k2p5: { + id: "k2p5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + }, + }, + mistral: { + id: "mistral", + env: ["MISTRAL_API_KEY"], + npm: "@ai-sdk/mistral", + name: "Mistral", + doc: "https://docs.mistral.ai/getting-started/models/", + models: { + "devstral-medium-2507": { + id: "devstral-medium-2507", + name: "Devstral Medium", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "labs-devstral-small-2512": { + id: "labs-devstral-small-2512", + name: "Devstral Small 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "devstral-medium-latest": { + id: "devstral-medium-latest", + name: "Devstral 2 (latest)", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "open-mistral-7b": { + id: "open-mistral-7b", + name: "Mistral 7B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2023-09-27", + last_updated: "2023-09-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 8000, output: 8000 }, + }, + "mistral-small-2506": { + id: "mistral-small-2506", + name: "Mistral Small 3.2", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "codestral-latest": { + id: "codestral-latest", + name: "Codestral (latest)", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-05-29", + last_updated: "2025-01-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 4096 }, + }, + "ministral-8b-latest": { + id: "ministral-8b-latest", + name: "Ministral 8B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 128000 }, + }, + "magistral-small": { + id: "magistral-small", + name: "Magistral Small", + family: "magistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "Mistral Large 3", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "ministral-3b-latest": { + id: "ministral-3b-latest", + name: "Ministral 3B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-embed": { + id: "mistral-embed", + name: "Mistral Embed", + family: "mistral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8000, output: 3072 }, + }, + "devstral-small-2505": { + id: "devstral-small-2505", + name: "Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 128000 }, + }, + "pixtral-12b": { + id: "pixtral-12b", + name: "Pixtral 12B", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "open-mixtral-8x7b": { + id: "open-mixtral-8x7b", + name: "Mixtral 8x7B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32000, output: 32000 }, + }, + "pixtral-large-latest": { + id: "pixtral-large-latest", + name: "Pixtral Large (latest)", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-large-latest": { + id: "mistral-large-latest", + name: "Mistral Large (latest)", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-medium-2508": { + id: "mistral-medium-2508", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 2.1", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 16384 }, + }, + "mistral-small-latest": { + id: "mistral-small-latest", + name: "Mistral Small (latest)", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2024-09-01", + last_updated: "2024-09-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "open-mixtral-8x22b": { + id: "open-mixtral-8x22b", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 64000, output: 64000 }, + }, + "mistral-medium-latest": { + id: "mistral-medium-latest", + name: "Mistral Medium (latest)", + family: "mistral-medium", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 16384 }, + }, + "devstral-small-2507": { + id: "devstral-small-2507", + name: "Devstral Small", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 128000 }, + }, + "magistral-medium-latest": { + id: "magistral-medium-latest", + name: "Magistral Medium (latest)", + family: "magistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 5 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + abacus: { + id: "abacus", + env: ["ABACUS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://routellm.abacus.ai/v1", + name: "Abacus", + doc: "https://abacus.ai/help/api", + models: { + "gpt-4o-2024-11-20": { + id: "gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 16384 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.3-codex-xhigh": { + id: "gpt-5.3-codex-xhigh", + name: "GPT-5.3 Codex XHigh", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 16384 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 200000, output: 100000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 Nano", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1047576, output: 32768 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 32768 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1047576, output: 32768 }, + }, + "o3-pro": { + id: "o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 40 }, + limit: { context: 200000, output: 100000 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1047576, output: 32768 }, + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo Preview", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-08", + last_updated: "2025-07-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 8 }, + limit: { context: 256000, output: 8192 }, + }, + "qwen-2.5-coder-32b": { + id: "qwen-2.5-coder-32b", + name: "Qwen 2.5 Coder 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.79, output: 0.79 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "route-llm": { + id: "route-llm", + name: "Route LLM", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 131072, output: 16384 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 16384 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "GPT-5.1 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-4.6": { + id: "zai-org/glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 7 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.66 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": { + id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", + name: "Llama 3.1 405B Instruct Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.5, output: 3.5 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.59 }, + limit: { context: 1000000, output: 32768 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2024-11-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/qwen3-coder-480b-a35b-instruct": { + id: "Qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.2 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29 }, + limit: { context: 128000, output: 8192 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen 2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.38 }, + limit: { context: 128000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262144, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.44 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + "fireworks-ai": { + id: "fireworks-ai", + env: ["FIREWORKS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.fireworks.ai/inference/v1/", + name: "Fireworks AI", + doc: "https://fireworks.ai/docs/", + models: { + "accounts/fireworks/routers/kimi-k2p5-turbo": { + id: "accounts/fireworks/routers/kimi-k2p5-turbo", + name: "Kimi K2.5 Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/models/kimi-k2-instruct": { + id: "accounts/fireworks/models/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 128000, output: 16384 }, + }, + "accounts/fireworks/models/glm-4p7": { + id: "accounts/fireworks/models/glm-4p7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.3 }, + limit: { context: 198000, output: 198000 }, + }, + "accounts/fireworks/models/glm-5": { + id: "accounts/fireworks/models/glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.5 }, + limit: { context: 202752, output: 131072 }, + }, + "accounts/fireworks/models/deepseek-v3p1": { + id: "accounts/fireworks/models/deepseek-v3p1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 163840, output: 163840 }, + }, + "accounts/fireworks/models/minimax-m2p1": { + id: "accounts/fireworks/models/minimax-m2p1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 200000, output: 200000 }, + }, + "accounts/fireworks/models/glm-4p5-air": { + id: "accounts/fireworks/models/glm-4p5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 131072, output: 131072 }, + }, + "accounts/fireworks/models/deepseek-v3p2": { + id: "accounts/fireworks/models/deepseek-v3p2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.28 }, + limit: { context: 160000, output: 160000 }, + }, + "accounts/fireworks/models/minimax-m2p5": { + id: "accounts/fireworks/models/minimax-m2p5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 196608, output: 196608 }, + }, + "accounts/fireworks/models/gpt-oss-120b": { + id: "accounts/fireworks/models/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "accounts/fireworks/models/kimi-k2p5": { + id: "accounts/fireworks/models/kimi-k2p5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/models/kimi-k2-thinking": { + id: "accounts/fireworks/models/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.3 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/models/glm-4p5": { + id: "accounts/fireworks/models/glm-4p5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 131072, output: 131072 }, + }, + "accounts/fireworks/models/gpt-oss-20b": { + id: "accounts/fireworks/models/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + stepfun: { + id: "stepfun", + env: ["STEPFUN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.stepfun.com/v1", + name: "StepFun", + doc: "https://platform.stepfun.com/docs/zh/overview/concept", + models: { + "step-3.5-flash": { + id: "step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.096, output: 0.288, cache_read: 0.019 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "step-2-16k": { + id: "step-2-16k", + name: "Step 2 (16K)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-01", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5.21, output: 16.44, cache_read: 1.04 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "step-1-32k": { + id: "step-1-32k", + name: "Step 1 (32K)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-01", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.05, output: 9.59, cache_read: 0.41 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + }, + }, + gitlab: { + id: "gitlab", + env: ["GITLAB_TOKEN"], + npm: "gitlab-ai-provider", + name: "GitLab Duo", + doc: "https://docs.gitlab.com/user/duo_agent_platform/", + models: { + "duo-chat-gpt-5-2-codex": { + id: "duo-chat-gpt-5-2-codex", + name: "Agentic Chat (GPT-5.2 Codex)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-opus-4-6": { + id: "duo-chat-opus-4-6", + name: "Agentic Chat (Claude Opus 4.6)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "duo-chat-gpt-5-mini": { + id: "duo-chat-gpt-5-mini", + name: "Agentic Chat (GPT-5 Mini)", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-3-codex": { + id: "duo-chat-gpt-5-3-codex", + name: "Agentic Chat (GPT-5.3 Codex)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-sonnet-4-5": { + id: "duo-chat-sonnet-4-5", + name: "Agentic Chat (Claude Sonnet 4.5)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-haiku-4-5": { + id: "duo-chat-haiku-4-5", + name: "Agentic Chat (Claude Haiku 4.5)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-gpt-5-codex": { + id: "duo-chat-gpt-5-codex", + name: "Agentic Chat (GPT-5 Codex)", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-4-nano": { + id: "duo-chat-gpt-5-4-nano", + name: "Agentic Chat (GPT-5.4 Nano)", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-2": { + id: "duo-chat-gpt-5-2", + name: "Agentic Chat (GPT-5.2)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-4-mini": { + id: "duo-chat-gpt-5-4-mini", + name: "Agentic Chat (GPT-5.4 Mini)", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-sonnet-4-6": { + id: "duo-chat-sonnet-4-6", + name: "Agentic Chat (Claude Sonnet 4.6)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "duo-chat-gpt-5-4": { + id: "duo-chat-gpt-5-4", + name: "Agentic Chat (GPT-5.4)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "duo-chat-opus-4-5": { + id: "duo-chat-opus-4-5", + name: "Agentic Chat (Claude Opus 4.5)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-gpt-5-1": { + id: "duo-chat-gpt-5-1", + name: "Agentic Chat (GPT-5.1)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + }, + }, + siliconflow: { + id: "siliconflow", + env: ["SILICONFLOW_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.siliconflow.com/v1", + name: "SiliconFlow", + doc: "https://cloud.siliconflow.com/models", + models: { + "nex-agi/DeepSeek-V3.1-Nex-N1": { + id: "nex-agi/DeepSeek-V3.1-Nex-N1", + name: "nex-agi/DeepSeek-V3.1-Nex-N1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "zai-org/GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "zai-org/GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.9 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "zai-org/GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.5V": { + id: "zai-org/GLM-4.5V", + name: "zai-org/GLM-4.5V", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 66000, output: 66000 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "zai-org/GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-07", + last_updated: "2025-12-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "zai-org/GLM-4.5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "zai-org/GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 205000, output: 205000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMaxAI/MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMaxAI/MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3.2-Exp": { + id: "deepseek-ai/DeepSeek-V3.2-Exp", + name: "deepseek-ai/DeepSeek-V3.2-Exp", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/deepseek-vl2": { + id: "deepseek-ai/deepseek-vl2", + name: "deepseek-ai/deepseek-vl2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 4000, output: 4000 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "deepseek-ai/DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "ByteDance-Seed/Seed-OSS-36B-Instruct": { + id: "ByteDance-Seed/Seed-OSS-36B-Instruct", + name: "ByteDance-Seed/Seed-OSS-36B-Instruct", + family: "seed", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "tencent/Hunyuan-A13B-Instruct": { + id: "tencent/Hunyuan-A13B-Instruct", + name: "tencent/Hunyuan-A13B-Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "tencent/Hunyuan-MT-7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 33000, output: 33000 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "moonshotai/Kimi-K2-Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 2.29 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "moonshotai/Kimi-K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 3 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "inclusionAI/Ling-flash-2.0": { + id: "inclusionAI/Ling-flash-2.0", + name: "inclusionAI/Ling-flash-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ring-flash-2.0": { + id: "inclusionAI/Ring-flash-2.0", + name: "inclusionAI/Ring-flash-2.0", + family: "ring", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-mini-2.0": { + id: "inclusionAI/Ling-mini-2.0", + name: "inclusionAI/Ling-mini-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "baidu/ERNIE-4.5-300B-A47B": { + id: "baidu/ERNIE-4.5-300B-A47B", + name: "baidu/ERNIE-4.5-300B-A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131000, output: 131000 }, + }, + "stepfun-ai/Step-3.5-Flash": { + id: "stepfun-ai/Step-3.5-Flash", + name: "stepfun-ai/Step-3.5-Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "meta-llama/Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Thinking": { + id: "Qwen/Qwen3-VL-30B-A3B-Thinking", + name: "Qwen/Qwen3-VL-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen/Qwen3-30B-A3B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Instruct": { + id: "Qwen/Qwen3-VL-32B-Instruct", + name: "Qwen/Qwen3-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "Qwen/QwQ-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.58 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen/Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + id: "Qwen/Qwen3-VL-235B-A22B-Thinking", + name: "Qwen/Qwen3-VL-235B-A22B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen/Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen2.5-VL-7B-Instruct": { + id: "Qwen/Qwen2.5-VL-7B-Instruct", + name: "Qwen/Qwen2.5-VL-7B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen/Qwen3-30B-A3B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 131000 }, + }, + "Qwen/Qwen2.5-32B-Instruct": { + id: "Qwen/Qwen2.5-32B-Instruct", + name: "Qwen/Qwen2.5-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen/Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-8B": { + id: "Qwen/Qwen3-8B", + name: "Qwen/Qwen3-8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Thinking": { + id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen2.5-7B-Instruct": { + id: "Qwen/Qwen2.5-7B-Instruct", + name: "Qwen/Qwen2.5-7B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-14B-Instruct": { + id: "Qwen/Qwen2.5-14B-Instruct", + name: "Qwen/Qwen2.5-14B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen/Qwen2.5-VL-72B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen/Qwen2.5-72B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-72B-Instruct-128K": { + id: "Qwen/Qwen2.5-72B-Instruct-128K", + name: "Qwen/Qwen2.5-72B-Instruct-128K", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen3-235B-A22B": { + id: "Qwen/Qwen3-235B-A22B", + name: "Qwen/Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.42 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-VL-8B-Instruct": { + id: "Qwen/Qwen3-VL-8B-Instruct", + name: "Qwen/Qwen3-VL-8B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.68 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen/Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Captioner": { + id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen/Qwen3-VL-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Thinking": { + id: "Qwen/Qwen3-VL-8B-Thinking", + name: "Qwen/Qwen3-VL-8B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Thinking": { + id: "Qwen/Qwen3-VL-32B-Thinking", + name: "Qwen/Qwen3-VL-32B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen/Qwen3-235B-A22B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen/Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen/Qwen2.5-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 131000, output: 131000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "openai/gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.45 }, + limit: { context: 131000, output: 8000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "openai/gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.18 }, + limit: { context: 131000, output: 8000 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "THUDM/GLM-4-32B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "THUDM/GLM-4-9B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "THUDM/GLM-Z1-32B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "THUDM/GLM-Z1-9B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 131000, output: 131000 }, + }, + }, + }, + togetherai: { + id: "togetherai", + env: ["TOGETHER_API_KEY"], + npm: "@ai-sdk/togetherai", + name: "Together AI", + doc: "https://docs.together.ai/docs/serverless-models", + models: { + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 200000 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2 }, + limit: { context: 200000, output: 200000 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 131072 }, + }, + "essentialai/Rnj-1-Instruct": { + id: "essentialai/Rnj-1-Instruct", + name: "Rnj-1 Instruct", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-05", + last_updated: "2025-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 32768 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3-1": { + id: "deepseek-ai/DeepSeek-V3-1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.7 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 7 }, + limit: { context: 163839, output: 163839 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.88, output: 0.88 }, + limit: { context: 131072, output: 131072 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", + name: "Qwen3 235B A22B Instruct 2507 FP8", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 130000 }, + }, + "Qwen/Qwen3-Coder-Next-FP8": { + id: "Qwen/Qwen3-Coder-Next-FP8", + name: "Qwen3 Coder Next FP8", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-03", + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + }, + }, + clarifai: { + id: "clarifai", + env: ["CLARIFAI_PAT"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.clarifai.com/v2/ext/openai/v1", + name: "Clarifai", + doc: "https://docs.clarifai.com/compute/inference/", + models: { + "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput": { + id: "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput", + name: "MiniMax-M2.5 High Throughput", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "arcee_ai/AFM/models/trinity-mini": { + id: "arcee_ai/AFM/models/trinity-mini", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR": { + id: "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR", + name: "DeepSeek OCR", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-02-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 8192, output: 8192 }, + }, + "clarifai/main/models/mm-poly-8b": { + id: "clarifai/main/models/mm-poly-8b", + name: "MM Poly 8B", + family: "mm-poly", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-06", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.658, output: 1.11 }, + limit: { context: 32768, output: 4096 }, + }, + "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct": { + id: "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11458, output: 0.74812 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507": { + id: "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507": { + id: "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.36, output: 1.3 }, + limit: { context: 262144, output: 131072 }, + }, + "mistralai/completion/models/Ministral-3-14B-Reasoning-2512": { + id: "mistralai/completion/models/Ministral-3-14B-Reasoning-2512", + name: "Ministral 3 14B Reasoning 2512", + family: "ministral", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-01", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 1.7 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/completion/models/Ministral-3-3B-Reasoning-2512": { + id: "mistralai/completion/models/Ministral-3-3B-Reasoning-2512", + name: "Ministral 3 3B Reasoning 2512", + family: "ministral", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12", + last_updated: "2026-02-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.039, output: 0.54825 }, + limit: { context: 262144, output: 262144 }, + }, + "openai/chat-completion/models/gpt-oss-120b-high-throughput": { + id: "openai/chat-completion/models/gpt-oss-120b-high-throughput", + name: "GPT OSS 120B High Throughput", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 131072, output: 16384 }, + }, + "openai/chat-completion/models/gpt-oss-20b": { + id: "openai/chat-completion/models/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.18 }, + limit: { context: 131072, output: 16384 }, + }, + }, + }, + berget: { + id: "berget", + env: ["BERGET_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.berget.ai/v1", + name: "Berget.AI", + doc: "https://api.berget.ai", + models: { + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.3 }, + limit: { context: 128000, output: 8192 }, + }, + "BAAI/bge-reranker-v2-m3": { + id: "BAAI/bge-reranker-v2-m3", + name: "bge-reranker-v2-m3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-23", + last_updated: "2025-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 512, output: 512 }, + }, + "intfloat/multilingual-e5-large-instruct": { + id: "intfloat/multilingual-e5-large-instruct", + name: "Multilingual-E5-large-instruct", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "intfloat/multilingual-e5-large": { + id: "intfloat/multilingual-e5-large", + name: "Multilingual-E5-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-09", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "KBLab/kb-whisper-large": { + id: "KBLab/kb-whisper-large", + name: "KB-Whisper-Large", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 480000, output: 4800 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 8192 }, + }, + "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct 2506", + family: "mistral-small", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32000, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS-120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 8192 }, + }, + }, + }, + lucidquery: { + id: "lucidquery", + env: ["LUCIDQUERY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://lucidquery.com/api/v1", + name: "LucidQuery AI", + doc: "https://lucidquery.com/api/docs", + models: { + "lucidquery-nexus-coder": { + id: "lucidquery-nexus-coder", + name: "LucidQuery Nexus Coder", + family: "lucid", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-01", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 5 }, + limit: { context: 250000, output: 60000 }, + }, + "lucidnova-rf1-100b": { + id: "lucidnova-rf1-100b", + name: "LucidNova RF1 100B", + family: "nova", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-09-16", + release_date: "2024-12-28", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 5 }, + limit: { context: 120000, output: 8000 }, + }, + }, + }, + "zhipuai-coding-plan": { + id: "zhipuai-coding-plan", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://open.bigmodel.cn/api/coding/paas/v4", + name: "Zhipu AI Coding Plan", + doc: "https://docs.bigmodel.cn/cn/coding-plan/overview", + models: { + "glm-4.6v-flash": { + id: "glm-4.6v-flash", + name: "GLM-4.6V-Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + deepseek: { + id: "deepseek", + env: ["DEEPSEEK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.deepseek.com", + name: "DeepSeek", + doc: "https://api-docs.deepseek.com/quick_start/pricing", + models: { + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + family: "deepseek-thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek-chat": { + id: "deepseek-chat", + name: "DeepSeek Chat", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, + limit: { context: 128000, output: 8192 }, + }, + }, + }, + lmstudio: { + id: "lmstudio", + env: ["LMSTUDIO_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "http://127.0.0.1:1234/v1", + name: "LMStudio", + doc: "https://lmstudio.ai/models", + models: { + "qwen/qwen3-30b-a3b-2507": { + id: "qwen/qwen3-30b-a3b-2507", + name: "Qwen3 30B A3B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwen3-coder-30b": { + id: "qwen/qwen3-coder-30b", + name: "Qwen3 Coder 30B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + openrouter: { + id: "openrouter", + env: ["OPENROUTER_API_KEY"], + npm: "@openrouter/ai-sdk-provider", + api: "https://openrouter.ai/api/v1", + name: "OpenRouter", + doc: "https://openrouter.ai/models", + models: { + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "Intellect 3", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-9b-v2:free": { + id: "nvidia/nemotron-nano-9b-v2:free", + name: "Nemotron Nano 9B V2 (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-09-05", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "nvidia/nemotron-nano-12b-v2-vl:free": { + id: "nvidia/nemotron-nano-12b-v2-vl:free", + name: "Nemotron Nano 12B 2 VL (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-10-28", + last_updated: "2026-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "nvidia/nemotron-3-nano-30b-a3b:free": { + id: "nvidia/nemotron-3-nano-30b-a3b:free", + name: "Nemotron 3 Nano 30B A3B (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-12-14", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "nvidia-nemotron-nano-9b-v2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-3-super-120b-a12b-free": { + id: "nvidia/nemotron-3-super-120b-a12b-free", + name: "Nemotron 3 Super (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "arcee-ai/trinity-large-preview:free": { + id: "arcee-ai/trinity-large-preview:free", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/trinity-mini:free": { + id: "arcee-ai/trinity-mini:free", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "xiaomi/mimo-v2-omni": { + id: "xiaomi/mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 65536 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-14", + last_updated: "2025-12-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 262144, output: 65536 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "liquid/lfm-2.5-1.2b-thinking:free": { + id: "liquid/lfm-2.5-1.2b-thinking:free", + name: "LFM2.5-1.2B-Thinking (free)", + family: "liquid", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-20", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "liquid/lfm-2.5-1.2b-instruct:free": { + id: "liquid/lfm-2.5-1.2b-instruct:free", + name: "LFM2.5-1.2B-Instruct (free)", + family: "liquid", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-20", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-04", + last_updated: "2026-03-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + "inception/mercury": { + id: "inception/mercury", + name: "Mercury", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 32000 }, + }, + "inception/mercury-coder": { + id: "inception/mercury-coder", + name: "Mercury Coder", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 32000 }, + }, + "sourceful/riverflow-v2-fast-preview": { + id: "sourceful/riverflow-v2-fast-preview", + name: "Riverflow V2 Fast Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "sourceful/riverflow-v2-max-preview": { + id: "sourceful/riverflow-v2-max-preview", + name: "Riverflow V2 Max Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "sourceful/riverflow-v2-standard-preview": { + id: "sourceful/riverflow-v2-standard-preview", + name: "Riverflow V2 Standard Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "stepfun/step-3.5-flash:free": { + id: "stepfun/step-3.5-flash:free", + name: "Step 3.5 Flash (free)", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Step 3.5 Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 256000 }, + }, + "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { + id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", + name: "Uncensored (free)", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-07-09", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "deepseek/deepseek-v3.1-terminus:exacto": { + id: "deepseek/deepseek-v3.1-terminus:exacto", + name: "DeepSeek V3.1 Terminus (exacto)", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek V3.2 Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-chat-v3.1": { + id: "deepseek/deepseek-chat-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-chat-v3-0324": { + id: "deepseek/deepseek-chat-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 8192 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-23", + last_updated: "2025-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.4 }, + limit: { context: 163840, output: 65536 }, + }, + "openrouter/free": { + id: "openrouter/free", + name: "Free Models Router", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-01", + last_updated: "2026-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, input: 200000, output: 8000 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/kimi-k2-0905:exacto": { + id: "moonshotai/kimi-k2-0905:exacto", + name: "Kimi K2 Instruct 0905 (exacto)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2:free": { + id: "moonshotai/kimi-k2:free", + name: "Kimi K2 (free)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32800, output: 32800 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview-customtools": { + id: "google/gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro-preview-06-05": { + id: "google/gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3n-e4b-it:free": { + id: "google/gemma-3n-e4b-it:free", + name: "Gemma 3n 4B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "google/gemini-2.5-flash-preview-09-2025": { + id: "google/gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.031 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro-preview-05-06": { + id: "google/gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3n-e2b-it:free": { + id: "google/gemma-3n-e2b-it:free", + name: "Gemma 3n 2B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-17", + last_updated: "2025-07-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-001": { + id: "google/gemini-2.0-flash-001", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.25, + output: 1.5, + reasoning: 1.5, + cache_read: 0.025, + cache_write: 0.083, + input_audio: 0.5, + output_audio: 0.5, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-12b-it:free": { + id: "google/gemma-3-12b-it:free", + name: "Gemma 3 12B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-9b-it": { + id: "google/gemma-2-9b-it", + name: "Gemma 2 9B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-28", + last_updated: "2024-06-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 8192, output: 8192 }, + }, + "google/gemma-3-4b-it:free": { + id: "google/gemma-3-4b-it:free", + name: "Gemma 3 4B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Gemma 3n 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1050000, output: 66000 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Gemma 3 12B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemma-3-4b-it": { + id: "google/gemma-3-4b-it", + name: "Gemma 3 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01703, output: 0.06815 }, + limit: { context: 96000, output: 96000 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 96000, output: 96000 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-27b-it:free": { + id: "google/gemma-3-27b-it:free", + name: "Gemma 3 27B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131000 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-4.6:exacto": { + id: "z-ai/glm-4.6:exacto", + name: "GLM 4.6 (exacto)", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.9, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7-flash": { + id: "z-ai/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 65535 }, + }, + "z-ai/glm-4.5-air:free": { + id: "z-ai/glm-4.5-air:free", + name: "GLM 4.5 Air (free)", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "GLM 4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-coder:free": { + id: "qwen/qwen3-coder:free", + name: "Qwen3 Coder 480B A35B Instruct (free)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwen3-coder-flash": { + id: "qwen/qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 128000, output: 66536 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-coder:exacto": { + id: "qwen/qwen3-coder:exacto", + name: "Qwen3 Coder (exacto)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 1.53 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-2.5-coder-32b-instruct": { + id: "qwen/qwen-2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3.5-plus-02-15": { + id: "qwen/qwen3.5-plus-02-15", + name: "Qwen3.5 Plus 2026-02-15", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + id: "qwen/qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-07-25": { + id: "qwen/qwen3-235b-a22b-07-25", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.85 }, + limit: { context: 262144, output: 131072 }, + }, + "qwen/qwen3-next-80b-a3b-instruct:free": { + id: "qwen/qwen3-next-80b-a3b-instruct:free", + name: "Qwen3 Next 80B A3B Instruct (free)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-4b:free": { + id: "qwen/qwen3-4b:free", + name: "Qwen3 4B (free)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-30", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + id: "qwen/qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.078, output: 0.312 }, + limit: { context: 262144, output: 81920 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 32768 }, + }, + "x-ai/grok-3": { + id: "x-ai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-3-mini-beta": { + id: "x-ai/grok-3-mini-beta", + name: "Grok 3 Mini Beta", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-3-mini": { + id: "x-ai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-4.20-multi-agent-beta": { + id: "x-ai/grok-4.20-multi-agent-beta", + name: "Grok 4.20 Multi - Agent Beta", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, + limit: { context: 2000000, output: 30000 }, + status: "beta", + }, + "x-ai/grok-4.20-beta": { + id: "x-ai/grok-4.20-beta", + name: "Grok 4.20 Beta", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, + limit: { context: 2000000, output: 30000 }, + status: "beta", + }, + "x-ai/grok-3-beta": { + id: "x-ai/grok-3-beta", + name: "Grok 3 Beta", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-3.3-70b-instruct:free": { + id: "meta-llama/llama-3.3-70b-instruct:free", + name: "Llama 3.3 70B Instruct (free)", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + id: "meta-llama/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-3.2-3b-instruct:free": { + id: "meta-llama/llama-3.2-3b-instruct:free", + name: "Llama 3.2 3B Instruct (free)", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/devstral-medium-2507": { + id: "mistralai/devstral-medium-2507", + name: "Devstral Medium", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Codestral 2508", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + id: "mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistralai/mistral-small-2603": { + id: "mistralai/mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/devstral-small-2505": { + id: "mistralai/devstral-small-2505", + name: "Devstral Small", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.12 }, + limit: { context: 128000, output: 128000 }, + }, + "mistralai/devstral-2512": { + id: "mistralai/devstral-2512", + name: "Devstral 2 2512", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + id: "mistralai/mistral-small-3.2-24b-instruct", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 96000, output: 8192 }, + }, + "mistralai/devstral-small-2507": { + id: "mistralai/devstral-small-2507", + name: "Devstral Small 1.1", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-120b:exacto": { + id: "openai/gpt-oss-120b:exacto", + name: "GPT OSS 120B (exacto)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.24 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "GPT-5 Image", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 5, output: 10, cache_read: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.28 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b:free": { + id: "openai/gpt-oss-20b:free", + name: "gpt-oss-20b (free)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4 Mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2e-7, output: 0.00000125, cache_read: 2e-8 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-120b:free": { + id: "openai/gpt-oss-120b:free", + name: "gpt-oss-120b (free)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 7.5e-7, output: 0.0000045, cache_read: 7.5e-8 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax/minimax-m1": { + id: "minimax/minimax-m1", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax-01", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000000, output: 1000000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2025-10-23", + last_updated: "2025-10-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.15, cache_read: 0.28, cache_write: 1.15 }, + limit: { context: 196600, output: 118000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "bytedance-seed/seedream-4.5": { + id: "bytedance-seed/seedream-4.5", + name: "Seedream 4.5", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-23", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 4096 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 128000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "black-forest-labs/flux.2-pro": { + id: "black-forest-labs/flux.2-pro", + name: "FLUX.2 Pro", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-25", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 46864, output: 46864 }, + }, + "black-forest-labs/flux.2-flex": { + id: "black-forest-labs/flux.2-flex", + name: "FLUX.2 Flex", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-25", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 67344, output: 67344 }, + }, + "black-forest-labs/flux.2-max": { + id: "black-forest-labs/flux.2-max", + name: "FLUX.2 Max", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-16", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 46864, output: 46864 }, + }, + "black-forest-labs/flux.2-klein-4b": { + id: "black-forest-labs/flux.2-klein-4b", + name: "FLUX.2 Klein 4B", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-14", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 40960, output: 40960 }, + }, + "nousresearch/hermes-4-405b": { + id: "nousresearch/hermes-4-405b", + name: "Hermes 4 405B", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-4-70b": { + id: "nousresearch/hermes-4-70b", + name: "Hermes 4 70B", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-3-llama-3.1-405b:free": { + id: "nousresearch/hermes-3-llama-3.1-405b:free", + name: "Hermes 3 405B Instruct (free)", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + }, + }, + "github-models": { + id: "github-models", + env: ["GITHUB_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.github.ai/inference", + name: "GitHub Models", + doc: "https://docs.github.com/en/github-models", + models: { + "ai21-labs/ai21-jamba-1.5-mini": { + id: "ai21-labs/ai21-jamba-1.5-mini", + name: "AI21 Jamba 1.5 Mini", + family: "jamba", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-29", + last_updated: "2024-08-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 4096 }, + }, + "ai21-labs/ai21-jamba-1.5-large": { + id: "ai21-labs/ai21-jamba-1.5-large", + name: "AI21 Jamba 1.5 Large", + family: "jamba", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-29", + last_updated: "2024-08-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 4096 }, + }, + "microsoft/phi-4-multimodal-instruct": { + id: "microsoft/phi-4-multimodal-instruct", + name: "Phi-4-multimodal-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-128k-instruct": { + id: "microsoft/phi-3-small-128k-instruct", + name: "Phi-3-small instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-128k-instruct": { + id: "microsoft/phi-3-medium-128k-instruct", + name: "Phi-3-medium instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/mai-ds-r1": { + id: "microsoft/mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "microsoft/phi-3.5-moe-instruct": { + id: "microsoft/phi-3.5-moe-instruct", + name: "Phi-3.5-MoE instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3.5-mini-instruct": { + id: "microsoft/phi-3.5-mini-instruct", + name: "Phi-3.5-mini instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-mini-instruct": { + id: "microsoft/phi-4-mini-instruct", + name: "Phi-4-mini-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4": { + id: "microsoft/phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16000, output: 4096 }, + }, + "microsoft/phi-3-mini-4k-instruct": { + id: "microsoft/phi-3-mini-4k-instruct", + name: "Phi-3-mini instruct (4k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 1024 }, + }, + "microsoft/phi-4-mini-reasoning": { + id: "microsoft/phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3.5-vision-instruct": { + id: "microsoft/phi-3.5-vision-instruct", + name: "Phi-3.5-vision instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-4k-instruct": { + id: "microsoft/phi-3-medium-4k-instruct", + name: "Phi-3-medium instruct (4k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 1024 }, + }, + "microsoft/phi-3-mini-128k-instruct": { + id: "microsoft/phi-3-mini-128k-instruct", + name: "Phi-3-mini instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-reasoning": { + id: "microsoft/phi-4-reasoning", + name: "Phi-4-Reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-8k-instruct": { + id: "microsoft/phi-3-small-8k-instruct", + name: "Phi-3-small instruct (8k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "core42/jais-30b-chat": { + id: "core42/jais-30b-chat", + name: "JAIS 30b Chat", + family: "jais", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2023-08-30", + last_updated: "2023-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "mistral-ai/ministral-3b": { + id: "mistral-ai/ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral-ai/mistral-medium-2505": { + id: "mistral-ai/mistral-medium-2505", + name: "Mistral Medium 3 (25.05)", + family: "mistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/mistral-nemo": { + id: "mistral-ai/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral-ai/mistral-large-2411": { + id: "mistral-ai/mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/mistral-small-2503": { + id: "mistral-ai/mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/codestral-2501": { + id: "mistral-ai/codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32000, output: 8192 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-90b-vision-instruct": { + id: "meta/llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.3-70b-instruct": { + id: "meta/llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/llama-4-scout-17b-16e-instruct": { + id: "meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/meta-llama-3.1-405b-instruct": { + id: "meta/meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3-8b-instruct": { + id: "meta/meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/meta-llama-3-70b-instruct": { + id: "meta/meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "meta/meta-llama-3.1-70b-instruct": { + id: "meta/meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3.1-8b-instruct": { + id: "meta/meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/llama-4-maverick-17b-128e-instruct-fp8": { + id: "meta/llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o1-preview": { + id: "openai/o1-preview", + name: "OpenAI o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1-mini": { + id: "openai/o1-mini", + name: "OpenAI o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 65536 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "cohere/cohere-command-a": { + id: "cohere/cohere-command-a", + name: "Cohere Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-plus-08-2024": { + id: "cohere/cohere-command-r-plus-08-2024", + name: "Cohere Command R+ 08-2024", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r": { + id: "cohere/cohere-command-r", + name: "Cohere Command R", + family: "command-r", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-03-11", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-08-2024": { + id: "cohere/cohere-command-r-08-2024", + name: "Cohere Command R 08-2024", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-plus": { + id: "cohere/cohere-command-r-plus", + name: "Cohere Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-04-04", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-09", + last_updated: "2024-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-09", + last_updated: "2024-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + }, + }, + "302ai": { + id: "302ai", + env: ["302AI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.302.ai/v1", + name: "302.AI", + doc: "https://doc.302.ai", + models: { + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "qwen3-235b-a22b-instruct-2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1.143 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "gpt-5-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-08", + last_updated: "2025-10-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "claude-opus-4-5-20251101", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "Deepseek-Reasoner", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen-max-latest": { + id: "qwen-max-latest", + name: "Qwen-Max-Latest", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.343, output: 1.372 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-max-2025-09-23": { + id: "qwen3-max-2025-09-23", + name: "qwen3-max-2025-09-23", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.43 }, + limit: { context: 258048, output: 65536 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "grok-4-fast-reasoning", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "gemini-2.5-flash-lite-preview-09-2025", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "gpt-5.2-chat-latest", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-opus-4-1-20250805-thinking": { + id: "claude-opus-4-1-20250805-thinking", + name: "claude-opus-4-1-20250805-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-27", + last_updated: "2025-05-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "qwen3-coder-480b-a35b-instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.43 }, + limit: { context: 262144, output: 65536 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "gemini-2.5-flash-preview-09-2025", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "grok-4-1-fast-reasoning", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 128000, output: 98304 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "kimi-k2-0905-preview", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.632, output: 2.53 }, + limit: { context: 262144, output: 262144 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "grok-4-1-fast-non-reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "gpt-5.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-5-20250929-thinking": { + id: "claude-sonnet-4-5-20250929-thinking", + name: "claude-sonnet-4-5-20250929-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "mistral-large-2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 3.3 }, + limit: { context: 128000, output: 262144 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "glm-4.6", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 200000, output: 131072 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "gpt-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 32768 }, + }, + "doubao-seed-1-6-vision-250815": { + id: "doubao-seed-1-6-vision-250815", + name: "doubao-seed-1-6-vision-250815", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.114, output: 1.143 }, + limit: { context: 256000, output: 32000 }, + }, + "doubao-seed-1-6-thinking-250715": { + id: "doubao-seed-1-6-thinking-250715", + name: "doubao-seed-1-6-thinking-250715", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.121, output: 1.21 }, + limit: { context: 256000, output: 16000 }, + }, + "doubao-seed-1-8-251215": { + id: "doubao-seed-1-8-251215", + name: "doubao-seed-1-8-251215", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.114, output: 0.286 }, + limit: { context: 224000, output: 64000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "claude-sonnet-4-5-20250929", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "ministral-14b-2512": { + id: "ministral-14b-2512", + name: "ministral-14b-2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 0.33 }, + limit: { context: 128000, output: 128000 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-26", + last_updated: "2025-10-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 1000000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "gpt-5.2", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "gpt-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1000000, output: 32768 }, + }, + "gemini-2.5-flash-nothink": { + id: "gemini-2.5-flash-nothink", + name: "gemini-2.5-flash-nothink", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-24", + last_updated: "2025-06-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 2.86 }, + limit: { context: 128000, output: 16384 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "deepseek-v3.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-opus-4-5-20251101-thinking": { + id: "claude-opus-4-5-20251101-thinking", + name: "claude-opus-4-5-20251101-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "gpt-5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-chat": { + id: "deepseek-chat", + name: "Deepseek-Chat", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "gpt-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1000000, output: 32768 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "gemini-2.5-flash-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-10-08", + last_updated: "2025-10-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 30 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "gemini-3-pro-image-preview", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 120 }, + limit: { context: 32768, output: 64000 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "glm-4.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 200000, output: 131072 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax-M1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.132, output: 1.254 }, + limit: { context: 1000000, output: 128000 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "kimi-k2-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.575, output: 2.3 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5-thinking": { + id: "gpt-5-thinking", + name: "gpt-5-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-v3.2-thinking": { + id: "deepseek-v3.2-thinking", + name: "DeepSeek-V3.2-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 128000 }, + }, + "chatgpt-4o-latest": { + id: "chatgpt-4o-latest", + name: "chatgpt-4o-latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2024-08-08", + last_updated: "2024-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen-Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 1.2 }, + limit: { context: 1000000, output: 32768 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 1000000, output: 131072 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "kimi-k2-thinking-turbo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.265, output: 9.119 }, + limit: { context: 262144, output: 262144 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "gemini-3-pro-preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "gemini-2.0-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-11", + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 2000000, output: 8192 }, + }, + "doubao-seed-code-preview-251028": { + id: "doubao-seed-code-preview-251028", + name: "doubao-seed-code-preview-251028", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-11", + last_updated: "2025-11-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.14 }, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3-30B-A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 1.08 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "grok-4-fast-non-reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.86 }, + limit: { context: 64000, output: 16384 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen-Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.022, output: 0.22 }, + limit: { context: 1000000, output: 32768 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.145, output: 0.43 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "gpt-5.1-chat-latest", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "claude-opus-4-1-20250805", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "gpt-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4.1": { + id: "grok-4.1", + name: "grok-4.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + "github-copilot": { + id: "github-copilot", + env: ["GITHUB_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.githubcopilot.com", + name: "GitHub Copilot", + doc: "https://docs.github.com/en/copilot", + models: { + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1-Codex-max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-27", + last_updated: "2025-08-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "claude-sonnet-4.6": { + id: "claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, input: 128000, output: 32000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "claude-haiku-4.5": { + id: "claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 32000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 64000, output: 16384 }, + }, + "claude-opus-4.5": { + id: "claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 160000, input: 128000, output: 32000 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 216000, input: 128000, output: 16000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "claude-sonnet-4.5": { + id: "claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 32000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "claude-opus-4.6": { + id: "claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 64000 }, + }, + "claude-opus-41": { + id: "claude-opus-41", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 80000, output: 16000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 64000, output: 4096 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + }, + }, + moonshotai: { + id: "moonshotai", + env: ["MOONSHOT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.moonshot.ai/v1", + name: "Moonshot AI", + doc: "https://platform.moonshot.ai/docs/api/chat", + models: { + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 10, cache_read: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0711-preview": { + id: "kimi-k2-0711-preview", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 131072, output: 16384 }, + }, + }, + }, + "google-vertex": { + id: "google-vertex", + env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], + npm: "@ai-sdk/google-vertex", + name: "Vertex", + doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + models: { + "gemini-embedding-001": { + id: "gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-05", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 2048, output: 3072 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview-customtools": { + id: "gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview 04-17", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash Preview 05-20", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-flash-latest": { + id: "gemini-flash-latest", + name: "Gemini Flash Latest", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview 06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 65536, output: 65536 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-flash-lite-latest": { + id: "gemini-flash-lite-latest", + name: "Gemini Flash-Lite Latest", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "zai-org/glm-5-maas": { + id: "zai-org/glm-5-maas", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.1 }, + limit: { context: 202752, output: 131072 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "zai-org/glm-4.7-maas": { + id: "zai-org/glm-4.7-maas", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-06", + last_updated: "2026-01-06", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "deepseek-ai/deepseek-v3.1-maas": { + id: "deepseek-ai/deepseek-v3.1-maas", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.7 }, + limit: { context: 163840, output: 32768 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "qwen/qwen3-235b-a22b-instruct-2507-maas": { + id: "qwen/qwen3-235b-a22b-instruct-2507-maas", + name: "Qwen3 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 262144, output: 16384 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "meta/llama-4-maverick-17b-128e-instruct-maas": { + id: "meta/llama-4-maverick-17b-128e-instruct-maas", + name: "Llama 4 Maverick 17B 128E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.15 }, + limit: { context: 524288, output: 8192 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "meta/llama-3.3-70b-instruct-maas": { + id: "meta/llama-3.3-70b-instruct-maas", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 8192 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "openai/gpt-oss-20b-maas": { + id: "openai/gpt-oss-20b-maas", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.25 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-120b-maas": { + id: "openai/gpt-oss-120b-maas", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + "privatemode-ai": { + id: "privatemode-ai", + env: ["PRIVATEMODE_API_KEY", "PRIVATEMODE_ENDPOINT"], + npm: "@ai-sdk/openai-compatible", + api: "http://localhost:8080/v1", + name: "Privatemode AI", + doc: "https://docs.privatemode.ai/api/overview", + models: { + "gemma-3-27b": { + id: "gemma-3-27b", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-04", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper large-v3", + family: "whisper", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2023-09-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "qwen3-embedding-4b": { + id: "qwen3-embedding-4b", + name: "Qwen3-Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-06", + last_updated: "2025-06-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32000, output: 2560 }, + }, + "qwen3-coder-30b-a3b": { + id: "qwen3-coder-30b-a3b", + name: "Qwen3-Coder 30B-A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + google: { + id: "google", + env: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], + npm: "@ai-sdk/google", + name: "Google", + doc: "https://ai.google.dev/gemini-api/docs/pricing", + models: { + "gemini-embedding-001": { + id: "gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-05", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 2048, output: 3072 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview-customtools": { + id: "gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview 04-17", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash Preview 05-20", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-flash-image-preview": { + id: "gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 60 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-live-2.5-flash": { + id: "gemini-live-2.5-flash", + name: "Gemini Live 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, + limit: { context: 128000, output: 8000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-live-2.5-flash-preview-native-audio": { + id: "gemini-live-2.5-flash-preview-native-audio", + name: "Gemini Live 2.5 Flash Preview Native Audio", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-09-18", + modalities: { input: ["text", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, + limit: { context: 131072, output: 65536 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-tts": { + id: "gemini-2.5-flash-preview-tts", + name: "Gemini 2.5 Flash Preview TTS", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 0.5, output: 10 }, + limit: { context: 8000, output: 16000 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-flash-latest": { + id: "gemini-flash-latest", + name: "Gemini Flash Latest", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview 06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025, input_audio: 0.3 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-2.5-pro-preview-tts": { + id: "gemini-2.5-pro-preview-tts", + name: "Gemini 2.5 Pro Preview TTS", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 1, output: 20 }, + limit: { context: 8000, output: 16000 }, + }, + "gemini-2.5-flash-image-preview": { + id: "gemini-2.5-flash-image-preview", + name: "Gemini 2.5 Flash Image (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-1.5-flash-8b": { + id: "gemini-1.5-flash-8b", + name: "Gemini 1.5 Flash-8B", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-03", + last_updated: "2024-10-03", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0375, output: 0.15, cache_read: 0.01 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-1.5-flash": { + id: "gemini-1.5-flash", + name: "Gemini 1.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.01875 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemini-flash-lite-latest": { + id: "gemini-flash-lite-latest", + name: "Gemini Flash-Lite Latest", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-1.5-pro": { + id: "gemini-1.5-pro", + name: "Gemini 1.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-02-15", + last_updated: "2024-02-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 5, cache_read: 0.3125 }, + limit: { context: 1000000, output: 8192 }, + }, + }, + }, + vivgrid: { + id: "vivgrid", + env: ["VIVGRID_API_KEY"], + npm: "@ai-sdk/openai", + api: "https://api.vivgrid.com/v1", + name: "Vivgrid", + doc: "https://docs.vivgrid.com/models", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42 }, + limit: { context: 128000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + }, + }, + "moonshotai-cn": { + id: "moonshotai-cn", + env: ["MOONSHOT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.moonshot.cn/v1", + name: "Moonshot AI (China)", + doc: "https://platform.moonshot.cn/docs/api/chat", + models: { + "kimi-k2-0711-preview": { + id: "kimi-k2-0711-preview", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 10, cache_read: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "sap-ai-core": { + id: "sap-ai-core", + env: ["AICORE_SERVICE_KEY"], + npm: "@jerome-benoit/sap-ai-provider-v2", + name: "SAP AI Core", + doc: "https://help.sap.com/docs/sap-ai-core", + models: { + "anthropic--claude-4.5-opus": { + id: "anthropic--claude-4.5-opus", + name: "anthropic--claude-4.5-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic--claude-4-sonnet": { + id: "anthropic--claude-4-sonnet", + name: "anthropic--claude-4-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic--claude-4.5-sonnet": { + id: "anthropic--claude-4.5-sonnet", + name: "anthropic--claude-4.5-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-3-sonnet": { + id: "anthropic--claude-3-sonnet", + name: "anthropic--claude-3-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic--claude-3.7-sonnet": { + id: "anthropic--claude-3.7-sonnet", + name: "anthropic--claude-3.7-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + sonar: { + id: "sonar", + name: "sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic--claude-3.5-sonnet": { + id: "anthropic--claude-3.5-sonnet", + name: "anthropic--claude-3.5-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "sonar-deep-research", + family: "sonar-deep-research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-02-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, reasoning: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "anthropic--claude-4.6-sonnet": { + id: "anthropic--claude-4.6-sonnet", + name: "anthropic--claude-4.6-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "gemini-2.5-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "gpt-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "anthropic--claude-4.5-haiku": { + id: "anthropic--claude-4.5-haiku", + name: "anthropic--claude-4.5-haiku", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "gpt-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "gpt-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "anthropic--claude-3-opus": { + id: "anthropic--claude-3-opus", + name: "anthropic--claude-3-opus", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "sonar-pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "anthropic--claude-3-haiku": { + id: "anthropic--claude-3-haiku", + name: "anthropic--claude-3-haiku", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic--claude-4.6-opus": { + id: "anthropic--claude-4.6-opus", + name: "anthropic--claude-4.6-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "gpt-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "anthropic--claude-4-opus": { + id: "anthropic--claude-4-opus", + name: "anthropic--claude-4-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + zhipuai: { + id: "zhipuai", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://open.bigmodel.cn/api/paas/v4", + name: "Zhipu AI", + doc: "https://docs.z.ai/guides/overview/pricing", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + }, + }, + venice: { + id: "venice", + env: ["VENICE_API_KEY"], + npm: "venice-ai-sdk-provider", + name: "Venice AI", + doc: "https://docs.venice.ai", + models: { + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen 3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "google-gemma-3-27b-it": { + id: "google-gemma-3-27b-it", + name: "Google Gemma 3 27B Instruct", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-04", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 198000, output: 16384 }, + }, + "openai-gpt-4o-2024-11-20": { + id: "openai-gpt-4o-2024-11-20", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-28", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.125, output: 12.5 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-opus-45": { + id: "claude-opus-45", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-06", + last_updated: "2026-01-28", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, + limit: { context: 198000, output: 49500 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen 3 Coder 480b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 3 }, + limit: { context: 256000, output: 65536 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, + limit: { context: 1000000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.87, cache_read: 0.03 }, + limit: { context: 256000, output: 10000 }, + }, + "zai-org-glm-5": { + id: "zai-org-glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 198000, output: 32000 }, + }, + "zai-org-glm-4.7": { + id: "zai-org-glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-24", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.65, cache_read: 0.11 }, + limit: { context: 198000, output: 16384 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.6, output: 18, cache_read: 0.36, cache_write: 4.5 }, + limit: { context: 1000000, output: 64000 }, + }, + "zai-org-glm-4.6": { + id: "zai-org-glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2024-04-01", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 2.75, cache_read: 0.3 }, + limit: { context: 198000, output: 16384 }, + }, + "openai-gpt-53-codex": { + id: "openai-gpt-53-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 400000, output: 128000 }, + }, + "kimi-k2-5": { + id: "kimi-k2-5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-01-27", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 3.5, cache_read: 0.11 }, + limit: { context: 256000, output: 65536 }, + }, + "mistral-small-3-2-24b-instruct": { + id: "mistral-small-3-2-24b-instruct", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-15", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09375, output: 0.25 }, + limit: { context: 256000, output: 16384 }, + }, + "mistral-31-24b": { + id: "mistral-31-24b", + name: "Venice Medium", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-03-18", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 128000, output: 4096 }, + }, + "grok-4-20-multi-agent-beta": { + id: "grok-4-20-multi-agent-beta", + name: "Grok 4.20 Multi-Agent Beta", + family: "grok-beta", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 7.5, + cache_read: 0.25, + context_over_200k: { input: 5, output: 15, cache_read: 0.25 }, + }, + limit: { context: 2000000, output: 128000 }, + }, + "openai-gpt-54-pro": { + id: "openai-gpt-54-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 37.5, output: 225, context_over_200k: { input: 75, output: 337.5 } }, + limit: { context: 1000000, output: 128000 }, + }, + "qwen3-4b": { + id: "qwen3-4b", + name: "Venice Small", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 32000, output: 4096 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-19", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 3.75, cache_read: 0.07 }, + limit: { context: 256000, output: 65536 }, + }, + "grok-4-20-beta": { + id: "grok-4-20-beta", + name: "Grok 4.20 Beta", + family: "grok-beta", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 7.5, + cache_read: 0.25, + context_over_200k: { input: 5, output: 15, cache_read: 0.25 }, + }, + limit: { context: 2000000, output: 128000 }, + }, + "olafangensan-glm-4.7-flash-heretic": { + id: "olafangensan-glm-4.7-flash-heretic", + name: "GLM 4.7 Flash Heretic", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.8 }, + limit: { context: 200000, output: 24000 }, + }, + "minimax-m25": { + id: "minimax-m25", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.34, output: 1.19, cache_read: 0.04 }, + limit: { context: 198000, output: 32768 }, + }, + "zai-org-glm-4.7-flash": { + id: "zai-org-glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-coder-480b-a35b-instruct-turbo": { + id: "qwen3-coder-480b-a35b-instruct-turbo", + name: "Qwen 3 Coder 480B Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, + limit: { context: 256000, output: 65536 }, + }, + "openai-gpt-oss-120b": { + id: "openai-gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-41-fast": { + id: "grok-41-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-12-01", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.625, cache_read: 0.0625 }, + limit: { context: 1000000, output: 30000 }, + }, + "openai-gpt-52": { + id: "openai-gpt-52", + name: "GPT-5.2", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-12-13", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 256000, output: 65536 }, + }, + "openai-gpt-54": { + id: "openai-gpt-54", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.13, output: 18.8, cache_read: 0.313 }, + limit: { context: 1000000, output: 131072 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-04", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.33, output: 0.48, cache_read: 0.16 }, + limit: { context: 160000, output: 32768 }, + }, + "gemini-3-1-pro-preview": { + id: "gemini-3-1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.5, + cache_write: 0.5, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1000000, output: 32768 }, + }, + "openai-gpt-4o-mini-2024-07-18": { + id: "openai-gpt-4o-mini-2024-07-18", + name: "GPT-4o Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-28", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1875, output: 0.75, cache_read: 0.09375 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-3.3-70b": { + id: "llama-3.3-70b", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen3-next-80b": { + id: "qwen3-next-80b", + name: "Qwen 3 Next 80b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.9 }, + limit: { context: 256000, output: 16384 }, + }, + "hermes-3-llama-3.1-405b": { + id: "hermes-3-llama-3.1-405b", + name: "Hermes 3 Llama 3.1 405b", + family: "hermes", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-25", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.1, output: 3 }, + limit: { context: 128000, output: 16384 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-12-10", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 3.2, cache_read: 0.375 }, + limit: { context: 256000, output: 65536 }, + }, + "qwen3-5-9b": { + id: "qwen3-5-9b", + name: "Qwen 3.5 9B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 256000, output: 65536 }, + }, + "minimax-m21": { + id: "minimax-m21", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, + limit: { context: 198000, output: 32768 }, + }, + "qwen3-5-35b-a3b": { + id: "qwen3-5-35b-a3b", + name: "Qwen 3.5 35B A3B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-25", + last_updated: "2026-03-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3125, output: 1.25, cache_read: 0.15625 }, + limit: { context: 256000, output: 65536 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen 3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-12-02", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.625 }, + limit: { context: 198000, output: 32768 }, + }, + "llama-3.2-3b": { + id: "llama-3.2-3b", + name: "Llama 3.2 3B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-10-03", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "venice-uncensored": { + id: "venice-uncensored", + name: "Venice Uncensored 1.1", + family: "venice", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-03-18", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.9 }, + limit: { context: 32000, output: 8192 }, + }, + "nvidia-nemotron-3-nano-30b-a3b": { + id: "nvidia-nemotron-3-nano-30b-a3b", + name: "NVIDIA Nemotron 3 Nano 30B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "openai-gpt-52-codex": { + id: "openai-gpt-52-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-01-15", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 256000, output: 65536 }, + }, + "minimax-m27": { + id: "minimax-m27", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.375, output: 1.5, cache_read: 0.075 }, + limit: { context: 198000, output: 32768 }, + }, + "venice-uncensored-role-play": { + id: "venice-uncensored-role-play", + name: "Venice Role Play Uncensored", + family: "venice", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-20", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3 VL 235B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-16", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "claude-sonnet-45": { + id: "claude-sonnet-45", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-01-15", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.75, output: 18.75, cache_read: 0.375, cache_write: 4.69 }, + limit: { context: 198000, output: 49500 }, + }, + }, + }, + nova: { + id: "nova", + env: ["NOVA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.nova.amazon.com/v1", + name: "Nova", + doc: "https://nova.amazon.com/dev/documentation", + models: { + "nova-2-lite-v1": { + id: "nova-2-lite-v1", + name: "Nova 2 Lite", + family: "nova-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, reasoning: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "nova-2-pro-v1": { + id: "nova-2-pro-v1", + name: "Nova 2 Pro", + family: "nova-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2026-01-03", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, reasoning: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + }, + }, + "zai-coding-plan": { + id: "zai-coding-plan", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.z.ai/api/coding/paas/v4", + name: "Z.AI Coding Plan", + doc: "https://docs.z.ai/devpack/overview", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + "opencode-go": { + id: "opencode-go", + env: ["OPENCODE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://opencode.ai/zen/go/v1", + name: "OpenCode Go", + doc: "https://opencode.ai/docs/zen", + models: { + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax-m2.7": { + id: "minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 65536 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax-m2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + }, + }, + drun: { + id: "drun", + env: ["DRUN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://chat.d.run/v1", + name: "D.Run (China)", + doc: "https://www.d.run", + models: { + "public/deepseek-v3": { + id: "public/deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131072, output: 8192 }, + }, + "public/deepseek-r1": { + id: "public/deepseek-r1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32000 }, + }, + "public/minimax-m25": { + id: "public/minimax-m25", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1.16 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + firmware: { + id: "firmware", + env: ["FIRMWARE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://app.frogbot.ai/api/v1", + name: "Firmware", + doc: "https://docs.frogbot.ai", + models: { + "gpt-5-4": { + id: "gpt-5-4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 272000, output: 128000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-02-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 198000, output: 8192 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 128000 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-17", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-17", + last_updated: "2025-07-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "deepseek-v3-2": { + id: "deepseek-v3-2", + name: "DeepSeek v3.2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 1.68, cache_read: 0.28 }, + limit: { context: 128000, output: 8192 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi-K2.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 128000 }, + }, + "gemini-3-1-pro-preview": { + id: "gemini-3-1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "minimax-m2-5": { + id: "minimax-m2-5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-01-15", + last_updated: "2025-02-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 192000, output: 8192 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "gpt-5-3-codex": { + id: "gpt-5-3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2026-01-31", + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + ovhcloud: { + id: "ovhcloud", + env: ["OVHCLOUD_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", + name: "OVHcloud AI Endpoints", + doc: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", + models: { + "meta-llama-3_3-70b-instruct": { + id: "meta-llama-3_3-70b-instruct", + name: "Meta-Llama-3_3-70B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.74, output: 0.74 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-7b-instruct-v0.3": { + id: "mistral-7b-instruct-v0.3", + name: "Mistral-7B-Instruct-v0.3", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.11 }, + limit: { context: 65536, output: 65536 }, + }, + "mistral-small-3.2-24b-instruct-2506": { + id: "mistral-small-3.2-24b-instruct-2506", + name: "Mistral-Small-3.2-24B-Instruct-2506", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-16", + last_updated: "2025-07-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.31 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3-32B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-16", + last_updated: "2025-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.25 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen2.5-coder-32b-instruct": { + id: "qwen2.5-coder-32b-instruct", + name: "Qwen2.5-Coder-32B-Instruct", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.96, output: 0.96 }, + limit: { context: 32768, output: 32768 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.47 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek-R1-Distill-Llama-70B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-30", + last_updated: "2025-01-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.74, output: 0.74 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen2.5-vl-72b-instruct": { + id: "qwen2.5-vl-72b-instruct", + name: "Qwen2.5-VL-72B-Instruct", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-31", + last_updated: "2025-03-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.01, output: 1.01 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder-30B-A3B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.26 }, + limit: { context: 262144, output: 262144 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama-3.1-8B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-11", + last_updated: "2025-06-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.11 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-nemo-instruct-2407": { + id: "mistral-nemo-instruct-2407", + name: "Mistral-Nemo-Instruct-2407", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 65536, output: 65536 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.18 }, + limit: { context: 131072, output: 131072 }, + }, + "mixtral-8x7b-instruct-v0.1": { + id: "mixtral-8x7b-instruct-v0.1", + name: "Mixtral-8x7B-Instruct-v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32768, output: 32768 }, + }, + }, + }, + stackit: { + id: "stackit", + env: ["STACKIT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1", + name: "STACKIT", + doc: "https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models", + models: { + "intfloat/e5-mistral-7b-instruct": { + id: "intfloat/e5-mistral-7b-instruct", + name: "E5 Mistral 7B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 4096, output: 4096 }, + }, + "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": { + id: "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.27 }, + limit: { context: 128000, output: 8192 }, + }, + "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": { + id: "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", + name: "Mistral Nemo", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 128000, output: 8192 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-05-17", + last_updated: "2025-05-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 37000, output: 8192 }, + }, + "Qwen/Qwen3-VL-Embedding-8B": { + id: "Qwen/Qwen3-VL-Embedding-8B", + name: "Qwen3-VL Embedding 8B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.09 }, + limit: { context: 32000, output: 4096 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", + name: "Qwen3-VL 235B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.64, output: 1.91 }, + limit: { context: 218000, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 131000, output: 8192 }, + }, + "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": { + id: "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 128000, output: 8192 }, + }, + }, + }, + "cloudferro-sherlock": { + id: "cloudferro-sherlock", + env: ["CLOUDFERRO_SHERLOCK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api-sherlock.cloudferro.com/openai/v1/", + name: "CloudFerro Sherlock", + doc: "https://docs.sherlock.cloudferro.com/", + models: { + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196000, output: 196000 }, + }, + "speakleash/Bielik-11B-v2.6-Instruct": { + id: "speakleash/Bielik-11B-v2.6-Instruct", + name: "Bielik 11B v2.6 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 0.67 }, + limit: { context: 32000, output: 32000 }, + }, + "speakleash/Bielik-11B-v3.0-Instruct": { + id: "speakleash/Bielik-11B-v3.0-Instruct", + name: "Bielik 11B v3.0 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 0.67 }, + limit: { context: 32000, output: 32000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10-09", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.92, output: 2.92 }, + limit: { context: 70000, output: 70000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.92, output: 2.92 }, + limit: { context: 131000, output: 131000 }, + }, + }, + }, + requesty: { + id: "requesty", + env: ["REQUESTY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://router.requesty.ai/v1", + name: "Requesty", + doc: "https://requesty.ai/solution/llm-routing/models", + models: { + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.55 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 2.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "GPT-5 Image", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 5, output: 10, cache_read: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "audio", "image", "video"], output: ["text", "audio", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4 Mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 16000, output: 4000 }, + }, + "anthropic/claude-3-7-sonnet": { + id: "anthropic/claude-3-7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-1": { + id: "anthropic/claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-01", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 62000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "xai/grok-4-fast": { + id: "xai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.2 }, + limit: { context: 2000000, output: 64000 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-09", + last_updated: "2025-09-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 3 }, + limit: { context: 256000, output: 64000 }, + }, + }, + }, + "qihang-ai": { + id: "qihang-ai", + env: ["QIHANG_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.qhaigc.net/v1", + name: "QiHang", + doc: "https://www.qhaigc.net/docs", + models: { + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.71, output: 3.57 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.71, context_over_200k: { input: 0.09, output: 0.71 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.43, context_over_200k: { input: 0.07, output: 0.43 } }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.43, output: 2.14 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.71 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.57, output: 3.43 }, + limit: { context: 1000000, output: 65000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.29 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + "siliconflow-cn": { + id: "siliconflow-cn", + env: ["SILICONFLOW_CN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.siliconflow.cn/v1", + name: "SiliconFlow (China)", + doc: "https://cloud.siliconflow.com/models", + models: { + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "zai-org/GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-07", + last_updated: "2025-12-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.5V": { + id: "zai-org/GLM-4.5V", + name: "zai-org/GLM-4.5V", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 66000, output: 66000 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "zai-org/GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.9 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "zai-org/GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 131000, output: 131000 }, + }, + "Pro/zai-org/GLM-4.7": { + id: "Pro/zai-org/GLM-4.7", + name: "Pro/zai-org/GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/zai-org/GLM-5": { + id: "Pro/zai-org/GLM-5", + name: "Pro/zai-org/GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/MiniMaxAI/MiniMax-M2.5": { + id: "Pro/MiniMaxAI/MiniMax-M2.5", + name: "Pro/MiniMaxAI/MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.22 }, + limit: { context: 192000, output: 131000 }, + }, + "Pro/MiniMaxAI/MiniMax-M2.1": { + id: "Pro/MiniMaxAI/MiniMax-M2.1", + name: "Pro/MiniMaxAI/MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "Pro/deepseek-ai/DeepSeek-R1": { + id: "Pro/deepseek-ai/DeepSeek-R1", + name: "Pro/deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3.2": { + id: "Pro/deepseek-ai/DeepSeek-V3.2", + name: "Pro/deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3": { + id: "Pro/deepseek-ai/DeepSeek-V3", + name: "Pro/deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + name: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/moonshotai/Kimi-K2-Instruct-0905": { + id: "Pro/moonshotai/Kimi-K2-Instruct-0905", + name: "Pro/moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/moonshotai/Kimi-K2.5": { + id: "Pro/moonshotai/Kimi-K2.5", + name: "Pro/moonshotai/Kimi-K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 3 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/moonshotai/Kimi-K2-Thinking": { + id: "Pro/moonshotai/Kimi-K2-Thinking", + name: "Pro/moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "PaddlePaddle/PaddleOCR-VL-1.5": { + id: "PaddlePaddle/PaddleOCR-VL-1.5", + name: "PaddlePaddle/PaddleOCR-VL-1.5", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 16384 }, + }, + "PaddlePaddle/PaddleOCR-VL": { + id: "PaddlePaddle/PaddleOCR-VL", + name: "PaddlePaddle/PaddleOCR-VL", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 16384 }, + }, + "Kwaipilot/KAT-Dev": { + id: "Kwaipilot/KAT-Dev", + name: "Kwaipilot/KAT-Dev", + family: "kat-coder", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-27", + last_updated: "2026-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 128000 }, + }, + "deepseek-ai/DeepSeek-OCR": { + id: "deepseek-ai/DeepSeek-OCR", + name: "deepseek-ai/DeepSeek-OCR", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2025-10-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/deepseek-vl2": { + id: "deepseek-ai/deepseek-vl2", + name: "deepseek-ai/deepseek-vl2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 4000, output: 4000 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131000, output: 131000 }, + }, + "ByteDance-Seed/Seed-OSS-36B-Instruct": { + id: "ByteDance-Seed/Seed-OSS-36B-Instruct", + name: "ByteDance-Seed/Seed-OSS-36B-Instruct", + family: "seed", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "tencent/Hunyuan-MT-7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 33000, output: 33000 }, + }, + "tencent/Hunyuan-A13B-Instruct": { + id: "tencent/Hunyuan-A13B-Instruct", + name: "tencent/Hunyuan-A13B-Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "ascend-tribe/pangu-pro-moe": { + id: "ascend-tribe/pangu-pro-moe", + name: "ascend-tribe/pangu-pro-moe", + family: "pangu", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2026-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 128000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "inclusionAI/Ling-mini-2.0": { + id: "inclusionAI/Ling-mini-2.0", + name: "inclusionAI/Ling-mini-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ring-flash-2.0": { + id: "inclusionAI/Ring-flash-2.0", + name: "inclusionAI/Ring-flash-2.0", + family: "ring", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-flash-2.0": { + id: "inclusionAI/Ling-flash-2.0", + name: "inclusionAI/Ling-flash-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "baidu/ERNIE-4.5-300B-A47B": { + id: "baidu/ERNIE-4.5-300B-A47B", + name: "baidu/ERNIE-4.5-300B-A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131000, output: 131000 }, + }, + "stepfun-ai/Step-3.5-Flash": { + id: "stepfun-ai/Step-3.5-Flash", + name: "stepfun-ai/Step-3.5-Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3.5-9B": { + id: "Qwen/Qwen3.5-9B", + name: "Qwen/Qwen3.5-9B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.74 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-122B-A10B": { + id: "Qwen/Qwen3.5-122B-A10B", + name: "Qwen/Qwen3.5-122B-A10B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 2.32 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen/Qwen3.5-397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.74 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-35B-A3B": { + id: "Qwen/Qwen3.5-35B-A3B", + name: "Qwen/Qwen3.5-35B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.23, output: 1.86 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-4B": { + id: "Qwen/Qwen3.5-4B", + name: "Qwen/Qwen3.5-4B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-27B": { + id: "Qwen/Qwen3.5-27B", + name: "Qwen/Qwen3.5-27B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.09 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen/Qwen2.5-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen/Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen/Qwen3-235B-A22B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Thinking": { + id: "Qwen/Qwen3-VL-32B-Thinking", + name: "Qwen/Qwen3-VL-32B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Thinking": { + id: "Qwen/Qwen3-VL-8B-Thinking", + name: "Qwen/Qwen3-VL-8B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen/Qwen3-VL-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Captioner": { + id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen/Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Instruct": { + id: "Qwen/Qwen3-VL-8B-Instruct", + name: "Qwen/Qwen3-VL-8B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.68 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-72B-Instruct-128K": { + id: "Qwen/Qwen2.5-72B-Instruct-128K", + name: "Qwen/Qwen2.5-72B-Instruct-128K", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen/Qwen2.5-72B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen/Qwen2.5-VL-72B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen2.5-14B-Instruct": { + id: "Qwen/Qwen2.5-14B-Instruct", + name: "Qwen/Qwen2.5-14B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-7B-Instruct": { + id: "Qwen/Qwen2.5-7B-Instruct", + name: "Qwen/Qwen2.5-7B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Thinking": { + id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-8B": { + id: "Qwen/Qwen3-8B", + name: "Qwen/Qwen3-8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen/Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-32B-Instruct": { + id: "Qwen/Qwen2.5-32B-Instruct", + name: "Qwen/Qwen2.5-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen/Qwen3-30B-A3B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen/Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + id: "Qwen/Qwen3-VL-235B-A22B-Thinking", + name: "Qwen/Qwen3-VL-235B-A22B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen/Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "Qwen/QwQ-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.58 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-VL-32B-Instruct": { + id: "Qwen/Qwen3-VL-32B-Instruct", + name: "Qwen/Qwen3-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen/Qwen3-30B-A3B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Thinking": { + id: "Qwen/Qwen3-VL-30B-A3B-Thinking", + name: "Qwen/Qwen3-VL-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "THUDM/GLM-Z1-9B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "THUDM/GLM-Z1-32B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "THUDM/GLM-4-9B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "THUDM/GLM-4-32B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 33000, output: 33000 }, + }, + }, + }, + helicone: { + id: "helicone", + env: ["HELICONE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://ai-gateway.helicone.ai/v1", + name: "Helicone", + doc: "https://helicone.ai/models", + models: { + "claude-4.5-haiku": { + id: "claude-4.5-haiku", + name: "Anthropic: Claude 4.5 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, + limit: { context: 200000, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "OpenAI: GPT-5 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "OpenAI: GPT-5 Pro", + family: "gpt-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 128000, output: 32768 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, + limit: { context: 128000, output: 64000 }, + }, + "claude-3.7-sonnet": { + id: "claude-3.7-sonnet", + name: "Anthropic: Claude 3.7 Sonnet", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-02", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "OpenAI GPT-4o-mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "xAI: Grok 4 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "OpenAI GPT-5 Chat Latest", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-09", + release_date: "2024-09-30", + last_updated: "2024-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-4-scout": { + id: "llama-4-scout", + name: "Meta Llama 4 Scout 17B 16E", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 131072, output: 8192 }, + }, + "codex-mini-latest": { + id: "codex-mini-latest", + name: "OpenAI Codex Mini Latest", + family: "gpt-codex-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "qwen2.5-coder-7b-fast": { + id: "qwen2.5-coder-7b-fast", + name: "Qwen2.5 Coder 7B fast", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-15", + last_updated: "2024-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 32000, output: 8192 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Anthropic: Claude Opus 4.1", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Perplexity Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 4096 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, + limit: { context: 128000, output: 8192 }, + }, + "llama-3.1-8b-instruct-turbo": { + id: "llama-3.1-8b-instruct-turbo", + name: "Meta Llama 3.1 8B Instruct Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 128000, output: 128000 }, + }, + "grok-3": { + id: "grok-3", + name: "xAI Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 131072 }, + }, + "ernie-4.5-21b-a3b-thinking": { + id: "ernie-4.5-21b-a3b-thinking", + name: "Baidu Ernie 4.5 21B A3B Thinking", + family: "ernie", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 128000, output: 8000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "xAI Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-25", + last_updated: "2024-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "llama-prompt-guard-2-22m": { + id: "llama-prompt-guard-2-22m", + name: "Meta Llama Prompt Guard 2 22M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 512, output: 2 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Meta Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.39 }, + limit: { context: 128000, output: 16400 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "xAI Grok 4.1 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "claude-4.5-sonnet": { + id: "claude-4.5-sonnet", + name: "Anthropic: Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-4.1-mini-2025-04-14": { + id: "gpt-4.1-mini-2025-04-14", + name: "OpenAI GPT-4.1 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, + limit: { context: 1047576, output: 32768 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Google Gemini 2.5 Flash", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.3 }, + limit: { context: 1048576, output: 65535 }, + }, + "llama-guard-4": { + id: "llama-guard-4", + name: "Meta Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.21 }, + limit: { context: 131072, output: 1024 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "xAI Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 30000 }, + }, + o1: { + id: "o1", + name: "OpenAI: o1", + family: "o", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "OpenAI GPT-5.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "kimi-k2-0905": { + id: "kimi-k2-0905", + name: "Kimi K2 (09/05)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2, cache_read: 0.39999999999999997 }, + limit: { context: 262144, output: 16384 }, + }, + "grok-4": { + id: "grok-4", + name: "xAI Grok 4", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-09", + last_updated: "2024-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 256000 }, + }, + "llama-3.1-8b-instant": { + id: "llama-3.1-8b-instant", + name: "Meta Llama 3.1 8B Instant", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.08 }, + limit: { context: 131072, output: 32678 }, + }, + sonar: { + id: "sonar", + name: "Perplexity Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127000, output: 4096 }, + }, + o3: { + id: "o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "qwen3-coder": { + id: "qwen3-coder", + name: "Qwen3 Coder 480B A35B Instruct Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 0.95 }, + limit: { context: 262144, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "Zai GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.44999999999999996, output: 1.5 }, + limit: { context: 204800, output: 131072 }, + }, + "sonar-reasoning": { + id: "sonar-reasoning", + name: "Perplexity Sonar Reasoning", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 127000, output: 4096 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.59 }, + limit: { context: 131072, output: 40960 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Sonar Deep Research", + family: "sonar-deep-research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 4096 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "OpenAI GPT-4.1 Nano", + family: "gpt-nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09999999999999999, output: 0.39999999999999997, cache_read: 0.024999999999999998 }, + limit: { context: 1047576, output: 32768 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Anthropic: Claude Sonnet 4.5 (20250929)", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Google Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.09999999999999999, + output: 0.39999999999999997, + cache_read: 0.024999999999999998, + cache_write: 0.09999999999999999, + }, + limit: { context: 1048576, output: 65535 }, + }, + "claude-3.5-haiku": { + id: "claude-3.5-haiku", + name: "Anthropic: Claude 3.5 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7999999999999999, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "OpenAI GPT-OSS 120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "OpenAI: GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.13 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-v3.1-terminus": { + id: "deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1, cache_read: 0.21600000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "OpenAI GPT-4.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "claude-3.5-sonnet-v2": { + id: "claude-3.5-sonnet-v2", + name: "Anthropic: Claude 3.5 Sonnet v2", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "mistral-small": { + id: "mistral-small", + name: "Mistral Small", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-02", + release_date: "2024-02-26", + last_updated: "2024-02-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 75, output: 200 }, + limit: { context: 128000, output: 128000 }, + }, + "o3-pro": { + id: "o3-pro", + name: "OpenAI o3 Pro", + family: "o-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 40 }, + limit: { context: 128000, output: 16400 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09999999999999999, output: 0.3 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen3-vl-235b-a22b-instruct": { + id: "qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-235b-a22b-thinking": { + id: "qwen3-235b-a22b-thinking", + name: "Qwen3 235B A22B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.9000000000000004 }, + limit: { context: 262144, output: 81920 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "xAI Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Anthropic: Claude 3 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-03-07", + last_updated: "2024-03-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Anthropic: Claude 4.5 Haiku (20251001)", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, + limit: { context: 200000, output: 8192 }, + }, + "kimi-k2-0711": { + id: "kimi-k2-0711", + name: "Kimi K2 (07/11)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5700000000000001, output: 2.3 }, + limit: { context: 131072, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "OpenAI GPT-5", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "OpenAI o4 Mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "OpenAI GPT-4.1 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, + limit: { context: 1047576, output: 32768 }, + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Meta Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.7899999999999999 }, + limit: { context: 131072, output: 32678 }, + }, + "llama-4-maverick": { + id: "llama-4-maverick", + name: "Meta Llama 4 Maverick 17B 128E", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 8192 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 2 }, + limit: { context: 256000, output: 262144 }, + }, + "gemma2-9b-it": { + id: "gemma2-9b-it", + name: "Google Gemma 2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-25", + last_updated: "2024-06-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek-tng-r1t2-chimera": { + id: "deepseek-tng-r1t2-chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-02", + last_updated: "2025-07-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 130000, output: 163840 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Perplexity Sonar Pro", + family: "sonar-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-opus-4": { + id: "claude-opus-4", + name: "Anthropic: Claude Opus 4", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "OpenAI: GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral-Large", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-4.5-opus": { + id: "claude-4.5-opus", + name: "Anthropic: Claude Opus 4.5", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "chatgpt-4o-latest": { + id: "chatgpt-4o-latest", + name: "OpenAI ChatGPT-4o", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-14", + last_updated: "2024-08-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 20, cache_read: 2.5 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Meta Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.049999999999999996 }, + limit: { context: 16384, output: 16384 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Anthropic: Claude Sonnet 4", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Google Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.19999999999999998 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 16384 }, + }, + "llama-prompt-guard-2-86m": { + id: "llama-prompt-guard-2-86m", + name: "Meta Llama Prompt Guard 2 86M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 512, output: 2 }, + }, + "o3-mini": { + id: "o3-mini", + name: "OpenAI o3 Mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2023-10", + release_date: "2023-10-01", + last_updated: "2023-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Google Gemma 3 12B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.29 }, + limit: { context: 41000, output: 41000 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "xAI Grok 4 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "OpenAI GPT-5 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "OpenAI GPT-OSS 20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.19999999999999998 }, + limit: { context: 131072, output: 131072 }, + }, + "hermes-2-pro-llama-3-8b": { + id: "hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "OpenAI GPT-5.1 Chat", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Anthropic: Claude Opus 4.1 (20250805)", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Google Gemini 2.5 Pro", + family: "gemini-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.3125, cache_write: 1.25 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "OpenAI GPT-5 Nano", + family: "gpt-nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.39999999999999997, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "o1-mini": { + id: "o1-mini", + name: "OpenAI: o1-mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "OpenAI GPT-4o", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + vercel: { + id: "vercel", + env: ["AI_GATEWAY_API_KEY"], + npm: "@ai-sdk/gateway", + name: "Vercel AI Gateway", + doc: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + models: { + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "INTELLECT 3", + family: "intellect", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 131072 }, + }, + "zai/glm-5": { + id: "zai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131072 }, + }, + "zai/glm-4.7-flashx": { + id: "zai/glm-4.7-flashx", + name: "GLM 4.7 FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "zai/glm-4.5-air": { + id: "zai/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 128000, output: 96000 }, + }, + "zai/glm-4.5": { + id: "zai/glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 131072 }, + }, + "zai/glm-4.7-flash": { + id: "zai/glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.39999999999999997 }, + limit: { context: 200000, output: 131000 }, + }, + "zai/glm-4.6": { + id: "zai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.8 }, + limit: { context: 200000, output: 96000 }, + }, + "zai/glm-4.7": { + id: "zai/glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, + limit: { context: 202752, output: 120000 }, + }, + "zai/glm-4.6v-flash": { + id: "zai/glm-4.6v-flash", + name: "GLM-4.6V-Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 24000 }, + }, + "zai/glm-5-turbo": { + id: "zai/glm-5-turbo", + name: "GLM 5 Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24 }, + limit: { context: 202800, output: 131100 }, + }, + "zai/glm-4.5v": { + id: "zai/glm-4.5v", + name: "GLM 4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 66000, output: 66000 }, + }, + "zai/glm-4.6v": { + id: "zai/glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, + limit: { context: 128000, output: 24000 }, + }, + "nvidia/nemotron-nano-12b-v2-vl": { + id: "nvidia/nemotron-nano-12b-v2-vl", + name: "Nvidia Nemotron Nano 12B V2 VL", + family: "nemotron", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "Nvidia Nemotron Nano 9B V2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "Nemotron 3 Nano 30B A3B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 262144, output: 262144 }, + }, + "arcee-ai/trinity-large-preview": { + id: "arcee-ai/trinity-large-preview", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 131000, output: 131000 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Trinity Mini", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.29 }, + limit: { context: 262144, output: 32000 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo V2 Pro", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3, cache_read: 0.19999999999999998 }, + limit: { context: 1000000, output: 128000 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.024999999999999998 }, + limit: { context: 128000, output: 128000 }, + }, + "inception/mercury-coder-small": { + id: "inception/mercury-coder-small", + name: "Mercury Coder Small Beta", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-02-26", + last_updated: "2025-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 32000, output: 16384 }, + }, + "voyage/voyage-3-large": { + id: "voyage/voyage-3-large", + name: "voyage-3-large", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-code-3": { + id: "voyage/voyage-code-3", + name: "voyage-code-3", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-law-2": { + id: "voyage/voyage-law-2", + name: "voyage-law-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-finance-2": { + id: "voyage/voyage-finance-2", + name: "voyage-finance-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-code-2": { + id: "voyage/voyage-code-2", + name: "voyage-code-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4-lite": { + id: "voyage/voyage-4-lite", + name: "voyage-4-lite", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-3.5-lite": { + id: "voyage/voyage-3.5-lite", + name: "voyage-3.5-lite", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4-large": { + id: "voyage/voyage-4-large", + name: "voyage-4-large", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-3.5": { + id: "voyage/voyage-3.5", + name: "voyage-3.5", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4": { + id: "voyage/voyage-4", + name: "voyage-4", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "amazon/nova-2-lite": { + id: "amazon/nova-2-lite", + name: "Nova 2 Lite", + family: "nova", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 1000000 }, + }, + "amazon/titan-embed-text-v2": { + id: "amazon/titan-embed-text-v2", + name: "Titan Text Embeddings V2", + family: "titan-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-04", + last_updated: "2024-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "amazon/nova-lite": { + id: "amazon/nova-lite", + name: "Nova Lite", + family: "nova-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, + limit: { context: 300000, output: 8192 }, + }, + "amazon/nova-pro": { + id: "amazon/nova-pro", + name: "Nova Pro", + family: "nova-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, + limit: { context: 300000, output: 8192 }, + }, + "amazon/nova-micro": { + id: "amazon/nova-micro", + name: "Nova Micro", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, + limit: { context: 128000, output: 8192 }, + }, + "alibaba/qwen-3-235b": { + id: "alibaba/qwen-3-235b", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-max-preview": { + id: "alibaba/qwen3-max-preview", + name: "Qwen3 Max Preview", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3-next-80b-a3b-thinking": { + id: "alibaba/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 65536 }, + }, + "alibaba/qwen3-max-thinking": { + id: "alibaba/qwen3-max-thinking", + name: "Qwen 3 Max Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 256000, output: 65536 }, + }, + "alibaba/qwen3-vl-instruct": { + id: "alibaba/qwen3-vl-instruct", + name: "Qwen3 VL Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 131072, output: 129024 }, + }, + "alibaba/qwen3-embedding-8b": { + id: "alibaba/qwen3-embedding-8b", + name: "Qwen3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen3-coder-next": { + id: "alibaba/qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 256000, output: 256000 }, + }, + "alibaba/qwen3-coder": { + id: "alibaba/qwen3-coder", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.38, output: 1.53 }, + limit: { context: 262144, output: 66536 }, + }, + "alibaba/qwen-3-30b": { + id: "alibaba/qwen-3-30b", + name: "Qwen3-30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.29 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-embedding-0.6b": { + id: "alibaba/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen-3-14b": { + id: "alibaba/qwen-3-14b", + name: "Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-235b-a22b-thinking": { + id: "alibaba/qwen3-235b-a22b-thinking", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.9 }, + limit: { context: 262114, output: 262114 }, + }, + "alibaba/qwen3-vl-thinking": { + id: "alibaba/qwen3-vl-thinking", + name: "Qwen3 VL Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 8.4 }, + limit: { context: 131072, output: 129024 }, + }, + "alibaba/qwen3.5-flash": { + id: "alibaba/qwen3.5-flash", + name: "Qwen 3.5 Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.001, cache_write: 0.125 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen3-next-80b-a3b-instruct": { + id: "alibaba/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 1.1 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3.5-plus": { + id: "alibaba/qwen3.5-plus", + name: "Qwen 3.5 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, cache_read: 0.04, cache_write: 0.5 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen3-max": { + id: "alibaba/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen-3-32b": { + id: "alibaba/qwen-3-32b", + name: "Qwen 3.32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-coder-plus": { + id: "alibaba/qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1000000, output: 1000000 }, + }, + "alibaba/qwen3-embedding-4b": { + id: "alibaba/qwen3-embedding-4b", + name: "Qwen3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen3-coder-30b-a3b": { + id: "alibaba/qwen3-coder-30b-a3b", + name: "Qwen 3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "bfl/flux-pro-1.0-fill": { + id: "bfl/flux-pro-1.0-fill", + name: "FLUX.1 Fill [pro]", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-pro-1.1": { + id: "bfl/flux-pro-1.1", + name: "FLUX1.1 [pro]", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-kontext-max": { + id: "bfl/flux-kontext-max", + name: "FLUX.1 Kontext Max", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-kontext-pro": { + id: "bfl/flux-kontext-pro", + name: "FLUX.1 Kontext Pro", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-pro-1.1-ultra": { + id: "bfl/flux-pro-1.1-ultra", + name: "FLUX1.1 [pro] Ultra", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "mistral/codestral-embed": { + id: "mistral/codestral-embed", + name: "Codestral Embed", + family: "codestral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "mistral/devstral-small-2": { + id: "mistral/devstral-small-2", + name: "Devstral Small 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "mistral/devstral-2": { + id: "mistral/devstral-2", + name: "Devstral 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "mistral/mistral-large-3": { + id: "mistral/mistral-large-3", + name: "Mistral Large 3", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/mistral-embed": { + id: "mistral/mistral-embed", + name: "Mistral Embed", + family: "mistral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "mistral/ministral-14b": { + id: "mistral/ministral-14b", + name: "Ministral 14B", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/mistral-nemo": { + id: "mistral/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.17 }, + limit: { context: 60288, output: 16000 }, + }, + "mistral/mistral-medium": { + id: "mistral/mistral-medium", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 64000 }, + }, + "mistral/devstral-small": { + id: "mistral/devstral-small", + name: "Devstral Small 1.1", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 64000 }, + }, + "mistral/codestral": { + id: "mistral/codestral", + name: "Codestral (latest)", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-05-29", + last_updated: "2025-01-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 4096 }, + }, + "mistral/mixtral-8x22b-instruct": { + id: "mistral/mixtral-8x22b-instruct", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 64000, output: 64000 }, + }, + "mistral/mistral-small": { + id: "mistral/mistral-small", + name: "Mistral Small (latest)", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2024-09-01", + last_updated: "2024-09-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral/ministral-8b": { + id: "mistral/ministral-8b", + name: "Ministral 8B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/pixtral-large": { + id: "mistral/pixtral-large", + name: "Pixtral Large (latest)", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/pixtral-12b": { + id: "mistral/pixtral-12b", + name: "Pixtral 12B", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/magistral-small": { + id: "mistral/magistral-small", + name: "Magistral Small", + family: "magistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/magistral-medium": { + id: "mistral/magistral-medium", + name: "Magistral Medium (latest)", + family: "magistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 5 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral/ministral-3b": { + id: "mistral/ministral-3b", + name: "Ministral 3B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 128000 }, + }, + "kwaipilot/kat-coder-pro-v1": { + id: "kwaipilot/kat-coder-pro-v1", + name: "KAT-Coder-Pro V1", + family: "kat-coder", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-24", + last_updated: "2025-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "deepseek/deepseek-v3": { + id: "deepseek/deepseek-v3", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.77, output: 0.77 }, + limit: { context: 163840, output: 16384 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1 }, + limit: { context: 163840, output: 128000 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.4, cache_read: 0.22 }, + limit: { context: 163842, output: 8000 }, + }, + "deepseek/deepseek-v3.2-thinking": { + id: "deepseek/deepseek-v3.2-thinking", + name: "DeepSeek V3.2 Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 32768 }, + }, + "moonshotai/kimi-k2-turbo": { + id: "moonshotai/kimi-k2-turbo", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.4, output: 10 }, + limit: { context: 256000, output: 16384 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.47, output: 2, cache_read: 0.14 }, + limit: { context: 216144, output: 216144 }, + }, + "moonshotai/kimi-k2-thinking-turbo": { + id: "moonshotai/kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262114, output: 262114 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "google/gemini-embedding-001": { + id: "google/gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/imagen-4.0-fast-generate-001": { + id: "google/imagen-4.0-fast-generate-001", + name: "Imagen 4 Fast", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/text-embedding-005": { + id: "google/text-embedding-005", + name: "Text Embedding 005", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08", + last_updated: "2024-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemini-2.5-flash-preview-09-2025": { + id: "google/gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash": { + id: "google/gemini-3-flash", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/imagen-4.0-ultra-generate-001": { + id: "google/imagen-4.0-ultra-generate-001", + name: "Imagen 4 Ultra", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-24", + last_updated: "2025-05-24", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-3.1-flash-image-preview": { + id: "google/gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image Preview (Nano Banana 2)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 131072, output: 32768 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1000000, output: 65000 }, + }, + "google/text-multilingual-embedding-002": { + id: "google/text-multilingual-embedding-002", + name: "Text Multilingual Embedding 002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemini-embedding-2": { + id: "google/gemini-embedding-2", + name: "Gemini Embedding 2", + family: "gemini-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/gemini-2.5-flash-image": { + id: "google/gemini-2.5-flash-image", + name: "Nano Banana (Gemini 2.5 Flash Image)", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-3-pro-image": { + id: "google/gemini-3-pro-image", + name: "Nano Banana Pro (Gemini 3 Pro Image)", + family: "gemini-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 2, output: 120 }, + limit: { context: 65536, output: 32768 }, + }, + "google/gemini-2.5-flash-image-preview": { + id: "google/gemini-2.5-flash-image-preview", + name: "Nano Banana Preview (Gemini 2.5 Flash Image Preview)", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/imagen-4.0-generate-001": { + id: "google/imagen-4.0-generate-001", + name: "Imagen 4", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1000000, output: 64000 }, + }, + "google/gemini-2.0-flash": { + id: "google/gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-lite": { + id: "google/gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "meituan/longcat-flash-thinking": { + id: "meituan/longcat-flash-thinking", + name: "LongCat Flash Thinking", + family: "longcat", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 128000, output: 8192 }, + }, + "meituan/longcat-flash-thinking-2601": { + id: "meituan/longcat-flash-thinking-2601", + name: "LongCat Flash Thinking 2601", + family: "longcat", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32768, output: 32768 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "LongCat Flash Chat", + family: "longcat", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-30", + last_updated: "2025-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "bytedance/seed-1.6": { + id: "bytedance/seed-1.6", + name: "Seed 1.6", + family: "seed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 32000 }, + }, + "bytedance/seed-1.8": { + id: "bytedance/seed-1.8", + name: "Seed 1.8", + family: "seed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 64000 }, + }, + "meta/llama-3.1-8b": { + id: "meta/llama-3.1-8b", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.05 }, + limit: { context: 131072, output: 16384 }, + }, + "meta/llama-3.2-11b": { + id: "meta/llama-3.2-11b", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.16 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.1-70b": { + id: "meta/llama-3.1-70b", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta/llama-3.2-90b": { + id: "meta/llama-3.2-90b", + name: "Llama 3.2 90B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-1b": { + id: "meta/llama-3.2-1b", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-3b": { + id: "meta/llama-3.2-3b", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-4-maverick": { + id: "meta/llama-4-maverick", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.3-70b": { + id: "meta/llama-3.3-70b", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-scout": { + id: "meta/llama-4-scout", + name: "Llama-4-Scout-17B-16E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "vercel/v0-1.5-md": { + id: "vercel/v0-1.5-md", + name: "v0-1.5-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "vercel/v0-1.0-md": { + id: "vercel/v0-1.0-md", + name: "v0-1.0-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT 5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 128000, output: 272000 }, + }, + "openai/text-embedding-ada-002": { + id: "openai/text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "GPT 4o Mini Search Preview", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2023-09", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/text-embedding-3-small": { + id: "openai/text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/text-embedding-3-large": { + id: "openai/text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-09", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, input: 12289, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3 Pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5.1-thinking": { + id: "openai/gpt-5.1-thinking", + name: "GPT 5.1 Thinking", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT 5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/codex-mini": { + id: "openai/codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.38 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT 5.4 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "GPT-5.3 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "gpt-oss-safeguard-20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3, cache_read: 0.04 }, + limit: { context: 131072, input: 65536, output: 65536 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT 5.2 ", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT 5.4 Nano", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 131072, input: 98304, output: 32768 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-09", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 8192, input: 4096, output: 4096 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT 5.4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1-instant": { + id: "openai/gpt-5.1-instant", + name: "GPT-5.1 Instant", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "morph/morph-v3-large": { + id: "morph/morph-v3-large", + name: "Morph v3 Large", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 32000, output: 32000 }, + }, + "morph/morph-v3-fast": { + id: "morph/morph-v3-fast", + name: "Morph v3 Fast", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 16000, output: 16000 }, + }, + "cohere/embed-v4.0": { + id: "cohere/embed-v4.0", + name: "Embed v4.0", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "cohere/command-a": { + id: "cohere/command-a", + name: "Command A", + family: "command", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "minimax/minimax-m2.1-lightning": { + id: "minimax/minimax-m2.1-lightning", + name: "MiniMax M2.1 Lightning", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.4, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "MiniMax M2.5 High Speed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 0, output: 0 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "Minimax M2.7", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131000 }, + }, + "minimax/minimax-m2.7-highspeed": { + id: "minimax/minimax-m2.7-highspeed", + name: "MiniMax M2.7 High Speed", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131100 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.15, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 262114, output: 262114 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131000 }, + }, + "recraft/recraft-v2": { + id: "recraft/recraft-v2", + name: "Recraft V2", + family: "recraft", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "recraft/recraft-v3": { + id: "recraft/recraft-v3", + name: "Recraft V3", + family: "recraft", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "perplexity/sonar-reasoning-pro": { + id: "perplexity/sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Sonar", + family: "sonar", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-02", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar-reasoning": { + id: "perplexity/sonar-reasoning", + name: "Sonar Reasoning", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar-pro": { + id: "perplexity/sonar-pro", + name: "Sonar Pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-sonnet-20240620": { + id: "anthropic/claude-3.5-sonnet-20240620", + name: "Claude 3.5 Sonnet (2024-06-20)", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-opus": { + id: "anthropic/claude-3-opus", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "xai/grok-4-fast-reasoning": { + id: "xai/grok-4-fast-reasoning", + name: "Grok 4 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 256000 }, + }, + "xai/grok-4.20-non-reasoning-beta": { + id: "xai/grok-4.20-non-reasoning-beta", + name: "Grok 4.20 Beta Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-non-reasoning": { + id: "xai/grok-4.20-non-reasoning", + name: "Grok 4.20 Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-imagine-image": { + id: "xai/grok-imagine-image", + name: "Grok Imagine Image", + family: "grok", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4.20-reasoning": { + id: "xai/grok-4.20-reasoning", + name: "Grok 4.20 Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.1-fast-reasoning": { + id: "xai/grok-4.1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4.1-fast-non-reasoning": { + id: "xai/grok-4.1-fast-non-reasoning", + name: "Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4.20-reasoning-beta": { + id: "xai/grok-4.20-reasoning-beta", + name: "Grok 4.20 Beta Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-multi-agent": { + id: "xai/grok-4.20-multi-agent", + name: "Grok 4.20 Multi-Agent", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-imagine-image-pro": { + id: "xai/grok-imagine-image-pro", + name: "Grok Imagine Image Pro", + family: "grok", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4.20-multi-agent-beta": { + id: "xai/grok-4.20-multi-agent-beta", + name: "Grok 4.20 Multi Agent Beta", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-3-fast": { + id: "xai/grok-3-fast", + name: "Grok 3 Fast", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4-fast-non-reasoning": { + id: "xai/grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "xai/grok-3-mini-fast": { + id: "xai/grok-3-mini-fast", + name: "Grok 3 Mini Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-code-fast-1": { + id: "xai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-2-vision": { + id: "xai/grok-2-vision", + name: "Grok 2 Vision", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + }, + }, + openai: { + id: "openai", + env: ["OPENAI_API_KEY"], + npm: "@ai-sdk/openai", + name: "OpenAI", + doc: "https://platform.openai.com/docs/models", + models: { + "gpt-4o-2024-11-20": { + id: "gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 272000, output: 272000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2022-12", + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "codex-mini-latest": { + id: "codex-mini-latest", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o-2024-05-13": { + id: "gpt-4o-2024-05-13", + name: "GPT-4o (2024-05-13)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o3-deep-research": { + id: "o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, output: 100000 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o4-mini-deep-research": { + id: "o4-mini-deep-research", + name: "o4-mini-deep-research", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.3-codex-spark": { + id: "gpt-5.3-codex-spark", + name: "GPT-5.3 Codex Spark", + family: "gpt-codex-spark", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 100000, output: 32000 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "gpt-3.5-turbo": { + id: "gpt-3.5-turbo", + name: "GPT-3.5-turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2021-09-01", + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, + limit: { context: 16385, output: 4096 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "o3-pro": { + id: "o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "o1-pro": { + id: "o1-pro", + name: "o1-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2025-03-19", + last_updated: "2025-03-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4o-2024-08-06": { + id: "gpt-4o-2024-08-06", + name: "GPT-4o (2024-08-06)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-08-06", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + }, + }, + moark: { + id: "moark", + env: ["MOARK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://moark.com/v1", + name: "Moark", + doc: "https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90", + models: { + "GLM-4.7": { + id: "GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.5, output: 14 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.1, output: 8.4 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + morph: { + id: "morph", + env: ["MORPH_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.morphllm.com/v1", + name: "Morph", + doc: "https://docs.morphllm.com/api-reference/introduction", + models: { + auto: { + id: "auto", + name: "Auto", + family: "auto", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 1.55 }, + limit: { context: 32000, output: 32000 }, + }, + "morph-v3-fast": { + id: "morph-v3-fast", + name: "Morph v3 Fast", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 16000, output: 16000 }, + }, + "morph-v3-large": { + id: "morph-v3-large", + name: "Morph v3 Large", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 32000, output: 32000 }, + }, + }, + }, + cohere: { + id: "cohere", + env: ["COHERE_API_KEY"], + npm: "@ai-sdk/cohere", + name: "Cohere", + doc: "https://docs.cohere.com/docs/models", + models: { + "c4ai-aya-expanse-32b": { + id: "c4ai-aya-expanse-32b", + name: "Aya Expanse 32B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-24", + last_updated: "2024-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 128000, output: 4000 }, + }, + "command-a-03-2025": { + id: "command-a-03-2025", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "command-r7b-arabic-02-2025": { + id: "command-r7b-arabic-02-2025", + name: "Command R7B Arabic", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "command-a-translate-08-2025": { + id: "command-a-translate-08-2025", + name: "Command A Translate", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 8000 }, + }, + "command-r-08-2024": { + id: "command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "command-r-plus-08-2024": { + id: "command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "command-a-reasoning-08-2025": { + id: "command-a-reasoning-08-2025", + name: "Command A Reasoning", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 32000 }, + }, + "c4ai-aya-expanse-8b": { + id: "c4ai-aya-expanse-8b", + name: "Aya Expanse 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-24", + last_updated: "2024-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 8000, output: 4000 }, + }, + "c4ai-aya-vision-8b": { + id: "c4ai-aya-vision-8b", + name: "Aya Vision 8B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 16000, output: 4000 }, + }, + "c4ai-aya-vision-32b": { + id: "c4ai-aya-vision-32b", + name: "Aya Vision 32B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 16000, output: 4000 }, + }, + "command-r7b-12-2024": { + id: "command-r7b-12-2024", + name: "Command R7B", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-02-27", + last_updated: "2024-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "command-a-vision-07-2025": { + id: "command-a-vision-07-2025", + name: "Command A Vision", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 8000 }, + }, + }, + }, + v0: { + id: "v0", + env: ["V0_API_KEY"], + npm: "@ai-sdk/vercel", + name: "v0", + doc: "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", + models: { + "v0-1.0-md": { + id: "v0-1.0-md", + name: "v0-1.0-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "v0-1.5-md": { + id: "v0-1.5-md", + name: "v0-1.5-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "v0-1.5-lg": { + id: "v0-1.5-lg", + name: "v0-1.5-lg", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 512000, output: 32000 }, + }, + }, + }, + minimax: { + id: "minimax", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimax.io/anthropic/v1", + name: "MiniMax (minimax.io)", + doc: "https://platform.minimax.io/docs/guides/quickstart", + models: { + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + vultr: { + id: "vultr", + env: ["VULTR_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.vultrinference.com/v1", + name: "Vultr", + doc: "https://api.vultrinference.com/", + models: { + "Llama-3_1-Nemotron-Ultra-253B-v1": { + id: "Llama-3_1-Nemotron-Ultra-253B-v1", + name: "Llama 3.1 Nemotron Ultra 253B v1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.8 }, + limit: { context: 32000, output: 4096 }, + }, + "DeepSeek-R1-Distill-Qwen-32B": { + id: "DeepSeek-R1-Distill-Qwen-32B", + name: "DeepSeek R1 Distill Qwen 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 130000, output: 4096 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196000, output: 4096 }, + }, + "Kimi-K2.5": { + id: "Kimi-K2.5", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.75 }, + limit: { context: 261000, output: 32768 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-23", + last_updated: "2025-06-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 130000, output: 8192 }, + }, + "DeepSeek-V3.2": { + id: "DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.65 }, + limit: { context: 163000, output: 4096 }, + }, + "GLM-5-FP8": { + id: "GLM-5-FP8", + name: "GLM 5 FP8", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 3.1 }, + limit: { context: 202000, output: 131072 }, + }, + "NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { + id: "NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", + name: "NVIDIA Nemotron 3 Super 120B A12B NVFP4", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 260000, output: 8192 }, + }, + "DeepSeek-R1-Distill-Llama-70B": { + id: "DeepSeek-R1-Distill-Llama-70B", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 130000, output: 4096 }, + }, + }, + }, + baseten: { + id: "baseten", + env: ["BASETEN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://inference.baseten.co/v1", + name: "Baseten", + doc: "https://docs.baseten.co/development/model-apis/overview", + models: { + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 200000 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15 }, + limit: { context: 202752, output: 131072 }, + }, + "nvidia/Nemotron-120B-A12B": { + id: "nvidia/Nemotron-120B-A12B", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.75 }, + limit: { context: 262144, output: 32678 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204000, output: 204000 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 164000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-01", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 163800, output: 131100 }, + status: "deprecated", + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.77, output: 0.77 }, + limit: { context: 164000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-09-05", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-30", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 8192 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 128000, output: 128000 }, + }, + }, + }, + jiekou: { + id: "jiekou", + env: ["JIEKOU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.jiekou.ai/openai", + name: "Jiekou.AI", + doc: "https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev", + models: { + "gpt-5-codex": { + id: "gpt-5-codex", + name: "gpt-5-codex", + family: "gpt-codex", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "gpt-5-pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 108 }, + limit: { context: 400000, output: 272000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "claude-opus-4-5-20251101", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.5, output: 22.5 }, + limit: { context: 200000, output: 65536 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "grok-4-fast-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "gemini-2.5-flash-lite-preview-09-2025", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "gpt-5-chat-latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "gemini-2.5-pro-preview-06-05", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 1048576, output: 200000 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "gpt-5.1-codex-max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "grok-4-0709", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 256000, output: 8192 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "gpt-5.2-codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "claude-opus-4-6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "grok-code-fast-1", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 1.35 }, + limit: { context: 256000, output: 256000 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "gemini-2.5-flash-preview-05-20", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.135, output: 3.15 }, + limit: { context: 1048576, output: 200000 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "grok-4-1-fast-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 2.25 }, + limit: { context: 1048576, output: 65535 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "grok-4-1-fast-non-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "gpt-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + o3: { + id: "o3", + name: "o3", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40 }, + limit: { context: 131072, output: 131072 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "claude-opus-4-20250514", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 67.5 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "claude-sonnet-4-5-20250929", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "gemini-2.5-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "gpt-5.1-codex-mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.225, output: 1.8 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "gpt-5.2", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.575, output: 12.6 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 4.5 }, + limit: { context: 20000, output: 64000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "gemini-2.5-flash-lite-preview-06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "video", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "gpt-5.1-codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "gpt-5.2-pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 18.9, output: 151.2 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "gemini-3-pro-preview", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 10.8 }, + limit: { context: 1048576, output: 65536 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 131072, output: 131072 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "grok-4-fast-non-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.225, output: 1.8 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "claude-sonnet-4-20250514", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "claude-opus-4-1-20250805", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 67.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "gpt-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045, output: 0.36 }, + limit: { context: 400000, output: 128000 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5v": { + id: "zai-org/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 65536, output: 16384 }, + }, + "minimaxai/minimax-m1-80k": { + id: "minimaxai/minimax-m1-80k", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.14 }, + limit: { context: 163840, output: 163840 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "ERNIE 4.5 VL 424B A47B", + family: "ernie", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-300b-a47b-paddle": { + id: "baidu/ernie-4.5-300b-a47b-paddle", + name: "ERNIE 4.5 300B A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "qwen/qwen3-235b-a22b-instruct-2507": { + id: "qwen/qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.8 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen/qwen3-32b-fp8": { + id: "qwen/qwen3-32b-fp8", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.2 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-fp8": { + id: "qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "qwen/qwen3-coder-next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22b Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-fp8": { + id: "qwen/qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "xiaomimimo/mimo-v2-flash": { + id: "xiaomimimo/mimo-v2-flash", + name: "XiaomiMiMo/MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + }, + }, + meganova: { + id: "meganova", + env: ["MEGANOVA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.meganova.ai/v1", + name: "Meganova", + doc: "https://docs.meganova.ai", + models: { + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.9 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.56 }, + limit: { context: 202752, output: 131072 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 32000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.2 }, + limit: { context: 196608, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3.2-Exp": { + id: "deepseek-ai/DeepSeek-V3.2-Exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-10-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.15 }, + limit: { context: 163840, output: 64000 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.38 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.88 }, + limit: { context: 163840, output: 163840 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.6 }, + limit: { context: 262144, output: 262144 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 16384 }, + }, + "Qwen/Qwen3.5-Plus": { + id: "Qwen/Qwen3.5-Plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 16384, output: 16384 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 131072, output: 65536 }, + }, + "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + }, + }, + perplexity: { + id: "perplexity", + env: ["PERPLEXITY_API_KEY"], + npm: "@ai-sdk/perplexity", + name: "Perplexity", + doc: "https://docs.perplexity.ai", + models: { + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 4096 }, + }, + sonar: { + id: "sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Sonar Deep Research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-02-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, reasoning: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Sonar Pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + }, + }, + huggingface: { + id: "huggingface", + env: ["HF_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://router.huggingface.co/v1", + name: "Hugging Face", + doc: "https://huggingface.co/docs/inference-providers", + models: { + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131072 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 4096 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 5 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.4 }, + limit: { context: 163840, output: 65536 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi-K2-Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-01", + last_updated: "2026-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 32768 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Coder-Next": { + id: "Qwen/Qwen3-Coder-Next", + name: "Qwen3-Coder-Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3-Embedding-4B": { + id: "Qwen/Qwen3-Embedding-4B", + name: "Qwen 3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 2048 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen 3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 4096 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2 }, + limit: { context: 262144, output: 131072 }, + }, + }, + }, + anthropic: { + id: "anthropic", + env: ["ANTHROPIC_API_KEY"], + npm: "@ai-sdk/anthropic", + name: "Anthropic", + doc: "https://docs.anthropic.com/en/docs/about-claude/models", + models: { + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-haiku-latest": { + id: "claude-3-5-haiku-latest", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-sonnet-20240229": { + id: "claude-3-sonnet-20240229", + name: "Claude Sonnet 3", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "claude-sonnet-4-0": { + id: "claude-sonnet-4-0", + name: "Claude Sonnet 4 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-0": { + id: "claude-opus-4-0", + name: "Claude Opus 4 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-3-5-haiku-20241022": { + id: "claude-3-5-haiku-20241022", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-5-sonnet-20240620": { + id: "claude-3-5-sonnet-20240620", + name: "Claude Sonnet 3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-7-sonnet-latest": { + id: "claude-3-7-sonnet-latest", + name: "Claude Sonnet 3.7 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-opus-20240229": { + id: "claude-3-opus-20240229", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + "tencent-coding-plan": { + id: "tencent-coding-plan", + env: ["TENCENT_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.lkeap.cloud.tencent.com/coding/v3", + name: "Tencent Coding Plan (China)", + doc: "https://cloud.tencent.com/document/product/1772/128947", + models: { + "hunyuan-turbos": { + id: "hunyuan-turbos", + name: "Hunyuan-TurboS", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "tc-code-latest": { + id: "tc-code-latest", + name: "Auto", + family: "auto", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "hunyuan-t1": { + id: "hunyuan-t1", + name: "Hunyuan-T1", + family: "hunyuan", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-2.0-instruct": { + id: "hunyuan-2.0-instruct", + name: "Tencent HY 2.0 Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-2.0-thinking": { + id: "hunyuan-2.0-thinking", + name: "Tencent HY 2.0 Think", + family: "hunyuan", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 32768 }, + }, + }, + }, + "google-vertex-anthropic": { + id: "google-vertex-anthropic", + env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], + npm: "@ai-sdk/google-vertex/anthropic", + name: "Vertex (Anthropic)", + doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", + models: { + "claude-sonnet-4-5@20250929": { + id: "claude-sonnet-4-5@20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-1@20250805": { + id: "claude-opus-4-1@20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-3-7-sonnet@20250219": { + id: "claude-3-7-sonnet@20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4@20250514": { + id: "claude-opus-4@20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-opus-4-5@20251101": { + id: "claude-opus-4-5@20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-haiku@20241022": { + id: "claude-3-5-haiku@20241022", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-sonnet-4@20250514": { + id: "claude-sonnet-4@20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-sonnet@20241022": { + id: "claude-3-5-sonnet@20241022", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-6@default": { + id: "claude-opus-4-6@default", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "claude-haiku-4-5@20251001": { + id: "claude-haiku-4-5@20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-6@default": { + id: "claude-sonnet-4-6@default", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + friendli: { + id: "friendli", + env: ["FRIENDLI_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.friendli.ai/serverless/v1", + name: "Friendli", + doc: "https://friendli.ai/docs/guides/serverless_endpoints/introduction", + models: { + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 202752 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 202752 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-13", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 8000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + kilo: { + id: "kilo", + env: ["KILO_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.kilo.ai/api/gateway", + name: "Kilo Gateway", + doc: "https://kilo.ai", + models: { + "giga-potato-thinking": { + id: "giga-potato-thinking", + name: "Giga Potato Thinking (free)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "corethink:free": { + id: "corethink:free", + name: "CoreThink (free)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 78000, output: 8192 }, + }, + "morph-warp-grep-v2": { + id: "morph-warp-grep-v2", + name: "Morph: WarpGrep V2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "giga-potato": { + id: "giga-potato", + name: "Giga Potato (free)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "Prime Intellect: INTELLECT-3", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-26", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 131072 }, + }, + "allenai/olmo-2-0325-32b-instruct": { + id: "allenai/olmo-2-0325-32b-instruct", + name: "AllenAI: Olmo 2 32B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 128000, output: 32768 }, + }, + "allenai/olmo-3-7b-instruct": { + id: "allenai/olmo-3-7b-instruct", + name: "AllenAI: Olmo 3 7B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3-32b-think": { + id: "allenai/olmo-3-32b-think", + name: "AllenAI: Olmo 3 32B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/molmo-2-8b": { + id: "allenai/molmo-2-8b", + name: "AllenAI: Molmo2 8B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-09", + last_updated: "2026-01-31", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 36864, output: 36864 }, + }, + "allenai/olmo-3.1-32b-instruct": { + id: "allenai/olmo-3.1-32b-instruct", + name: "AllenAI: Olmo 3.1 32B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-07", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 65536, output: 32768 }, + }, + "allenai/olmo-3-7b-think": { + id: "allenai/olmo-3-7b-think", + name: "AllenAI: Olmo 3 7B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3.1-32b-think": { + id: "allenai/olmo-3.1-32b-think", + name: "AllenAI: Olmo 3.1 32B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, output: 65536 }, + }, + "nex-agi/deepseek-v3.1-nex-n1": { + id: "nex-agi/deepseek-v3.1-nex-n1", + name: "Nex AGI: DeepSeek V3.1 Nex N1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 163840 }, + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + id: "nvidia/llama-3.1-nemotron-70b-instruct", + name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-12", + last_updated: "2024-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 131072, output: 16384 }, + }, + "nvidia/nemotron-3-super-120b-a12b:free": { + id: "nvidia/nemotron-3-super-120b-a12b:free", + name: "NVIDIA: Nemotron 3 Super (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", + name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-nano-12b-v2-vl": { + id: "nvidia/nemotron-nano-12b-v2-vl", + name: "NVIDIA: Nemotron Nano 12B 2 VL", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-10-28", + last_updated: "2026-01-31", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "NVIDIA: Nemotron Nano 9B V2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "NVIDIA: Nemotron 3 Nano 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 262144, output: 52429 }, + }, + "ibm-granite/granite-4.0-h-micro": { + id: "ibm-granite/granite-4.0-h-micro", + name: "IBM: Granite 4.0 Micro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 131000, output: 32768 }, + }, + "arcee-ai/coder-large": { + id: "arcee-ai/coder-large", + name: "Arcee AI: Coder Large", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "arcee-ai/virtuoso-large": { + id: "arcee-ai/virtuoso-large", + name: "Arcee AI: Virtuoso Large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 1.2 }, + limit: { context: 131072, output: 64000 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Arcee AI: Trinity Mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/maestro-reasoning": { + id: "arcee-ai/maestro-reasoning", + name: "Arcee AI: Maestro Reasoning", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 3.3 }, + limit: { context: 131072, output: 32000 }, + }, + "arcee-ai/trinity-large-preview:free": { + id: "arcee-ai/trinity-large-preview:free", + name: "Arcee AI: Trinity Large Preview (free)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131000, output: 26200 }, + }, + "arcee-ai/spotlight": { + id: "arcee-ai/spotlight", + name: "Arcee AI: Spotlight", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131072, output: 65537 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "Xiaomi: MiMo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29, cache_read: 0.045 }, + limit: { context: 262144, output: 65536 }, + }, + "microsoft/phi-4": { + id: "microsoft/phi-4", + name: "Microsoft: Phi 4", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.14 }, + limit: { context: 16384, output: 16384 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "WizardLM-2 8x22B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-24", + last_updated: "2024-04-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 0.62 }, + limit: { context: 65535, output: 8000 }, + }, + "alfredpros/codellama-7b-instruct-solidity": { + id: "alfredpros/codellama-7b-instruct-solidity", + name: "AlfredPros: CodeLLaMa 7B Instruct Solidity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 4096, output: 4096 }, + }, + "liquid/lfm-2.2-6b": { + id: "liquid/lfm-2.2-6b", + name: "LiquidAI: LFM2-2.6B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.02 }, + limit: { context: 32768, output: 32768 }, + }, + "liquid/lfm-2-24b-a2b": { + id: "liquid/lfm-2-24b-a2b", + name: "LiquidAI: LFM2-24B-A2B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.12 }, + limit: { context: 32768, output: 32768 }, + }, + "liquid/lfm2-8b-a1b": { + id: "liquid/lfm2-8b-a1b", + name: "LiquidAI: LFM2-8B-A1B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.02 }, + limit: { context: 32768, output: 32768 }, + }, + "upstage/solar-pro-3": { + id: "upstage/solar-pro-3", + name: "Upstage: Solar Pro 3", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 32768 }, + }, + "switchpoint/router": { + id: "switchpoint/router", + name: "Switchpoint Router", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-07-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 3.4 }, + limit: { context: 131072, output: 32768 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Inception: Mercury 2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + "inception/mercury": { + id: "inception/mercury", + name: "Inception: Mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, output: 32000 }, + }, + "inception/mercury-coder": { + id: "inception/mercury-coder", + name: "Inception: Mercury Coder", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, output: 32000 }, + }, + "kilo-auto/balanced": { + id: "kilo-auto/balanced", + name: "Kilo Auto Balanced", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3 }, + limit: { context: 204800, output: 131072 }, + }, + "kilo-auto/free": { + id: "kilo-auto/free", + name: "Kilo Auto Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "kilo-auto/small": { + id: "kilo-auto/small", + name: "Kilo Auto Small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "kilo-auto/frontier": { + id: "kilo-auto/frontier", + name: "Kilo Auto Frontier", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "amazon/nova-micro-v1": { + id: "amazon/nova-micro-v1", + name: "Amazon: Nova Micro 1.0", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14 }, + limit: { context: 128000, output: 5120 }, + }, + "amazon/nova-lite-v1": { + id: "amazon/nova-lite-v1", + name: "Amazon: Nova Lite 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 300000, output: 5120 }, + }, + "amazon/nova-premier-v1": { + id: "amazon/nova-premier-v1", + name: "Amazon: Nova Premier 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 12.5 }, + limit: { context: 1000000, output: 32000 }, + }, + "amazon/nova-2-lite-v1": { + id: "amazon/nova-2-lite-v1", + name: "Amazon: Nova 2 Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65535 }, + }, + "amazon/nova-pro-v1": { + id: "amazon/nova-pro-v1", + name: "Amazon: Nova Pro 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 300000, output: 5120 }, + }, + "anthracite-org/magnum-v4-72b": { + id: "anthracite-org/magnum-v4-72b", + name: "Magnum v4 72B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 5 }, + limit: { context: 16384, output: 2048 }, + }, + "essentialai/rnj-1-instruct": { + id: "essentialai/rnj-1-instruct", + name: "EssentialAI: Rnj 1 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 6554 }, + }, + "gryphe/mythomax-l2-13b": { + id: "gryphe/mythomax-l2-13b", + name: "MythoMax 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 4096, output: 4096 }, + }, + "alibaba/tongyi-deepresearch-30b-a3b": { + id: "alibaba/tongyi-deepresearch-30b-a3b", + name: "Tongyi DeepResearch 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 131072, output: 131072 }, + }, + "aion-labs/aion-1.0-mini": { + id: "aion-labs/aion-1.0-mini", + name: "AionLabs: Aion-1.0-Mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 1.4 }, + limit: { context: 131072, output: 32768 }, + }, + "aion-labs/aion-2.0": { + id: "aion-labs/aion-2.0", + name: "AionLabs: Aion-2.0", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.6 }, + limit: { context: 131072, output: 32768 }, + }, + "aion-labs/aion-rp-llama-3.1-8b": { + id: "aion-labs/aion-rp-llama-3.1-8b", + name: "AionLabs: Aion-RP 1.0 (8B)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.6 }, + limit: { context: 32768, output: 32768 }, + }, + "aion-labs/aion-1.0": { + id: "aion-labs/aion-1.0", + name: "AionLabs: Aion-1.0", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 4, output: 8 }, + limit: { context: 131072, output: 32768 }, + }, + "stepfun/step-3.5-flash:free": { + id: "stepfun/step-3.5-flash:free", + name: "StepFun: Step 3.5 Flash (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "StepFun: Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 256000 }, + }, + "relace/relace-search": { + id: "relace/relace-search", + name: "Relace: Relace Search", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3 }, + limit: { context: 256000, output: 128000 }, + }, + "relace/relace-apply-3": { + id: "relace/relace-apply-3", + name: "Relace: Relace Apply 3", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-09-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 1.25 }, + limit: { context: 256000, output: 128000 }, + }, + "thedrummer/rocinante-12b": { + id: "thedrummer/rocinante-12b", + name: "TheDrummer: Rocinante 12B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.43 }, + limit: { context: 32768, output: 32768 }, + }, + "thedrummer/cydonia-24b-v4.1": { + id: "thedrummer/cydonia-24b-v4.1", + name: "TheDrummer: Cydonia 24B V4.1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "thedrummer/unslopnemo-12b": { + id: "thedrummer/unslopnemo-12b", + name: "TheDrummer: UnslopNemo 12B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "thedrummer/skyfall-36b-v2": { + id: "thedrummer/skyfall-36b-v2", + name: "TheDrummer: Skyfall 36B V2", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "mancer/weaver": { + id: "mancer/weaver", + name: "Mancer: Weaver (alpha)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-08-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 1 }, + limit: { context: 8000, output: 2000 }, + }, + "tencent/hunyuan-a13b-instruct": { + id: "tencent/hunyuan-a13b-instruct", + name: "Tencent: Hunyuan A13B Instruct", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131072, output: 131072 }, + }, + "kwaipilot/kat-coder-pro": { + id: "kwaipilot/kat-coder-pro", + name: "Kwaipilot: KAT-Coder-Pro V1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.207, output: 0.828, cache_read: 0.0414 }, + limit: { context: 256000, output: 128000 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek: R1 0528", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.15, cache_read: 0.2 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek: R1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek: DeepSeek V3.2 Speciale", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.135 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-chat-v3.1": { + id: "deepseek/deepseek-chat-v3.1", + name: "DeepSeek: DeepSeek V3.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 32768, output: 7168 }, + }, + "deepseek/deepseek-chat-v3-0324": { + id: "deepseek/deepseek-chat-v3-0324", + name: "DeepSeek: DeepSeek V3 0324", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.77, cache_read: 0.095 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek: R1 Distill Llama 70B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.8, cache_read: 0.015 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek: DeepSeek V3.1 Terminus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.21, output: 0.79, cache_read: 0.13 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek: DeepSeek V3.2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.38, cache_read: 0.125 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-chat": { + id: "deepseek/deepseek-chat", + name: "DeepSeek: DeepSeek V3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.32, output: 0.89, cache_read: 0.15 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-qwen-32b": { + id: "deepseek/deepseek-r1-distill-qwen-32b", + name: "DeepSeek: R1 Distill Qwen 32B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.29 }, + limit: { context: 32768, output: 32768 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek: DeepSeek V3.2 Exp", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "alpindale/goliath-120b": { + id: "alpindale/goliath-120b", + name: "Goliath 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-11-10", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.75, output: 7.5 }, + limit: { context: 6144, output: 1024 }, + }, + "openrouter/hunter-alpha": { + id: "openrouter/hunter-alpha", + name: "Hunter Alpha", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1048576, output: 32000 }, + }, + "openrouter/auto": { + id: "openrouter/auto", + name: "Auto Router", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000000, output: 32768 }, + }, + "openrouter/free": { + id: "openrouter/free", + name: "Free Models Router", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 32768 }, + }, + "openrouter/healer-alpha": { + id: "openrouter/healer-alpha", + name: "Healer Alpha", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32000 }, + }, + "openrouter/bodybuilder": { + id: "openrouter/bodybuilder", + name: "Body Builder (beta)", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + status: "beta", + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "MoonshotAI: Kimi K2 0711", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131000, output: 26215 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "MoonshotAI: Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.15 }, + limit: { context: 131072, output: 26215 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "MoonshotAI: Kimi K2.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.2 }, + limit: { context: 262144, output: 65535 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "MoonshotAI: Kimi K2 Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.47, output: 2, cache_read: 0.2 }, + limit: { context: 131072, output: 65535 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "Baidu: ERNIE 4.5 VL 424B A47B ", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2026-01", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "Baidu: ERNIE 4.5 VL 28B A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.56 }, + limit: { context: 30000, output: 8000 }, + }, + "baidu/ernie-4.5-21b-a3b-thinking": { + id: "baidu/ernie-4.5-21b-a3b-thinking", + name: "Baidu: ERNIE 4.5 21B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131072, output: 65536 }, + }, + "baidu/ernie-4.5-300b-a47b": { + id: "baidu/ernie-4.5-300b-a47b", + name: "Baidu: ERNIE 4.5 300B A47B ", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "baidu/ernie-4.5-21b-a3b": { + id: "baidu/ernie-4.5-21b-a3b", + name: "Baidu: ERNIE 4.5 21B A3B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 120000, output: 8000 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview-customtools": { + id: "google/gemini-3.1-pro-preview-customtools", + name: "Google: Gemini 3.1 Pro Preview Custom Tools", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro-preview-05-06": { + id: "google/gemini-2.5-pro-preview-05-06", + name: "Google: Gemini 2.5 Pro Preview 05-06", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Google: Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, reasoning: 2.5, cache_read: 0.03, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-2.5-pro-preview": { + id: "google/gemini-2.5-pro-preview", + name: "Google: Gemini 2.5 Pro Preview 06-05", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-05", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-flash-image-preview": { + id: "google/gemini-3.1-flash-image-preview", + name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 65536, output: 65536 }, + }, + "google/gemini-2.0-flash-001": { + id: "google/gemini-2.0-flash-001", + name: "Google: Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-11", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025, cache_write: 0.083333 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Google: Gemini 3.1 Flash Lite Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, reasoning: 1.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Google: Gemini 3 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, reasoning: 3, cache_read: 0.05, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-27b-it": { + id: "google/gemma-2-27b-it", + name: "Google: Gemma 2 27B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-06-24", + last_updated: "2024-06-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 0.65 }, + limit: { context: 8192, output: 2048 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Google: Gemini 2.5 Flash Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Google: Gemini 3.1 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-lite-001": { + id: "google/gemini-2.0-flash-lite-001", + name: "Google: Gemini 2.0 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-11", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-2.5-flash-image": { + id: "google/gemini-2.5-flash-image", + name: "Google: Nano Banana (Gemini 2.5 Flash Image)", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-08", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-3-pro-image-preview": { + id: "google/gemini-3-pro-image-preview", + name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 65536, output: 32768 }, + }, + "google/gemma-2-9b-it": { + id: "google/gemma-2-9b-it", + name: "Google: Gemma 2 9B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-06-28", + last_updated: "2024-06-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 8192, output: 1639 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Google: Gemma 3n 4B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 32768, output: 6554 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Google: Gemini 3 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-18", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, cache_read: 0.2, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Google: Gemma 3 12B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.13, cache_read: 0.015 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemma-3-4b-it": { + id: "google/gemma-3-4b-it", + name: "Google: Gemma 3 4B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.08 }, + limit: { context: 131072, output: 19200 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Google: Gemma 3 27B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11, cache_read: 0.02 }, + limit: { context: 128000, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Google: Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "Z.ai: GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 2.3 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "Z.ai: GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.85, cache_read: 0.025 }, + limit: { context: 131072, output: 98304 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "Z.ai: GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.175 }, + limit: { context: 131072, output: 98304 }, + }, + "z-ai/glm-4.7-flash": { + id: "z-ai/glm-4.7-flash", + name: "Z.ai: GLM 4.7 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, + limit: { context: 202752, output: 40551 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "Z.ai: GLM 4.6", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.9, cache_read: 0.175 }, + limit: { context: 204800, output: 204800 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "Z.ai: GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 1.98, cache_read: 0.2 }, + limit: { context: 202752, output: 65535 }, + }, + "z-ai/glm-4-32b": { + id: "z-ai/glm-4-32b", + name: "Z.ai: GLM 4 32B ", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 32768 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "Z.ai: GLM 4.5V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 65536, output: 16384 }, + }, + "z-ai/glm-4.6v": { + id: "z-ai/glm-4.6v", + name: "Z.ai: GLM 4.6V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2026-01-10", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131072, output: 131072 }, + }, + "deepcogito/cogito-v2.1-671b": { + id: "deepcogito/cogito-v2.1-671b", + name: "Deep Cogito: Cogito v2.1 671B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, output: 32768 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "Meituan: LongCat Flash Chat", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8, cache_read: 0.2 }, + limit: { context: 131072, output: 131072 }, + }, + "bytedance/ui-tars-1.5-7b": { + id: "bytedance/ui-tars-1.5-7b", + name: "ByteDance: UI-TARS 7B ", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-07-23", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, output: 2048 }, + }, + "undi95/remm-slerp-l2-13b": { + id: "undi95/remm-slerp-l2-13b", + name: "ReMM SLERP 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-07-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 0.65 }, + limit: { context: 6144, output: 4096 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen: Qwen3.5-27B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.195, output: 1.56 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-vl-plus": { + id: "qwen/qwen-vl-plus", + name: "Qwen: Qwen VL Plus", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-25", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1365, output: 0.4095, cache_read: 0.042 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen-vl-max": { + id: "qwen/qwen-vl-max", + name: "Qwen: Qwen VL Max", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen: Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0975, output: 0.78 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-2.5-vl-7b-instruct": { + id: "qwen/qwen-2.5-vl-7b-instruct", + name: "Qwen: Qwen2.5-VL 7B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-28", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen3-max-thinking": { + id: "qwen/qwen3-max-thinking", + name: "Qwen: Qwen3 Max Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.78, output: 3.9 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen3-14b": { + id: "qwen/qwen3-14b", + name: "Qwen: Qwen3 14B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24, cache_read: 0.025 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen: Qwen3.5-35B-A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1625, output: 1.3 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwq-32b": { + id: "qwen/qwq-32b", + name: "Qwen: QwQ 32B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-coder-flash": { + id: "qwen/qwen3-coder-flash", + name: "Qwen: Qwen3 Coder Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.195, output: 0.975, cache_read: 0.06 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-vl-8b-thinking": { + id: "qwen/qwen3-vl-8b-thinking", + name: "Qwen: Qwen3 VL 8B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.117, output: 1.365 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen2.5-vl-32b-instruct": { + id: "qwen/qwen2.5-vl-32b-instruct", + name: "Qwen: Qwen2.5 VL 32B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.025 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen/qwen-max": { + id: "qwen/qwen-max", + name: "Qwen: Qwen-Max ", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-03", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.04, output: 4.16, cache_read: 0.32 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen2.5-coder-7b-instruct": { + id: "qwen/qwen2.5-coder-7b-instruct", + name: "Qwen: Qwen2.5 Coder 7B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-17", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "Qwen: Qwen3 Coder Next", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.75, cache_read: 0.035 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-turbo": { + id: "qwen/qwen-turbo", + name: "Qwen: Qwen-Turbo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0325, output: 0.13, cache_read: 0.01 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen: Qwen3 Coder 480B A35B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1, cache_read: 0.022 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen3-8b": { + id: "qwen/qwen3-8b", + name: "Qwen: Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.05 }, + limit: { context: 40960, output: 8192 }, + }, + "qwen/qwen3-32b": { + id: "qwen/qwen3-32b", + name: "Qwen: Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3-235b-a22b-2507": { + id: "qwen/qwen3-235b-a22b-2507", + name: "Qwen: Qwen3 235B A22B Instruct 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.071, output: 0.1 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen: Qwen3.5 397B A17B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39, output: 2.34 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-2.5-7b-instruct": { + id: "qwen/qwen-2.5-7b-instruct", + name: "Qwen: Qwen2.5 7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.1 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen-2.5-coder-32b-instruct": { + id: "qwen/qwen-2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-11-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2, cache_read: 0.015 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3.5-plus-02-15": { + id: "qwen/qwen3.5-plus-02-15", + name: "Qwen: Qwen3.5 Plus 2026-02-15", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.26, output: 1.56 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + id: "qwen/qwen3-30b-a3b-instruct-2507", + name: "Qwen: Qwen3 30B A3B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.3, cache_read: 0.04 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen: Qwen2.5 VL 72B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-02-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-235b-a22b": { + id: "qwen/qwen3-235b-a22b", + name: "Qwen: Qwen3 235B A22B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.455, output: 1.82, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen: Qwen3 Coder 30B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + id: "qwen/qwen3-vl-235b-a22b-instruct", + name: "Qwen: Qwen3 VL 235B A22B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.88, cache_read: 0.11 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen-2.5-72b-instruct": { + id: "qwen/qwen-2.5-72b-instruct", + name: "Qwen2.5 72B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.39 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + id: "qwen/qwen3-vl-30b-a3b-thinking", + name: "Qwen: Qwen3 VL 30B A3B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 1.56 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + id: "qwen/qwen3-vl-235b-a22b-thinking", + name: "Qwen: Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.6 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + id: "qwen/qwen3-30b-a3b-thinking-2507", + name: "Qwen: Qwen3 30B A3B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen-plus": { + id: "qwen/qwen-plus", + name: "Qwen: Qwen-Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen: Qwen3 235B A22B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-9b": { + id: "qwen/qwen3.5-9b", + name: "Qwen: Qwen3.5-9B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 256000, output: 32768 }, + }, + "qwen/qwen-plus-2025-07-28": { + id: "qwen/qwen-plus-2025-07-28", + name: "Qwen: Qwen Plus 0728", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.78 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + id: "qwen/qwen3-vl-30b-a3b-instruct", + name: "Qwen: Qwen3 VL 30B A3B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen: Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 1.1 }, + limit: { context: 131072, output: 52429 }, + }, + "qwen/qwen3-vl-32b-instruct": { + id: "qwen/qwen3-vl-32b-instruct", + name: "Qwen: Qwen3 VL 32B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.104, output: 0.416 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-8b-instruct": { + id: "qwen/qwen3-vl-8b-instruct", + name: "Qwen: Qwen3 VL 8B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen: Qwen3.5-122B-A10B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.08 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen: Qwen3 Max", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen3-30b-a3b": { + id: "qwen/qwen3-30b-a3b", + name: "Qwen: Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.28, cache_read: 0.03 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3-coder-plus": { + id: "qwen/qwen3-coder-plus", + name: "Qwen: Qwen3 Coder Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 3.25, cache_read: 0.2 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen-plus-2025-07-28:thinking": { + id: "qwen/qwen-plus-2025-07-28:thinking", + name: "Qwen: Qwen Plus 0728 (thinking)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.78 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3.5-flash-02-23": { + id: "qwen/qwen3.5-flash-02-23", + name: "Qwen: Qwen3.5-Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "eleutherai/llemma_7b": { + id: "eleutherai/llemma_7b", + name: "EleutherAI: Llemma 7b", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 4096, output: 4096 }, + }, + "x-ai/grok-3": { + id: "x-ai/grok-3", + name: "xAI: Grok 3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "xAI: Grok Code Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "xAI: Grok 4 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "xAI: Grok 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 51200 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "xAI: Grok 4.1 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-3-mini-beta": { + id: "x-ai/grok-3-mini-beta", + name: "xAI: Grok 3 Mini Beta", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-3-mini": { + id: "x-ai/grok-3-mini", + name: "xAI: Grok 3 Mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-code-fast-1:optimized:free": { + id: "x-ai/grok-code-fast-1:optimized:free", + name: "xAI: Grok Code Fast 1 Optimized (experimental, free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4.20-multi-agent-beta": { + id: "x-ai/grok-4.20-multi-agent-beta", + name: "xAI: Grok 4.20 Multi-Agent Beta", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 2000000, output: 32768 }, + }, + "x-ai/grok-4.20-beta": { + id: "x-ai/grok-4.20-beta", + name: "xAI: Grok 4.20 Beta", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 2000000, output: 32768 }, + }, + "x-ai/grok-3-beta": { + id: "x-ai/grok-3-beta", + name: "xAI: Grok 3 Beta", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-4-scout": { + id: "meta-llama/llama-4-scout", + name: "Meta: Llama 4 Scout", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 327680, output: 16384 }, + }, + "meta-llama/llama-3.1-70b-instruct": { + id: "meta-llama/llama-3.1-70b-instruct", + name: "Meta: Llama 3.1 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Meta: Llama 3.3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.32 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-3-70b-instruct": { + id: "meta-llama/llama-3-70b-instruct", + name: "Meta: Llama 3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + id: "meta-llama/llama-3.2-11b-vision-instruct", + name: "Meta: Llama 3.2 11B Vision Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.049, output: 0.049 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-3.2-3b-instruct": { + id: "meta-llama/llama-3.2-3b-instruct", + name: "Meta: Llama 3.2 3B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 80000, output: 16384 }, + }, + "meta-llama/llama-guard-3-8b": { + id: "meta-llama/llama-guard-3-8b", + name: "Llama Guard 3 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-18", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-3.2-1b-instruct": { + id: "meta-llama/llama-3.2-1b-instruct", + name: "Meta: Llama 3.2 1B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-18", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 60000, output: 12000 }, + }, + "meta-llama/llama-3.1-405b-instruct": { + id: "meta-llama/llama-3.1-405b-instruct", + name: "Meta: Llama 3.1 405B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-16", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 4 }, + limit: { context: 131000, output: 26200 }, + }, + "meta-llama/llama-4-maverick": { + id: "meta-llama/llama-4-maverick", + name: "Meta: Llama 4 Maverick", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-12-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048576, output: 16384 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Meta: Llama 3.1 8B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 16384, output: 16384 }, + }, + "meta-llama/llama-guard-4-12b": { + id: "meta-llama/llama-guard-4-12b", + name: "Meta: Llama Guard 4 12B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 163840, output: 32768 }, + }, + "meta-llama/llama-3-8b-instruct": { + id: "meta-llama/llama-3-8b-instruct", + name: "Meta: Llama 3 8B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-25", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.04 }, + limit: { context: 8192, output: 16384 }, + }, + "meta-llama/llama-3.1-405b": { + id: "meta-llama/llama-3.1-405b", + name: "Meta: Llama 3.1 405B (base)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 4 }, + limit: { context: 32768, output: 32768 }, + }, + "tngtech/deepseek-r1t2-chimera": { + id: "tngtech/deepseek-r1t2-chimera", + name: "TNG: DeepSeek R1T2 Chimera", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-08", + last_updated: "2025-07-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85, cache_read: 0.125 }, + limit: { context: 163840, output: 163840 }, + }, + "mistralai/voxtral-small-24b-2507": { + id: "mistralai/voxtral-small-24b-2507", + name: "Mistral: Voxtral Small 24B 2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32000, output: 6400 }, + }, + "mistralai/ministral-3b-2512": { + id: "mistralai/ministral-3b-2512", + name: "Mistral: Ministral 3 3B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/mistral-saba": { + id: "mistralai/mistral-saba", + name: "Mistral: Saba", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral: Mistral Medium 3", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-small-24b-instruct-2501": { + id: "mistralai/mistral-small-24b-instruct-2501", + name: "Mistral: Mistral Small 3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 32768, output: 16384 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Mistral: Codestral 2508", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 51200 }, + }, + "mistralai/pixtral-large-2411": { + id: "mistralai/pixtral-large-2411", + name: "Mistral: Pixtral Large 2411", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + id: "mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral: Mistral Small 3.1 24B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.56, cache_read: 0.015 }, + limit: { context: 128000, output: 131072 }, + }, + "mistralai/mistral-small-creative": { + id: "mistralai/mistral-small-creative", + name: "Mistral: Mistral Small Creative", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/mistral-large-2512": { + id: "mistralai/mistral-large-2512", + name: "Mistral: Mistral Large 3 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-01", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 52429 }, + }, + "mistralai/ministral-8b-2512": { + id: "mistralai/ministral-8b-2512", + name: "Mistral: Ministral 3 8B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, output: 32768 }, + }, + "mistralai/ministral-14b-2512": { + id: "mistralai/ministral-14b-2512", + name: "Mistral: Ministral 3 14B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, output: 52429 }, + }, + "mistralai/devstral-medium": { + id: "mistralai/devstral-medium", + name: "Mistral: Devstral Medium", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-large-2407": { + id: "mistralai/mistral-large-2407", + name: "Mistral Large 2407", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-19", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/mistral-nemo": { + id: "mistralai/mistral-nemo", + name: "Mistral: Mistral Nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-01", + last_updated: "2024-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 131072, output: 16384 }, + }, + "mistralai/devstral-2512": { + id: "mistralai/devstral-2512", + name: "Mistral: Devstral 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.025 }, + limit: { context: 262144, output: 65536 }, + }, + "mistralai/devstral-small": { + id: "mistralai/devstral-small", + name: "Mistral: Devstral Small 1.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-07", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + id: "mistralai/mistral-small-3.2-24b-instruct", + name: "Mistral: Mistral Small 3.2 24B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.18, cache_read: 0.03 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/mixtral-8x22b-instruct": { + id: "mistralai/mixtral-8x22b-instruct", + name: "Mistral: Mixtral 8x22B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 65536, output: 13108 }, + }, + "mistralai/mistral-large-2411": { + id: "mistralai/mistral-large-2411", + name: "Mistral Large 2411", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-11-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-7b-instruct-v0.1": { + id: "mistralai/mistral-7b-instruct-v0.1", + name: "Mistral: Mistral 7B Instruct v0.1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 2824, output: 565 }, + }, + "mistralai/mistral-large": { + id: "mistralai/mistral-large", + name: "Mistral Large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 25600 }, + }, + "mistralai/mixtral-8x7b-instruct": { + id: "mistralai/mixtral-8x7b-instruct", + name: "Mistral: Mixtral 8x7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-12-10", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.54, output: 0.54 }, + limit: { context: 32768, output: 16384 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral: Mistral Medium 3.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-4o-2024-11-20": { + id: "openai/gpt-4o-2024-11-20", + name: "OpenAI: GPT-4o (2024-11-20)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-20", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "OpenAI: GPT-5.3-Codex", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-02-25", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "OpenAI: GPT-5 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "OpenAI: GPT-5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "OpenAI: GPT-4o-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "OpenAI: GPT-4o-mini Search Preview", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o:extended": { + id: "openai/gpt-4o:extended", + name: "OpenAI: GPT-4o (extended)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 18 }, + limit: { context: 128000, output: 64000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "OpenAI: GPT-5.1-Codex-Max", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-2024-05-13": { + id: "openai/gpt-4o-2024-05-13", + name: "OpenAI: GPT-4o (2024-05-13)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-4o-audio-preview": { + id: "openai/gpt-4o-audio-preview", + name: "OpenAI: GPT-4o Audio", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-15", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-mini-2024-07-18": { + id: "openai/gpt-4o-mini-2024-07-18", + name: "OpenAI: GPT-4o-mini (2024-07-18)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "OpenAI: GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-audio": { + id: "openai/gpt-audio", + name: "OpenAI: GPT Audio", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "OpenAI: o3 Deep Research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-3.5-turbo-16k": { + id: "openai/gpt-3.5-turbo-16k", + name: "OpenAI: GPT-3.5 Turbo 16k", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-08-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI: o1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-05", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "OpenAI: GPT-5.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-image-mini": { + id: "openai/gpt-5-image-mini", + name: "OpenAI: GPT-5 Image Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "OpenAI: GPT-5.2 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "OpenAI: o4 Mini Deep Research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "OpenAI: GPT-5 Chat", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "OpenAI: GPT-5.1 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI: o3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo-preview": { + id: "openai/gpt-4-turbo-preview", + name: "OpenAI: GPT-4 Turbo Preview", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "OpenAI: GPT-5 Image", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 10, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "OpenAI: GPT-4.1 Nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-3.5-turbo-0613": { + id: "openai/gpt-3.5-turbo-0613", + name: "OpenAI: GPT-3.5 Turbo (older v0613)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 4095, output: 4096 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "OpenAI: GPT-3.5 Turbo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI: gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.039, output: 0.19 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "OpenAI: GPT-5.1-Codex-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "OpenAI: GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "OpenAI: GPT-4.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "OpenAI: o3 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "OpenAI: GPT-4 Turbo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-09-13", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "OpenAI: GPT-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI: o4 Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "OpenAI: GPT-4.1 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4-0314": { + id: "openai/gpt-4-0314", + name: "OpenAI: GPT-4 (older v0314)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-05-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8191, output: 4096 }, + }, + "openai/gpt-audio-mini": { + id: "openai/gpt-audio-mini", + name: "OpenAI: GPT Audio Mini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "OpenAI: GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-03-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "OpenAI: GPT-5.4 Pro", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-03-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "OpenAI: GPT-5.3 Chat", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2026-03-04", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4-1106-preview": { + id: "openai/gpt-4-1106-preview", + name: "OpenAI: GPT-4 Turbo (older v1106)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-11-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "OpenAI: gpt-oss-safeguard-20b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "OpenAI: o1-pro", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + release_date: "2025-03-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "OpenAI: GPT-5.1-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "OpenAI: GPT-5.2 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI: o3 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-20", + last_updated: "2026-03-15", + modalities: { input: ["pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-2024-08-06": { + id: "openai/gpt-4o-2024-08-06", + name: "OpenAI: GPT-4o (2024-08-06)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "OpenAI: GPT-5 Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "OpenAI: gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-4": { + id: "openai/gpt-4", + name: "OpenAI: GPT-4", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-03-14", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8191, output: 4096 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "OpenAI: GPT-5 Nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "OpenAI: GPT-3.5 Turbo Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-03-01", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4095, output: 4096 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "OpenAI: o3 Mini High", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2026-03-15", + modalities: { input: ["pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o4-mini-high": { + id: "openai/o4-mini-high", + name: "OpenAI: o4 Mini High", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2025-04-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "OpenAI: GPT-4o", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-search-preview": { + id: "openai/gpt-4o-search-preview", + name: "OpenAI: GPT-4o Search Preview", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "morph/morph-v3-fast": { + id: "morph/morph-v3-fast", + name: "Morph: Morph V3 Fast", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 81920, output: 38000 }, + }, + "morph/morph-v3-large": { + id: "morph/morph-v3-large", + name: "Morph: Morph V3 Large", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 262144, output: 131072 }, + }, + "cohere/command-r-08-2024": { + id: "cohere/command-r-08-2024", + name: "Cohere: Command R (08-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-r-plus-08-2024": { + id: "cohere/command-r-plus-08-2024", + name: "Cohere: Command R+ (08-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-r7b-12-2024": { + id: "cohere/command-r7b-12-2024", + name: "Cohere: Command R7B (12-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-02-27", + last_updated: "2024-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-a": { + id: "cohere/command-a", + name: "Cohere: Command A", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8192 }, + }, + "minimax/minimax-m1": { + id: "minimax/minimax-m1", + name: "MiniMax: MiniMax M1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax: MiniMax-01", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000192, output: 1000192 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax: MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.95, cache_read: 0.03 }, + limit: { context: 196608, output: 39322 }, + }, + "minimax/minimax-m2-her": { + id: "minimax/minimax-m2-her", + name: "MiniMax: MiniMax M2-her", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 65536, output: 2048 }, + }, + "minimax/minimax-m2.5:free": { + id: "minimax/minimax-m2.5:free", + name: "MiniMax: MiniMax M2.5 (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax: MiniMax M2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.255, output: 1, cache_read: 0.03 }, + limit: { context: 196608, output: 196608 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax: MiniMax M2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.2, cache_read: 0.029 }, + limit: { context: 196608, output: 196608 }, + }, + "sao10k/l3.1-70b-hanami-x1": { + id: "sao10k/l3.1-70b-hanami-x1", + name: "Sao10K: Llama 3.1 70B Hanami x1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-01-08", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 16000, output: 16000 }, + }, + "sao10k/l3-lunaris-8b": { + id: "sao10k/l3-lunaris-8b", + name: "Sao10K: Llama 3 8B Lunaris", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-13", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.05 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3.1-euryale-70b": { + id: "sao10k/l3.1-euryale-70b", + name: "Sao10K: Llama 3.1 Euryale 70B v2.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 0.85 }, + limit: { context: 131072, output: 16384 }, + }, + "sao10k/l3-euryale-70b": { + id: "sao10k/l3-euryale-70b", + name: "Sao10k: Llama 3 Euryale 70B v2.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-06-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3.3-euryale-70b": { + id: "sao10k/l3.3-euryale-70b", + name: "Sao10K: Llama 3.3 Euryale 70B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-12-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 0.75 }, + limit: { context: 131072, output: 16384 }, + }, + "writer/palmyra-x5": { + id: "writer/palmyra-x5", + name: "Writer: Palmyra X5", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 6 }, + limit: { context: 1040000, output: 8192 }, + }, + "perplexity/sonar-reasoning-pro": { + id: "perplexity/sonar-reasoning-pro", + name: "Perplexity: Sonar Reasoning Pro", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 25600 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Perplexity: Sonar", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127072, output: 25415 }, + }, + "perplexity/sonar-deep-research": { + id: "perplexity/sonar-deep-research", + name: "Perplexity: Sonar Deep Research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 25600 }, + }, + "perplexity/sonar-pro": { + id: "perplexity/sonar-pro", + name: "Perplexity: Sonar Pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar-pro-search": { + id: "perplexity/sonar-pro-search", + name: "Perplexity: Sonar Pro Search", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-10-31", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "bytedance-seed/seed-2.0-mini": { + id: "bytedance-seed/seed-2.0-mini", + name: "ByteDance Seed: Seed-2.0-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "bytedance-seed/seed-1.6": { + id: "bytedance-seed/seed-1.6", + name: "ByteDance Seed: Seed 1.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 32768 }, + }, + "bytedance-seed/seed-1.6-flash": { + id: "bytedance-seed/seed-1.6-flash", + name: "ByteDance Seed: Seed 1.6 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 262144, output: 32768 }, + }, + "bytedance-seed/seed-2.0-lite": { + id: "bytedance-seed/seed-2.0-lite", + name: "ByteDance Seed: Seed-2.0-Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 131072 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Anthropic: Claude 3.5 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Anthropic: Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Anthropic: Claude Opus 4.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Anthropic: Claude 3 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-03-07", + last_updated: "2024-03-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Anthropic: Claude Sonnet 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Anthropic: Claude Haiku 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Anthropic: Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3.7-sonnet:thinking": { + id: "anthropic/claude-3.7-sonnet:thinking", + name: "Anthropic: Claude 3.7 Sonnet (thinking)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Anthropic: Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Anthropic: Claude Opus 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Anthropic: Claude Sonnet 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Anthropic: Claude Sonnet 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Anthropic: Claude Opus 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "ai21/jamba-large-1.7": { + id: "ai21/jamba-large-1.7", + name: "AI21: Jamba Large 1.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 256000, output: 4096 }, + }, + "kilo/auto": { + id: "kilo/auto", + name: "Kilo: Auto", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "kilo/auto-free": { + id: "kilo/auto-free", + name: "Deprecated Kilo Auto Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "kilo/auto-small": { + id: "kilo/auto-small", + name: "Deprecated Kilo Auto Small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "inflection/inflection-3-productivity": { + id: "inflection/inflection-3-productivity", + name: "Inflection: Inflection 3 Productivity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 1024 }, + }, + "inflection/inflection-3-pi": { + id: "inflection/inflection-3-pi", + name: "Inflection: Inflection 3 Pi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 1024 }, + }, + "nousresearch/hermes-4-405b": { + id: "nousresearch/hermes-4-405b", + name: "Nous: Hermes 4 405B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 26215 }, + }, + "nousresearch/hermes-3-llama-3.1-70b": { + id: "nousresearch/hermes-3-llama-3.1-70b", + name: "Nous: Hermes 3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 131072, output: 32768 }, + }, + "nousresearch/hermes-4-70b": { + id: "nousresearch/hermes-4-70b", + name: "Nous: Hermes 4 70B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-08-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, cache_read: 0.055 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-3-llama-3.1-405b": { + id: "nousresearch/hermes-3-llama-3.1-405b", + name: "Nous: Hermes 3 405B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 1 }, + limit: { context: 131072, output: 16384 }, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + id: "nousresearch/hermes-2-pro-llama-3-8b", + name: "NousResearch: Hermes 2 Pro - Llama-3 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-05-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + }, + }, + }, + "nano-gpt": { + id: "nano-gpt", + env: ["NANO_GPT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://nano-gpt.com/api/v1", + name: "NanoGPT", + doc: "https://docs.nano-gpt.com", + models: { + "exa-research-pro": { + id: "exa-research-pro", + name: "Exa (Research Pro)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "gemini-2.0-pro-exp-02-05": { + id: "gemini-2.0-pro-exp-02-05", + name: "Gemini 2.0 Pro 0205", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.956 }, + limit: { context: 2097152, input: 2097152, output: 8192 }, + }, + "qwen-image": { + id: "qwen-image", + name: "Qwen Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "Llama-3.3-70B-Shakudo": { + id: "Llama-3.3-70B-Shakudo", + name: "Llama 3.3 70B Shakudo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "ernie-4.5-8k-preview": { + id: "ernie-4.5-8k-preview", + name: "Ernie 4.5 8k Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 2.6 }, + limit: { context: 8000, input: 8000, output: 16384 }, + }, + "claude-3-7-sonnet-thinking:128000": { + id: "claude-3-7-sonnet-thinking:128000", + name: "Claude 3.7 Sonnet Thinking (128K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "phi-4-multimodal-instruct": { + id: "phi-4-multimodal-instruct", + name: "Phi 4 Multimodal", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.11 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "z-image-turbo": { + id: "z-image-turbo", + name: "Z Image Turbo", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-27", + last_updated: "2025-11-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter": { + id: "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter", + name: "Llama 3.3+ 70B TenyxChat DaybreakStorywriter", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "mistral-small-31-24b-instruct": { + id: "mistral-small-31-24b-instruct", + name: "Mistral Small 31 24b Instruct", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0": { + id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0", + name: "Llama 3.3 70B Omega Directive Unslop v2.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Baichuan-M2": { + id: "Baichuan-M2", + name: "Baichuan M2 32B Medical", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15.73, output: 15.73 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "doubao-1.5-vision-pro-32k": { + id: "doubao-1.5-vision-pro-32k", + name: "Doubao 1.5 Vision Pro 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-22", + last_updated: "2025-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.459, output: 1.377 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract", + name: "GLM 4.5 Air Derestricted Iceblink v2 ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 65536 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude 4.5 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v1.4": { + id: "Llama-3.3-70B-ArliAI-RPMax-v1.4", + name: "Llama 3.3 70B RPMax v1.4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "jamba-large-1.6": { + id: "jamba-large-1.6", + name: "Jamba Large 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "Llama-3.3-70B-Aurora-Borealis": { + id: "Llama-3.3-70B-Aurora-Borealis", + name: "Llama 3.3 70B Aurora Borealis", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "ernie-x1-32k": { + id: "ernie-x1-32k", + name: "Ernie X1 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "Llama-3.3-70B-Magnum-v4-SE": { + id: "Llama-3.3-70B-Magnum-v4-SE", + name: "Llama 3.3 70B Magnum v4 SE", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 64000, input: 64000, output: 65536 }, + }, + "KAT-Coder-Pro-V1": { + id: "KAT-Coder-Pro-V1", + name: "KAT Coder Pro V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "hunyuan-turbos-20250226": { + id: "hunyuan-turbos-20250226", + name: "Hunyuan Turbo S", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.187, output: 0.374 }, + limit: { context: 24000, input: 24000, output: 8192 }, + }, + "jamba-large-1.7": { + id: "jamba-large-1.7", + name: "Jamba Large 1.7", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "mercury-coder-small": { + id: "mercury-coder-small", + name: "Mercury Coder Small", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-26", + last_updated: "2025-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-1-5-thinking-pro-vision-250415": { + id: "doubao-1-5-thinking-pro-vision-250415", + name: "Doubao 1.5 Thinking Pro Vision", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "yi-medium-200k": { + id: "yi-medium-200k", + name: "Yi Medium 200k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-03-01", + last_updated: "2024-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 2.499 }, + limit: { context: 200000, input: 200000, output: 4096 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview (09/2025)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "deepseek-chat-cheaper": { + id: "deepseek-chat-cheaper", + name: "DeepSeek V3/Chat Cheaper", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "step-r1-v-mini": { + id: "step-r1-v-mini", + name: "Step R1 V Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-08", + last_updated: "2025-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 11 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 0605", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "yi-lightning": { + id: "yi-lightning", + name: "Yi Lightning", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-16", + last_updated: "2024-10-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 12000, input: 12000, output: 4096 }, + }, + "deepseek-reasoner-cheaper": { + id: "deepseek-reasoner-cheaper", + name: "Deepseek R1 Cheaper", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "ernie-4.5-turbo-vl-32k": { + id: "ernie-4.5-turbo-vl-32k", + name: "Ernie 4.5 Turbo VL 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.495, output: 1.43 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "v0-1.0-md": { + id: "v0-1.0-md", + name: "v0 1.0 MD", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "Llama-3.3-70B-Ignition-v0.1": { + id: "Llama-3.3-70B-Ignition-v0.1", + name: "Llama 3.3 70B Ignition v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "glm-z1-air": { + id: "glm-z1-air", + name: "GLM Z1 Air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude 3.5 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "Llama-3.3-70B-RAWMAW": { + id: "Llama-3.3-70B-RAWMAW", + name: "Llama 3.3 70B RAWMAW", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Magistral-Small-2506": { + id: "Magistral-Small-2506", + name: "Magistral Small 2506", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.4 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "ernie-x1-turbo-32k": { + id: "ernie-x1-turbo-32k", + name: "Ernie X1 Turbo 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.165, output: 0.66 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Perplexity Reasoning Pro", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 7.9985 }, + limit: { context: 127000, input: 127000, output: 128000 }, + }, + "deepseek-r1-sambanova": { + id: "deepseek-r1-sambanova", + name: "DeepSeek R1 Fast", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 6.987 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "claude-3-7-sonnet-thinking:1024": { + id: "claude-3-7-sonnet-thinking:1024", + name: "Claude 3.7 Sonnet Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP": { + id: "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP", + name: "Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v3": { + id: "Llama-3.3-70B-ArliAI-RPMax-v3", + name: "Llama 3.3 70B ArliAI RPMax v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen-long": { + id: "qwen-long", + name: "Qwen Long 10M", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 10000000, input: 10000000, output: 8192 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-Progenitor-V3.3": { + id: "Llama-3.3-70B-Progenitor-V3.3", + name: "Llama 3.3 70B Progenitor V3.3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-v2": { + id: "GLM-4.5-Air-Derestricted-Iceblink-v2", + name: "GLM 4.5 Air Derestricted Iceblink v2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 158600, input: 158600, output: 65536 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview (09/2025)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "study_gpt-chatgpt-4o-latest": { + id: "study_gpt-chatgpt-4o-latest", + name: "Study Mode", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16384 }, + }, + "qwq-32b": { + id: "qwq-32b", + name: "Qwen: QwQ 32B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25599999, output: 0.30499999 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 0506", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-MS-Nevoria": { + id: "Llama-3.3-70B-MS-Nevoria", + name: "Llama 3.3 70B MS Nevoria", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-seed-1-6-250615": { + id: "doubao-seed-1-6-250615", + name: "Doubao Seed 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.204, output: 0.51 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash 0520", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048000, input: 1048000, output: 65536 }, + }, + "glm-4": { + id: "glm-4", + name: "GLM-4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-01-16", + last_updated: "2024-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 14.994 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "azure-gpt-4-turbo": { + id: "azure-gpt-4-turbo", + name: "Azure gpt-4-turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 30.005 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Llama-3.3-70B-Legion-V2.1": { + id: "Llama-3.3-70B-Legion-V2.1", + name: "Llama 3.3 70B Legion V2.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-3-7-sonnet-thinking:32768": { + id: "claude-3-7-sonnet-thinking:32768", + name: "Claude 3.7 Sonnet Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "asi1-mini": { + id: "asi1-mini", + name: "ASI1 Mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "gemini-exp-1206": { + id: "gemini-exp-1206", + name: "Gemini 2.0 Pro 1206", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.258, output: 4.998 }, + limit: { context: 2097152, input: 2097152, output: 8192 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen 2.5 Max", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-04-03", + last_updated: "2024-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5997, output: 6.392 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + brave: { + id: "brave", + name: "Brave (Answers)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "doubao-1-5-thinking-pro-250415": { + id: "doubao-1-5-thinking-pro-250415", + name: "Doubao 1.5 Thinking Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-sonnet-4-thinking:64000": { + id: "claude-sonnet-4-thinking:64000", + name: "Claude 4 Sonnet Thinking (64K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "GLM-4.5-Air-Derestricted-Steam-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Steam-ReExtract", + name: "GLM 4.5 Air Derestricted Steam ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 65536 }, + }, + "kimi-k2-instruct-fast": { + id: "kimi-k2-instruct-fast", + name: "Kimi K2 0711 Fast", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "Llama-3.3-70B-GeneticLemonade-Opus": { + id: "Llama-3.3-70B-GeneticLemonade-Opus", + name: "Llama 3.3 70B GeneticLemonade Opus", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-Big-Tiger-v3": { + id: "Gemma-3-27B-Big-Tiger-v3", + name: "Gemma 3 27B Big Tiger v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-seed-2-0-mini-260215": { + id: "doubao-seed-2-0-mini-260215", + name: "Doubao Seed 2.0 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0493, output: 0.4845 }, + limit: { context: 256000, input: 256000, output: 32000 }, + }, + "claude-sonnet-4-5-20250929-thinking": { + id: "claude-sonnet-4-5-20250929-thinking", + name: "Claude Sonnet 4.5 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "glm-4-air": { + id: "glm-4-air", + name: "GLM-4 Air", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Iceblink-ReExtract", + name: "GLM 4.5 Air Derestricted Iceblink ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 98304 }, + }, + "gemini-2.0-pro-reasoner": { + id: "gemini-2.0-pro-reasoner", + name: "Gemini 2.0 Pro Reasoner", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.292, output: 4.998 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "gemini-2.0-flash-001": { + id: "gemini-2.0-flash-001", + name: "Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "glm-4-plus": { + id: "glm-4-plus", + name: "GLM-4 Plus", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.497, output: 7.497 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "gemini-2.0-flash-exp-image-generation": { + id: "gemini-2.0-flash-exp-image-generation", + name: "Gemini Text + Image", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "GLM-4.5-Air-Derestricted": { + id: "GLM-4.5-Air-Derestricted", + name: "GLM 4.5 Air Derestricted", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 202600, input: 202600, output: 98304 }, + }, + "gemini-2.0-flash-thinking-exp-1219": { + id: "gemini-2.0-flash-thinking-exp-1219", + name: "Gemini 2.0 Flash Thinking 1219", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-19", + last_updated: "2024-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "glm-4.1v-thinking-flashx": { + id: "glm-4.1v-thinking-flashx", + name: "GLM 4.1V Thinking FlashX", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "Llama-3.3-70B-StrawberryLemonade-v1.0": { + id: "Llama-3.3-70B-StrawberryLemonade-v1.0", + name: "Llama 3.3 70B StrawberryLemonade v1.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Fallen-v1": { + id: "Llama-3.3-70B-Fallen-v1", + name: "Llama 3.3 70B Fallen v1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-Nidum-Uncensored": { + id: "Gemma-3-27B-Nidum-Uncensored", + name: "Gemma 3 27B Nidum Uncensored", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 96000 }, + }, + "Llama-3.3-70B-Electranova-v1.0": { + id: "Llama-3.3-70B-Electranova-v1.0", + name: "Llama 3.3 70B Electranova v1.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "grok-3-fast-beta": { + id: "grok-3-fast-beta", + name: "Grok 3 Fast Beta", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04998, output: 0.2006 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "Llama-3.3-70B-Sapphira-0.1": { + id: "Llama-3.3-70B-Sapphira-0.1", + name: "Llama 3.3 70B Sapphira 0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.5-pro-preview-03-25": { + id: "gemini-2.5-pro-preview-03-25", + name: "Gemini 2.5 Pro Preview 0325", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "step-2-16k-exp": { + id: "step-2-16k-exp", + name: "Step-2 16k Exp", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-05", + last_updated: "2024-07-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.004, output: 19.992 }, + limit: { context: 16000, input: 16000, output: 8192 }, + }, + chroma: { + id: "chroma", + name: "Chroma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + sonar: { + id: "sonar", + name: "Perplexity Simple", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.003, output: 1.003 }, + limit: { context: 127000, input: 127000, output: 128000 }, + }, + fastgpt: { + id: "fastgpt", + name: "Web Answer", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-08-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.5, output: 7.5 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-sonnet-4-thinking:8192": { + id: "claude-sonnet-4-thinking:8192", + name: "Claude 4 Sonnet Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Llama-3.3-70B-Electra-R1": { + id: "Llama-3.3-70B-Electra-R1", + name: "Llama 3.3 70B Electra R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Fallen-R1-v1": { + id: "Llama-3.3-70B-Fallen-R1-v1", + name: "Llama 3.3 70B Fallen R1 v1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-it-Abliterated": { + id: "Gemma-3-27B-it-Abliterated", + name: "Gemma 3 27B IT Abliterated", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.42, output: 0.42 }, + limit: { context: 32768, input: 32768, output: 96000 }, + }, + "doubao-1.5-pro-256k": { + id: "doubao-1.5-pro-256k", + name: "Doubao 1.5 Pro 256k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.799, output: 1.445 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "claude-opus-4-thinking": { + id: "claude-opus-4-thinking", + name: "Claude 4 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek R1", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "doubao-1-5-thinking-vision-pro-250428": { + id: "doubao-1-5-thinking-vision-pro-250428", + name: "Doubao 1.5 Thinking Vision Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-15", + last_updated: "2025-05-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 1.43 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "doubao-seed-2-0-lite-260215": { + id: "doubao-seed-2-0-lite-260215", + name: "Doubao Seed 2.0 Lite", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1462, output: 0.8738 }, + limit: { context: 256000, input: 256000, output: 32000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude 4 Opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "qwen25-vl-72b-instruct": { + id: "qwen25-vl-72b-instruct", + name: "Qwen25 VL 72b", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.69989, output: 0.69989 }, + limit: { context: 32000, input: 32000, output: 32768 }, + }, + "azure-gpt-4o": { + id: "azure-gpt-4o", + name: "Azure gpt-4o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Deep Research", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-25", + last_updated: "2025-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.4, output: 13.6 }, + limit: { context: 60000, input: 60000, output: 128000 }, + }, + "ernie-4.5-turbo-128k": { + id: "ernie-4.5-turbo-128k", + name: "Ernie 4.5 Turbo 128k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.132, output: 0.55 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "azure-o1": { + id: "azure-o1", + name: "Azure o1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-17", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 59.993 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "gemini-3-pro-preview-thinking": { + id: "gemini-3-pro-preview-thinking", + name: "Gemini 3 Pro Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "grok-3-mini-beta": { + id: "grok-3-mini-beta", + name: "Grok 3 Mini Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "claude-opus-4-1-thinking": { + id: "claude-opus-4-1-thinking", + name: "Claude 4.1 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-flash-nothinking": { + id: "gemini-2.5-flash-nothinking", + name: "Gemini 2.5 Flash (No Thinking)", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "doubao-seed-1-8-251215": { + id: "doubao-seed-1-8-251215", + name: "Doubao Seed 1.8", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.612, output: 6.12 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "claude-3-7-sonnet-thinking:8192": { + id: "claude-3-7-sonnet-thinking:8192", + name: "Claude 3.7 Sonnet Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "qvq-max": { + id: "qvq-max", + name: "Qwen: QvQ Max", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-28", + last_updated: "2025-03-28", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 5.3 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "auto-model-basic": { + id: "auto-model-basic", + name: "Auto model (Basic)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1": { + id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1", + name: "Llama 3.3 70B Omega Directive Unslop v2.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-3-5-haiku-20241022": { + id: "claude-3-5-haiku-20241022", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "glm-4-plus-0111": { + id: "glm-4-plus-0111", + name: "GLM 4 Plus 0111", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Llama-3.3-70B-Bigger-Body": { + id: "Llama-3.3-70B-Bigger-Body", + name: "Llama 3.3 70B Bigger Body", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "KAT-Coder-Air-V1": { + id: "KAT-Coder-Air-V1", + name: "KAT Coder Air V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax M2", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-10-25", + last_updated: "2025-10-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.53 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "doubao-seed-1-6-flash-250615": { + id: "doubao-seed-1-6-flash-250615", + name: "Doubao Seed 1.6 Flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0374, output: 0.374 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "glm-4-air-0111": { + id: "glm-4-air-0111", + name: "GLM 4 Air 0111", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-11", + last_updated: "2025-01-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 0.1394 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "phi-4-mini-instruct": { + id: "phi-4-mini-instruct", + name: "Phi 4 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "jamba-mini-1.6": { + id: "jamba-mini-1.6", + name: "Jamba Mini 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "v0-1.5-md": { + id: "v0-1.5-md", + name: "v0 1.5 MD", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "command-a-reasoning-08-2025": { + id: "command-a-reasoning-08-2025", + name: "Cohere Command A (08/2025)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-22", + last_updated: "2025-08-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "kimi-thinking-preview": { + id: "kimi-thinking-preview", + name: "Kimi Thinking Preview", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 31.46, output: 31.46 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-3-5-sonnet-20240620": { + id: "claude-3-5-sonnet-20240620", + name: "Claude 3.5 Sonnet Old", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek Chat 0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "claude-sonnet-4-thinking:1024": { + id: "claude-sonnet-4-thinking:1024", + name: "Claude 4 Sonnet Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Llama-3.3-70B-Incandescent-Malevolence": { + id: "Llama-3.3-70B-Incandescent-Malevolence", + name: "Llama 3.3 70B Incandescent Malevolence", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-1.5-pro-32k": { + id: "doubao-1.5-pro-32k", + name: "Doubao 1.5 Pro 32k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-22", + last_updated: "2025-01-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1343, output: 0.3349 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "Llama-3.3-70B-Forgotten-Safeword-3.6": { + id: "Llama-3.3-70B-Forgotten-Safeword-3.6", + name: "Llama 3.3 70B Forgotten Safeword 3.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "step-2-mini": { + id: "step-2-mini", + name: "Step-2 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-05", + last_updated: "2024-07-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.408 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "Mistral-Nemo-12B-Instruct-2407": { + id: "Mistral-Nemo-12B-Instruct-2407", + name: "Mistral Nemo 12B Instruct 2407", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Baichuan4-Turbo": { + id: "Baichuan4-Turbo", + name: "Baichuan 4 Turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.42, output: 2.42 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "ernie-5.0-thinking-latest": { + id: "ernie-5.0-thinking-latest", + name: "Ernie 5.0 Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "Gemma-3-27B-Glitter": { + id: "Gemma-3-27B-Glitter", + name: "Gemma 3 27B Glitter", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-opus-4-thinking:32000": { + id: "claude-opus-4-thinking:32000", + name: "Claude 4 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "auto-model-premium": { + id: "auto-model-premium", + name: "Auto model (Premium)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16000 }, + }, + "gemini-2.0-flash-thinking-exp-01-21": { + id: "gemini-2.0-flash-thinking-exp-01-21", + name: "Gemini 2.0 Flash Thinking 0121", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-21", + last_updated: "2025-01-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 1.003 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "claude-sonnet-4-thinking:32768": { + id: "claude-sonnet-4-thinking:32768", + name: "Claude 4 Sonnet Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "claude-opus-4-1-thinking:32768": { + id: "claude-opus-4-1-thinking:32768", + name: "Claude 4.1 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "jamba-large": { + id: "jamba-large", + name: "Jamba Large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "Llama-3.3-70B-MiraiFanfare": { + id: "Llama-3.3-70B-MiraiFanfare", + name: "Llama 3.3 70b Mirai Fanfare", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.493, output: 0.493 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "venice-uncensored:web": { + id: "venice-uncensored:web", + name: "Venice Uncensored Web", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-01", + last_updated: "2024-05-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 80000, input: 80000, output: 16384 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max 2026-01-23", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2002, output: 6.001 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "gemini-2.5-flash-lite-preview-09-2025-thinking": { + id: "gemini-2.5-flash-lite-preview-09-2025-thinking", + name: "Gemini 2.5 Flash Lite Preview (09/2025) – Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "ernie-x1-32k-preview": { + id: "ernie-x1-32k-preview", + name: "Ernie X1 32k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "glm-z1-airx": { + id: "glm-z1-airx", + name: "GLM Z1 AirX", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "ernie-x1.1-preview": { + id: "ernie-x1.1-preview", + name: "ERNIE X1.1", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "exa-research": { + id: "exa-research", + name: "Exa (Research)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "Llama-3.3-70B-Mokume-Gane-R1": { + id: "Llama-3.3-70B-Mokume-Gane-R1", + name: "Llama 3.3 70B Mokume Gane R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "glm-4.1v-thinking-flash": { + id: "glm-4.1v-thinking-flash", + name: "GLM 4.1V Thinking Flash", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "Llama-3.3-70B-GeneticLemonade-Unleashed-v3": { + id: "Llama-3.3-70B-GeneticLemonade-Unleashed-v3", + name: "Llama 3.3 70B GeneticLemonade Unleashed v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Predatorial-Extasy": { + id: "Llama-3.3-70B-Predatorial-Extasy", + name: "Llama 3.3 70B Predatorial Extasy", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "deepseek-chat": { + id: "deepseek-chat", + name: "DeepSeek V3/Deepseek Chat", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "glm-4-airx": { + id: "glm-4-airx", + name: "GLM-4 AirX", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "doubao-seed-1-6-thinking-250615": { + id: "doubao-seed-1-6-thinking-250615", + name: "Doubao Seed 1.6 Thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.204, output: 2.04 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "claude-3-7-sonnet-thinking": { + id: "claude-3-7-sonnet-thinking", + name: "Claude 3.7 Sonnet Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16000 }, + }, + "GLM-4.5-Air-Derestricted-Steam": { + id: "GLM-4.5-Air-Derestricted-Steam", + name: "GLM 4.5 Air Derestricted Steam", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 220600, input: 220600, output: 65536 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "Gemini 3 Pro Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax M1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 1.3328 }, + limit: { context: 1000000, input: 1000000, output: 131072 }, + }, + "ernie-5.0-thinking-preview": { + id: "ernie-5.0-thinking-preview", + name: "Ernie 5.0 Thinking Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-opus-4-thinking:1024": { + id: "claude-opus-4-thinking:1024", + name: "Claude 4 Opus Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Strawberrylemonade-v1.2": { + id: "Llama-3.3-70B-Strawberrylemonade-v1.2", + name: "Llama 3.3 70B StrawberryLemonade v1.2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Vulpecula-R1": { + id: "Llama-3.3-70B-Vulpecula-R1", + name: "Llama 3.3 70B Vulpecula R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "GLM-4.6-Derestricted-v5": { + id: "GLM-4.6-Derestricted-v5", + name: "GLM 4.6 Derestricted v5", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "Llama-3.3-70B-Cirrus-x1": { + id: "Llama-3.3-70B-Cirrus-x1", + name: "Llama 3.3 70B Cirrus x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v2": { + id: "Llama-3.3-70B-ArliAI-RPMax-v2", + name: "Llama 3.3 70B ArliAI RPMax v2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-seed-code-preview-latest": { + id: "doubao-seed-code-preview-latest", + name: "Doubao Seed Code Preview", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Perplexity Pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1": { + id: "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1", + name: "Llama 3.3+ 70B New Dawn v1.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen3-vl-235b-a22b-thinking": { + id: "qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 6 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-sonnet-4-thinking": { + id: "claude-sonnet-4-thinking", + name: "Claude 4 Sonnet Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Qwen2.5-32B-EVA-v0.2": { + id: "Qwen2.5-32B-EVA-v0.2", + name: "Qwen 2.5 32b EVA", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.493, output: 0.493 }, + limit: { context: 24576, input: 24576, output: 8192 }, + }, + "v0-1.5-lg": { + id: "v0-1.5-lg", + name: "v0 1.5 LG", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Llama-3.3-70B-Cu-Mai-R1": { + id: "Llama-3.3-70B-Cu-Mai-R1", + name: "Llama 3.3 70B Cu Mai R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + hidream: { + id: "hidream", + name: "Hidream", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "auto-model": { + id: "auto-model", + name: "Auto model", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "jamba-mini-1.7": { + id: "jamba-mini-1.7", + name: "Jamba Mini 1.7", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "doubao-seed-2-0-pro-260215": { + id: "doubao-seed-2-0-pro-260215", + name: "Doubao Seed 2.0 Pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.782, output: 3.876 }, + limit: { context: 256000, input: 256000, output: 128000 }, + }, + "Llama-3.3-70B-Nova": { + id: "Llama-3.3-70B-Nova", + name: "Llama 3.3 70B Nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.5-flash-preview-09-2025-thinking": { + id: "gemini-2.5-flash-preview-09-2025-thinking", + name: "Gemini 2.5 Flash Preview (09/2025) – Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-Sapphira-0.2": { + id: "Llama-3.3-70B-Sapphira-0.2", + name: "Llama 3.3 70B Sapphira 0.2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "auto-model-standard": { + id: "auto-model-standard", + name: "Auto model (Standard)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "grok-3-mini-fast-beta": { + id: "grok-3-mini-fast-beta", + name: "Grok 3 Mini Fast Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3995, output: 1.2002 }, + limit: { context: 995904, input: 995904, output: 32768 }, + }, + "Meta-Llama-3-1-8B-Instruct-FP8": { + id: "Meta-Llama-3-1-8B-Instruct-FP8", + name: "Llama 3.1 8B (decentralized)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "step-3": { + id: "step-3", + name: "Step-3", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2499, output: 0.6494 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "Gemma-3-27B-it": { + id: "Gemma-3-27B-it", + name: "Gemma 3 27B IT", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "universal-summarizer": { + id: "universal-summarizer", + name: "Universal Summarizer", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-05-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 30 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + deepclaude: { + id: "deepclaude", + name: "DeepClaude", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "brave-pro": { + id: "brave-pro", + name: "Brave (Pro)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "claude-3-7-sonnet-reasoner": { + id: "claude-3-7-sonnet-reasoner", + name: "Claude 3.7 Sonnet Reasoner", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-29", + last_updated: "2025-03-29", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0748, output: 0.306 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "claude-opus-4-thinking:8192": { + id: "claude-opus-4-thinking:8192", + name: "Claude 4 Opus Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "claude-opus-4-thinking:32768": { + id: "claude-opus-4-thinking:32768", + name: "Claude 4 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "glm-zero-preview": { + id: "glm-zero-preview", + name: "GLM Zero Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.802, output: 1.802 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "azure-gpt-4o-mini": { + id: "azure-gpt-4o-mini", + name: "Azure gpt-4o-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1496, output: 0.595 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "deepseek-math-v2": { + id: "deepseek-math-v2", + name: "DeepSeek Math V2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "glm-4-long": { + id: "glm-4-long", + name: "GLM-4 Long", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 1000000, input: 1000000, output: 4096 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink": { + id: "GLM-4.5-Air-Derestricted-Iceblink", + name: "GLM 4.5 Air Derestricted Iceblink", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 98304 }, + }, + "claude-opus-4-1-thinking:1024": { + id: "claude-opus-4-1-thinking:1024", + name: "Claude 4.1 Opus Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "qwen3-vl-235b-a22b-instruct-original": { + id: "qwen3-vl-235b-a22b-instruct-original", + name: "Qwen3 VL 235B A22B Instruct Original", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "Llama-3.3+(3.1v3.3)-70B-Hanami-x1": { + id: "Llama-3.3+(3.1v3.3)-70B-Hanami-x1", + name: "Llama 3.3+ 70B Hanami x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-opus-4-1-thinking:8192": { + id: "claude-opus-4-1-thinking:8192", + name: "Claude 4.1 Opus Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Damascus-R1": { + id: "Llama-3.3-70B-Damascus-R1", + name: "Damascus R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-ArliAI-RPMax-v3": { + id: "Gemma-3-27B-ArliAI-RPMax-v3", + name: "Gemma 3 27B RPMax v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.5-flash-preview-05-20:thinking": { + id: "gemini-2.5-flash-preview-05-20:thinking", + name: "Gemini 2.5 Flash 0520 Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 3.5 }, + limit: { context: 1048000, input: 1048000, output: 65536 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude 4 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "claude-opus-4-1-thinking:32000": { + id: "claude-opus-4-1-thinking:32000", + name: "Claude 4.1 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "sarvan-medium": { + id: "sarvan-medium", + name: "Sarvam Medium", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Llama-3.3-70B-Anthrobomination": { + id: "Llama-3.3-70B-Anthrobomination", + name: "Llama 3.3 70B Anthrobomination", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "venice-uncensored": { + id: "venice-uncensored", + name: "Venice Uncensored", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Baichuan4-Air": { + id: "Baichuan4-Air", + name: "Baichuan 4 Air", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.157, output: 0.157 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "jamba-mini": { + id: "jamba-mini", + name: "Jamba Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "KAT-Coder-Exp-72B-1010": { + id: "KAT-Coder-Exp-72B-1010", + name: "KAT Coder Exp 72B 1010", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "gemini-2.5-flash-preview-04-17:thinking": { + id: "gemini-2.5-flash-preview-04-17:thinking", + name: "Gemini 2.5 Flash Preview Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 3.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "brave-research": { + id: "brave-research", + name: "Brave (Research)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude 4.1 Opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Argunaut-1-SFT": { + id: "Llama-3.3-70B-Argunaut-1-SFT", + name: "Llama 3.3 70B Argunaut 1 SFT", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-opus-4-5-20251101:thinking": { + id: "claude-opus-4-5-20251101:thinking", + name: "Claude 4.5 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "grok-3-beta": { + id: "grok-3-beta", + name: "Grok 3 Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "azure-o3-mini": { + id: "azure-o3-mini", + name: "Azure o3-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.088, output: 4.3996 }, + limit: { context: 200000, input: 200000, output: 65536 }, + }, + "QwQ-32B-ArliAI-RpR-v1": { + id: "QwQ-32B-ArliAI-RpR-v1", + name: "QwQ 32b Arli V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "Llama-3.3-70B-Forgotten-Abomination-v5.0": { + id: "Llama-3.3-70B-Forgotten-Abomination-v5.0", + name: "Llama 3.3 70B Forgotten Abomination v5.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-seed-2-0-code-preview-260215": { + id: "doubao-seed-2-0-code-preview-260215", + name: "Doubao Seed 2.0 Code Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.782, output: 3.893 }, + limit: { context: 256000, input: 256000, output: 128000 }, + }, + "Llama-3.3-70B-Mhnnn-x1": { + id: "Llama-3.3-70B-Mhnnn-x1", + name: "Llama 3.3 70B Mhnnn x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "hunyuan-t1-latest": { + id: "hunyuan-t1-latest", + name: "Hunyuan T1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-22", + last_updated: "2025-03-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "Gemma-3-27B-CardProjector-v4": { + id: "Gemma-3-27B-CardProjector-v4", + name: "Gemma 3 27B CardProjector v4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "glm-4-flash": { + id: "glm-4-flash", + name: "GLM-4 Flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "learnlm-1.5-pro-experimental": { + id: "learnlm-1.5-pro-experimental", + name: "Gemini LearnLM Experimental", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.502, output: 10.506 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "Llama-3.3-70B-Dark-Ages-v0.1": { + id: "Llama-3.3-70B-Dark-Ages-v0.1", + name: "Llama 3.3 70B Dark Ages v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "yi-large": { + id: "yi-large", + name: "Yi Large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.196, output: 3.196 }, + limit: { context: 32000, input: 32000, output: 4096 }, + }, + "exa-answer": { + id: "exa-answer", + name: "Exa (Answer)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 4096, input: 4096, output: 4096 }, + }, + "gemini-2.5-pro-exp-03-25": { + id: "gemini-2.5-pro-exp-03-25", + name: "Gemini 2.5 Pro Experimental 0325", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "LLM360/K2-Think": { + id: "LLM360/K2-Think", + name: "K2-Think", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "abacusai/Dracarys-72B-Instruct": { + id: "abacusai/Dracarys-72B-Instruct", + name: "Llama 3.1 70B Dracarys 2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B": { + id: "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B", + name: "Nemotron Tenyxchat Storybreaker 70b", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B": { + id: "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", + name: "Llama 3.05 Storybreaker Ministral 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "allenai/olmo-3-32b-think": { + id: "allenai/olmo-3-32b-think", + name: "Olmo 3 32B Think", + family: "allenai", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.44999999999999996 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "allenai/molmo-2-8b": { + id: "allenai/molmo-2-8b", + name: "Molmo 2 8B", + family: "allenai", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 36864, input: 36864, output: 36864 }, + }, + "allenai/olmo-3.1-32b-instruct": { + id: "allenai/olmo-3.1-32b-instruct", + name: "Olmo 3.1 32B Instruct", + family: "allenai", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-25", + last_updated: "2026-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "allenai/olmo-3.1-32b-think": { + id: "allenai/olmo-3.1-32b-think", + name: "Olmo 3.1 32B Think", + family: "allenai", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-25", + last_updated: "2026-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "nex-agi/deepseek-v3.1-nex-n1": { + id: "nex-agi/deepseek-v3.1-nex-n1", + name: "DeepSeek V3.1 Nex N1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-10", + last_updated: "2025-12-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.8 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "zai-org/glm-5:thinking": { + id: "zai-org/glm-5:thinking", + name: "GLM 5 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": { + id: "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", + name: "Nvidia Nemotron 70b", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.357, output: 0.408 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "nvidia/Llama-3.3-Nemotron-Super-49B-v1": { + id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1", + name: "Nvidia Nemotron Super 49B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + id: "nvidia/nvidia-nemotron-nano-9b-v2", + name: "Nvidia Nemotron Nano 9B v2", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1": { + id: "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", + name: "Nvidia Nemotron Ultra 253B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.8 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "Nvidia Nemotron 3 Nano 30B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 256000, input: 256000, output: 262144 }, + }, + "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5": { + id: "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5", + name: "Nvidia Nemotron Super 49B v1.5", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond": { + id: "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond", + name: "MS3.2 24B Magnum Diamond", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045000000000000005, output: 0.15 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "arcee-ai/trinity-large": { + id: "arcee-ai/trinity-large", + name: "Trinity Large", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "meganova-ai/manta-flash-1.0": { + id: "meganova-ai/manta-flash-1.0", + name: "Manta Flash 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.16 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "meganova-ai/manta-pro-1.0": { + id: "meganova-ai/manta-pro-1.0", + name: "Manta Pro 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.060000000000000005, output: 0.5 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "meganova-ai/manta-mini-1.0": { + id: "meganova-ai/manta-mini-1.0", + name: "Manta Mini 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.16 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "xiaomi/mimo-v2-flash-original": { + id: "xiaomi/mimo-v2-flash-original", + name: "MiMo V2 Flash Original", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash-thinking": { + id: "xiaomi/mimo-v2-flash-thinking", + name: "MiMo V2 Flash (Thinking)", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash-thinking-original": { + id: "xiaomi/mimo-v2-flash-thinking-original", + name: "MiMo V2 Flash (Thinking) Original", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "microsoft/MAI-DS-R1-FP8": { + id: "microsoft/MAI-DS-R1-FP8", + name: "Microsoft DeepSeek R1", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "WizardLM-2 8x22B", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5": { + id: "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", + name: "Llama 3 70B abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "featherless-ai/Qwerky-72B": { + id: "featherless-ai/Qwerky-72B", + name: "Qwerky 72B", + family: "qwerky", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "TEE/glm-5": { + id: "TEE/glm-5", + name: "GLM 5 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 3.5 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/deepseek-v3.1": { + id: "TEE/deepseek-v3.1", + name: "DeepSeek V3.1 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2.5 }, + limit: { context: 164000, input: 164000, output: 8192 }, + }, + "TEE/glm-4.7-flash": { + id: "TEE/glm-4.7-flash", + name: "GLM 4.7 Flash TEE", + family: "glm-flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/qwen3-coder": { + id: "TEE/qwen3-coder", + name: "Qwen3 Coder 480B TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "TEE/glm-4.6": { + id: "TEE/glm-4.6", + name: "GLM 4.6 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 2 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/deepseek-r1-0528": { + id: "TEE/deepseek-r1-0528", + name: "DeepSeek R1 0528 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "TEE/minimax-m2.1": { + id: "TEE/minimax-m2.1", + name: "MiniMax M2.1 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "TEE/qwen3.5-397b-a17b": { + id: "TEE/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-28", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 258048, input: 258048, output: 65536 }, + }, + "TEE/gpt-oss-120b": { + id: "TEE/gpt-oss-120b", + name: "GPT-OSS 120B TEE", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "TEE/kimi-k2.5": { + id: "TEE/kimi-k2.5", + name: "Kimi K2.5 TEE", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/qwen3-30b-a3b-instruct-2507": { + id: "TEE/qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.44999999999999996 }, + limit: { context: 262000, input: 262000, output: 32768 }, + }, + "TEE/kimi-k2.5-thinking": { + id: "TEE/kimi-k2.5-thinking", + name: "Kimi K2.5 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/qwen2.5-vl-72b-instruct": { + id: "TEE/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B TEE", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "TEE/deepseek-v3.2": { + id: "TEE/deepseek-v3.2", + name: "DeepSeek V3.2 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1 }, + limit: { context: 164000, input: 164000, output: 65536 }, + }, + "TEE/glm-4.7": { + id: "TEE/glm-4.7", + name: "GLM 4.7 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 3.3 }, + limit: { context: 131000, input: 131000, output: 65535 }, + }, + "TEE/kimi-k2-thinking": { + id: "TEE/kimi-k2-thinking", + name: "Kimi K2 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/llama3-3-70b": { + id: "TEE/llama3-3-70b", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "TEE/gemma-3-27b-it": { + id: "TEE/gemma-3-27b-it", + name: "Gemma 3 27B TEE", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "TEE/gpt-oss-20b": { + id: "TEE/gpt-oss-20b", + name: "GPT-OSS 20B TEE", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "amazon/nova-micro-v1": { + id: "amazon/nova-micro-v1", + name: "Amazon Nova Micro 1.0", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0357, output: 0.1394 }, + limit: { context: 128000, input: 128000, output: 5120 }, + }, + "amazon/nova-lite-v1": { + id: "amazon/nova-lite-v1", + name: "Amazon Nova Lite 1.0", + family: "nova-lite", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0595, output: 0.238 }, + limit: { context: 300000, input: 300000, output: 5120 }, + }, + "amazon/nova-2-lite-v1": { + id: "amazon/nova-2-lite-v1", + name: "Amazon Nova 2 Lite", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5099999999999999, output: 4.25 }, + limit: { context: 1000000, input: 1000000, output: 65535 }, + }, + "amazon/nova-pro-v1": { + id: "amazon/nova-pro-v1", + name: "Amazon Nova Pro 1.0", + family: "nova-pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 3.1959999999999997 }, + limit: { context: 300000, input: 300000, output: 32000 }, + }, + "anthracite-org/magnum-v2-72b": { + id: "anthracite-org/magnum-v2-72b", + name: "Magnum V2 72B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.992 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "anthracite-org/magnum-v4-72b": { + id: "anthracite-org/magnum-v4-72b", + name: "Magnum v4 72B", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.992 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "essentialai/rnj-1-instruct": { + id: "essentialai/rnj-1-instruct", + name: "RNJ-1 Instruct 8B", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-13", + last_updated: "2025-12-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-4-405b": { + id: "NousResearch 2/hermes-4-405b", + name: "Hermes 4 Large", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-3-llama-3.1-70b": { + id: "NousResearch 2/hermes-3-llama-3.1-70b", + name: "Hermes 3 70B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-07", + last_updated: "2026-01-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.408, output: 0.408 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "NousResearch 2/DeepHermes-3-Mistral-24B-Preview": { + id: "NousResearch 2/DeepHermes-3-Mistral-24B-Preview", + name: "DeepHermes-3 Mistral 24B (Preview)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "NousResearch 2/hermes-4-70b": { + id: "NousResearch 2/hermes-4-70b", + name: "Hermes 4 Medium", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.39949999999999997 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-4-405b:thinking": { + id: "NousResearch 2/hermes-4-405b:thinking", + name: "Hermes 4 Large (Thinking)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/Hermes-4-70B:thinking": { + id: "NousResearch 2/Hermes-4-70B:thinking", + name: "Hermes 4 (Thinking)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-17", + last_updated: "2025-09-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.39949999999999997 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "pamanseau/OpenReasoning-Nemotron-32B": { + id: "pamanseau/OpenReasoning-Nemotron-32B", + name: "OpenReasoning Nemotron 32B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 32768, input: 32768, output: 65536 }, + }, + "MiniMaxAI/MiniMax-M1-80k": { + id: "MiniMaxAI/MiniMax-M1-80k", + name: "MiniMax M1 80K", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6052, output: 2.4225000000000003 }, + limit: { context: 1000000, input: 1000000, output: 131072 }, + }, + "deepseek-ai/deepseek-v3.2-exp-thinking": { + id: "deepseek-ai/deepseek-v3.2-exp-thinking", + name: "DeepSeek V3.2 Exp Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163840, input: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.1:thinking": { + id: "deepseek-ai/DeepSeek-V3.1:thinking", + name: "DeepSeek V3.1 Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "deepseek-ai/deepseek-v3.2-exp": { + id: "deepseek-ai/deepseek-v3.2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163840, input: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus:thinking": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus:thinking", + name: "DeepSeek V3.1 Terminus (Thinking)", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "raifle/sorcererlm-8x22b": { + id: "raifle/sorcererlm-8x22b", + name: "SorcererLM 8x22B", + family: "mixtral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.505, output: 4.505 }, + limit: { context: 16000, input: 16000, output: 8192 }, + }, + "aion-labs/aion-1.0-mini": { + id: "aion-labs/aion-1.0-mini", + name: "Aion 1.0 mini (DeepSeek)", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 1.394 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "aion-labs/aion-rp-llama-3.1-8b": { + id: "aion-labs/aion-rp-llama-3.1-8b", + name: "Llama 3.1 8b (uncensored)", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "aion-labs/aion-1.0": { + id: "aion-labs/aion-1.0", + name: "Aion 1.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.995, output: 7.99 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "mlabonne/NeuralDaredevil-8B-abliterated": { + id: "mlabonne/NeuralDaredevil-8B-abliterated", + name: "Neural Daredevil 8B abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.44, output: 0.44 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "unsloth/gemma-3-1b-it": { + id: "unsloth/gemma-3-1b-it", + name: "Gemma 3 1B IT", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "unsloth/gemma-3-12b-it": { + id: "unsloth/gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "unsloth", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.272, output: 0.272 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "unsloth/gemma-3-4b-it": { + id: "unsloth/gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "unsloth", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "unsloth/gemma-3-27b-it": { + id: "unsloth/gemma-3-27b-it", + name: "Gemma 3 27B IT", + family: "unsloth", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2992, output: 0.2992 }, + limit: { context: 128000, input: 128000, output: 96000 }, + }, + "meituan-longcat/LongCat-Flash-Chat-FP8": { + id: "meituan-longcat/LongCat-Flash-Chat-FP8", + name: "LongCat Flash", + family: "longcat", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-31", + last_updated: "2025-08-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "cognitivecomputations/dolphin-2.9.2-qwen2-72b": { + id: "cognitivecomputations/dolphin-2.9.2-qwen2-72b", + name: "Dolphin 72b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 8192, input: 8192, output: 4096 }, + }, + "Infermatic/MN-12B-Inferor-v0.0": { + id: "Infermatic/MN-12B-Inferor-v0.0", + name: "Mistral Nemo Inferor 12B", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25499999999999995, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "Hunyuan MT 7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 20 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "Gryphe/MythoMax-L2-13b": { + id: "Gryphe/MythoMax-L2-13b", + name: "MythoMax 13B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 4000, input: 4000, output: 4096 }, + }, + "CrucibleLab/L3.3-70B-Loki-V2.0": { + id: "CrucibleLab/L3.3-70B-Loki-V2.0", + name: "L3.3 70B Loki v2.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "soob3123/Veiled-Calla-12B": { + id: "soob3123/Veiled-Calla-12B", + name: "Veiled Calla 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-13", + last_updated: "2025-04-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "soob3123/amoral-gemma3-27B-v2": { + id: "soob3123/amoral-gemma3-27B-v2", + name: "Amoral Gemma3 27B v2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-23", + last_updated: "2025-05-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "soob3123/GrayLine-Qwen3-8B": { + id: "soob3123/GrayLine-Qwen3-8B", + name: "Grayline Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "NeverSleep/Llama-3-Lumimaid-70B-v0.1": { + id: "NeverSleep/Llama-3-Lumimaid-70B-v0.1", + name: "Lumimaid 70b", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "NeverSleep/Lumimaid-v0.2-70B": { + id: "NeverSleep/Lumimaid-v0.2-70B", + name: "Lumimaid v0.2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1.5 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "deepseek/deepseek-prover-v2-671b": { + id: "deepseek/deepseek-prover-v2-671b", + name: "DeepSeek Prover v2 671B", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2.5 }, + limit: { context: 160000, input: 160000, output: 16384 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek V3.2 Speciale", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "deepseek/deepseek-v3.2:thinking": { + id: "deepseek/deepseek-v3.2:thinking", + name: "DeepSeek V3.2 Thinking", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "MarinaraSpaghetti/NemoMix-Unleashed-12B": { + id: "MarinaraSpaghetti/NemoMix-Unleashed-12B", + name: "NemoMix 12B Unleashed", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "moonshotai/kimi-k2.5:thinking": { + id: "moonshotai/kimi-k2.5:thinking", + name: "Kimi K2.5 Thinking", + family: "kimi-thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 256000, input: 256000, output: 65536 }, + }, + "moonshotai/kimi-k2-thinking-turbo-original": { + id: "moonshotai/kimi-k2-thinking-turbo-original", + name: "Kimi K2 Thinking Turbo Original", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, input: 256000, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct-0711": { + id: "moonshotai/kimi-k2-instruct-0711", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "moonshotai/Kimi-Dev-72B": { + id: "moonshotai/Kimi-Dev-72B", + name: "Kimi Dev 72B", + family: "kimi", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 256000, input: 256000, output: 65536 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 256000, input: 256000, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking-original": { + id: "moonshotai/kimi-k2-thinking-original", + name: "Kimi K2 Thinking Original", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "ERNIE 4.5 VL 28B", + family: "ernie", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13999999999999999, output: 0.5599999999999999 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "baidu/ernie-4.5-300b-a47b": { + id: "baidu/ernie-4.5-300b-a47b", + name: "ERNIE 4.5 300B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.15 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "google/gemini-flash-1.5": { + id: "google/gemini-flash-1.5", + name: "Gemini 1.5 Flash", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0748, output: 0.306 }, + limit: { context: 2000000, input: 2000000, output: 8192 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "google/gemini-3-flash-preview-thinking": { + id: "google/gemini-3-flash-preview-thinking", + name: "Gemini 3 Flash Thinking", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "z-ai/glm-4.6:thinking": { + id: "z-ai/glm-4.6:thinking", + name: "GLM 4.6 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 200000, input: 200000, output: 65535 }, + }, + "z-ai/glm-4.5v:thinking": { + id: "z-ai/glm-4.5v:thinking", + name: "GLM 4.5V Thinking", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-22", + last_updated: "2025-11-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.7999999999999998 }, + limit: { context: 64000, input: 64000, output: 96000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 200000, input: 200000, output: 65535 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-22", + last_updated: "2025-11-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.7999999999999998 }, + limit: { context: 64000, input: 64000, output: 96000 }, + }, + "stepfun-ai/step-3.5-flash:thinking": { + id: "stepfun-ai/step-3.5-flash:thinking", + name: "Step 3.5 Flash Thinking", + family: "step", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "stepfun-ai/step-3.5-flash": { + id: "stepfun-ai/step-3.5-flash", + name: "Step 3.5 Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "deepcogito/cogito-v2.1-671b": { + id: "deepcogito/cogito-v2.1-671b", + name: "Cogito v2.1 671B MoE", + family: "cogito", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "deepcogito/cogito-v1-preview-qwen-32B": { + id: "deepcogito/cogito-v1-preview-qwen-32B", + name: "Cogito v1 Preview Qwen 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.7999999999999998, output: 1.7999999999999998 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "undi95/remm-slerp-l2-13b": { + id: "undi95/remm-slerp-l2-13b", + name: "ReMM SLERP 13B", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 1.2069999999999999 }, + limit: { context: 6144, input: 6144, output: 4096 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 258048, input: 258048, output: 65536 }, + }, + "inflatebot/MN-12B-Mag-Mell-R1": { + id: "inflatebot/MN-12B-Mag-Mell-R1", + name: "Mag Mell R1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16": { + id: "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", + name: "Llama 3.1 70B Celeste v0.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "x-ai/grok-4-fast:thinking": { + id: "x-ai/grok-4-fast:thinking", + name: "Grok 4 Fast Thinking", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, input: 256000, output: 131072 }, + }, + "x-ai/grok-4.1-fast-reasoning": { + id: "x-ai/grok-4.1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-20", + last_updated: "2025-09-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4-07-09": { + id: "x-ai/grok-4-07-09", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, input: 256000, output: 131072 }, + }, + "meta-llama/llama-4-scout": { + id: "meta-llama/llama-4-scout", + name: "Llama 4 Scout", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.085, output: 0.46 }, + limit: { context: 328000, input: 328000, output: 65536 }, + }, + "meta-llama/llama-3.2-90b-vision-instruct": { + id: "meta-llama/llama-3.2-90b-vision-instruct", + name: "Llama 3.2 Medium", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9009999999999999, output: 0.9009999999999999 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Llama 3.3 70b Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.23 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "meta-llama/llama-3.2-3b-instruct": { + id: "meta-llama/llama-3.2-3b-instruct", + name: "Llama 3.2 3b Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0306, output: 0.0493 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "meta-llama/llama-4-maverick": { + id: "meta-llama/llama-4-maverick", + name: "Llama 4 Maverick", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18000000000000002, output: 0.8 }, + limit: { context: 1048576, input: 1048576, output: 65536 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Llama 3.1 8b Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0544, output: 0.0544 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "tngtech/DeepSeek-TNG-R1T2-Chimera": { + id: "tngtech/DeepSeek-TNG-R1T2-Chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "tngtech", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "tngtech/tng-r1t-chimera": { + id: "tngtech/tng-r1t-chimera", + name: "TNG R1T Chimera", + family: "tngtech", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "mistralai/ministral-3b-2512": { + id: "mistralai/ministral-3b-2512", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/mistral-saba": { + id: "mistralai/mistral-saba", + name: "Mistral Saba", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.595 }, + limit: { context: 32000, input: 32000, output: 32768 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Codestral 2508", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.8999999999999999 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + id: "mistralai/mistral-large-3-675b-instruct-2512", + name: "Mistral Large 3 675B", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3 }, + limit: { context: 262144, input: 262144, output: 256000 }, + }, + "mistralai/mistral-small-creative": { + id: "mistralai/mistral-small-creative", + name: "Mistral Small Creative", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "mistralai/ministral-8b-2512": { + id: "mistralai/ministral-8b-2512", + name: "Ministral 8B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/mixtral-8x22b-instruct-v0.1": { + id: "mistralai/mixtral-8x22b-instruct-v0.1", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8999999999999999, output: 0.8999999999999999 }, + limit: { context: 65536, input: 65536, output: 32768 }, + }, + "mistralai/ministral-14b-2512": { + id: "mistralai/ministral-14b-2512", + name: "Ministral 14B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/ministral-14b-instruct-2512": { + id: "mistralai/ministral-14b-instruct-2512", + name: "Ministral 3 14B", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/Devstral-Small-2505": { + id: "mistralai/Devstral-Small-2505", + name: "Mistral Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.060000000000000005, output: 0.060000000000000005 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "mistralai/mistral-tiny": { + id: "mistralai/mistral-tiny", + name: "Mistral Tiny", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-12-11", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25499999999999995, output: 0.25499999999999995 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "mistralai/mistral-7b-instruct": { + id: "mistralai/mistral-7b-instruct", + name: "Mistral 7B Instruct", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0544, output: 0.0544 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "mistralai/devstral-2-123b-instruct-2512": { + id: "mistralai/devstral-2-123b-instruct-2512", + name: "Devstral 2 123B", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.4 }, + limit: { context: 262144, input: 262144, output: 65536 }, + }, + "mistralai/mistral-large": { + id: "mistralai/mistral-large", + name: "Mistral Large 2411", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-02-26", + last_updated: "2024-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 6.001 }, + limit: { context: 128000, input: 128000, output: 256000 }, + }, + "mistralai/mixtral-8x7b-instruct-v0.1": { + id: "mistralai/mixtral-8x7b-instruct-v0.1", + name: "Mixtral 8x7B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "Tongyi-Zhiwen/QwenLong-L1-32B": { + id: "Tongyi-Zhiwen/QwenLong-L1-32B", + name: "QwenLong L1 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13999999999999999, output: 0.6 }, + limit: { context: 128000, input: 128000, output: 40960 }, + }, + "ReadyArt/The-Omega-Abomination-L-70B-v1.0": { + id: "ReadyArt/The-Omega-Abomination-L-70B-v1.0", + name: "The Omega Abomination V1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.95 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0": { + id: "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0", + name: "Omega Directive 24B Unslop v2.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "openai/gpt-4o-2024-11-20": { + id: "openai/gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.1-2025-11-13": { + id: "openai/gpt-5.1-2025-11-13", + name: "GPT-5.1 (2025-11-13)", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1000000, input: 1000000, output: 32768 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT 5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1496, output: 0.595 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5-chat-latest": { + id: "openai/gpt-5-chat-latest", + name: "GPT 5 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "GPT-4o mini Search Preview", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.088, output: 0.35 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 20 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT 5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "OpenAI o3 Deep Research", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-12-17", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.993999999999998, output: 59.993 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT 5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT 5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 16384 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "OpenAI o4-mini Deep Research", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT 5.1 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo-preview": { + id: "openai/gpt-4-turbo-preview", + name: "GPT-4 Turbo Preview", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 30.004999999999995 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT 4.1 Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2022-11-30", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, input: 16385, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT 5.1 Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT 5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT 4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/o3-mini-low": { + id: "openai/o3-mini-low", + name: "OpenAI o3-mini (Low)", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT 5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT 4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/o1-preview": { + id: "openai/o1-preview", + name: "OpenAI o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.993999999999998, output: 59.993 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "OpenAI o1 Pro", + family: "o-pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT 5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/chatgpt-4o-latest": { + id: "openai/chatgpt-4o-latest", + name: "ChatGPT 4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 14.993999999999998 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT 5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4o-2024-08-06": { + id: "openai/gpt-4o-2024-08-06", + name: "GPT-4o (2024-08-06)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-06", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT 5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3-pro-2025-06-10": { + id: "openai/o3-pro-2025-06-10", + name: "OpenAI o3-pro (2025-06-10)", + family: "o-pro", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.1-chat-latest": { + id: "openai/gpt-5.1-chat-latest", + name: "GPT 5.1 Chat (Latest)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 16384 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT 5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "OpenAI o3-mini (High)", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.64, output: 2.588 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/o4-mini-high": { + id: "openai/o4-mini-high", + name: "OpenAI o4-mini high", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-4o-search-preview": { + id: "openai/gpt-4o-search-preview", + name: "GPT-4o Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.47, output: 5.88 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "VongolaChouko/Starcannon-Unleashed-12B-v1.0": { + id: "VongolaChouko/Starcannon-Unleashed-12B-v1.0", + name: "Mistral Nemo Starcannon 12b v1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "cohere/command-r-plus-08-2024": { + id: "cohere/command-r-plus-08-2024", + name: "Cohere: Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.856, output: 14.246 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "cohere/command-r": { + id: "cohere/command-r", + name: "Cohere: Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-03-11", + last_updated: "2024-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.476, output: 1.428 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "GLM 4 32B 0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "GLM 4 9B 0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 8000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "GLM Z1 32B 0414", + family: "glm-z", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "GLM Z1 9B 0414", + family: "glm-z", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 8000 }, + }, + "THUDM/GLM-Z1-Rumination-32B-0414": { + id: "THUDM/GLM-Z1-Rumination-32B-0414", + name: "GLM Z1 Rumination 32B 0414", + family: "glm-z", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 65536 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax 01", + family: "minimax", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 1.1219999999999999 }, + limit: { context: 1000192, input: 1000192, output: 16384 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, input: 204800, output: 131072 }, + }, + "minimax/minimax-m2-her": { + id: "minimax/minimax-m2-her", + name: "MiniMax M2-her", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-24", + last_updated: "2026-01-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.30200000000000005, output: 1.2069999999999999 }, + limit: { context: 65532, input: 65532, output: 2048 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, input: 204800, output: 131072 }, + }, + "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24b Instruct", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "baseten/Kimi-K2-Instruct-FP4": { + id: "baseten/Kimi-K2-Instruct-FP4", + name: "Kimi K2 0711 Instruct FP4", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "GalrionSoftworks/MN-LooseCannon-12B-v1": { + id: "GalrionSoftworks/MN-LooseCannon-12B-v1", + name: "MN-LooseCannon-12B-v1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B": { + id: "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B", + name: "Tongyi DeepResearch 30B A3B", + family: "yi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.24000000000000002 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "Steelskull/L3.3-Electra-R1-70b": { + id: "Steelskull/L3.3-Electra-R1-70b", + name: "Steelskull Electra R1 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.69989, output: 0.69989 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Evalebis-70b": { + id: "Steelskull/L3.3-MS-Evalebis-70b", + name: "MS Evalebis 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-Cu-Mai-R1-70b": { + id: "Steelskull/L3.3-Cu-Mai-R1-70b", + name: "Llama 3.3 70B Cu Mai", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-Nevoria-R1-70b": { + id: "Steelskull/L3.3-Nevoria-R1-70b", + name: "Steelskull Nevoria R1 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Nevoria-70b": { + id: "Steelskull/L3.3-MS-Nevoria-70b", + name: "Steelskull Nevoria 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Evayale-70B": { + id: "Steelskull/L3.3-MS-Evayale-70B", + name: "Evayale 70b ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Salesforce/Llama-xLAM-2-70b-fc-r": { + id: "Salesforce/Llama-xLAM-2-70b-fc-r", + name: "Llama-xLAM-2 70B fc-r", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-13", + last_updated: "2025-04-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "LatitudeGames/Wayfarer-Large-70B-Llama-3.3": { + id: "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", + name: "Llama 3.3 70B Wayfarer", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.700000007, output: 0.700000007 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "TheDrummer 2/Cydonia-24B-v4.3": { + id: "TheDrummer 2/Cydonia-24B-v4.3", + name: "The Drummer Cydonia 24B v4.3", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-25", + last_updated: "2025-12-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "TheDrummer 2/Anubis-70B-v1": { + id: "TheDrummer 2/Anubis-70B-v1", + name: "Anubis 70B v1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 65536, input: 65536, output: 16384 }, + }, + "TheDrummer 2/Cydonia-24B-v4": { + id: "TheDrummer 2/Cydonia-24B-v4", + name: "The Drummer Cydonia 24B v4", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2414 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/Magidonia-24B-v4.3": { + id: "TheDrummer 2/Magidonia-24B-v4.3", + name: "The Drummer Magidonia 24B v4.3", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-25", + last_updated: "2025-12-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "TheDrummer 2/Anubis-70B-v1.1": { + id: "TheDrummer 2/Anubis-70B-v1.1", + name: "Anubis 70B v1.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "TheDrummer 2/Rocinante-12B-v1.1": { + id: "TheDrummer 2/Rocinante-12B-v1.1", + name: "Rocinante 12b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.408, output: 0.595 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "TheDrummer 2/Cydonia-24B-v2": { + id: "TheDrummer 2/Cydonia-24B-v2", + name: "The Drummer Cydonia 24B v2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/skyfall-36b-v2": { + id: "TheDrummer 2/skyfall-36b-v2", + name: "TheDrummer Skyfall 36B V2", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 64000, input: 64000, output: 32768 }, + }, + "TheDrummer 2/UnslopNemo-12B-v4.1": { + id: "TheDrummer 2/UnslopNemo-12B-v4.1", + name: "UnslopNemo 12b v4", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "TheDrummer 2/Cydonia-24B-v4.1": { + id: "TheDrummer 2/Cydonia-24B-v4.1", + name: "The Drummer Cydonia 24B v4.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "shisa-ai/shisa-v2.1-llama3.3-70b": { + id: "shisa-ai/shisa-v2.1-llama3.3-70b", + name: "Shisa V2.1 Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 32768, input: 32768, output: 4096 }, + }, + "shisa-ai/shisa-v2-llama3.3-70b": { + id: "shisa-ai/shisa-v2-llama3.3-70b", + name: "Shisa V2 Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "anthropic/claude-sonnet-4.6:thinking": { + id: "anthropic/claude-sonnet-4.6:thinking", + name: "Claude Sonnet 4.6 Thinking", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.993999999999998 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking:low": { + id: "anthropic/claude-opus-4.6:thinking:low", + name: "Claude 4.6 Opus Thinking Low", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking": { + id: "anthropic/claude-opus-4.6:thinking", + name: "Claude 4.6 Opus Thinking", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.993999999999998 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking:medium": { + id: "anthropic/claude-opus-4.6:thinking:medium", + name: "Claude 4.6 Opus Thinking Medium", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking:max": { + id: "anthropic/claude-opus-4.6:thinking:max", + name: "Claude 4.6 Opus Thinking Max", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude 4.6 Opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "miromind-ai/mirothinker-v1.5-235b": { + id: "miromind-ai/mirothinker-v1.5-235b", + name: "MiroThinker v1.5 235B", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-07", + last_updated: "2026-01-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 32768, input: 32768, output: 4000 }, + }, + "Sao10K/L3.1-70B-Hanami-x1": { + id: "Sao10K/L3.1-70B-Hanami-x1", + name: "Llama 3.1 70B Hanami", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Sao10K/L3.3-70B-Euryale-v2.3": { + id: "Sao10K/L3.3-70B-Euryale-v2.3", + name: "Llama 3.3 70B Euryale", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 20480, input: 20480, output: 16384 }, + }, + "Sao10K/L3.1-70B-Euryale-v2.2": { + id: "Sao10K/L3.1-70B-Euryale-v2.2", + name: "Llama 3.1 70B Euryale", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.357 }, + limit: { context: 20480, input: 20480, output: 16384 }, + }, + "Sao10K/L3-8B-Stheno-v3.2": { + id: "Sao10K/L3-8B-Stheno-v3.2", + name: "Sao10K Stheno 8b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated": { + id: "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", + name: "DeepSeek R1 Llama 70B Abliterated", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { + id: "huihui-ai/Qwen2.5-32B-Instruct-abliterated", + name: "Qwen 2.5 32B Abliterated", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-06", + last_updated: "2025-01-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated": { + id: "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", + name: "DeepSeek R1 Qwen Abliterated", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 1.4 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "huihui-ai/Llama-3.3-70B-Instruct-abliterated": { + id: "huihui-ai/Llama-3.3-70B-Instruct-abliterated", + name: "Llama 3.3 70B Instruct abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated": { + id: "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", + name: "Nemotron 3.1 70B abliterated", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "inflection/inflection-3-productivity": { + id: "inflection/inflection-3-productivity", + name: "Inflection 3 Productivity", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "inflection/inflection-3-pi": { + id: "inflection/inflection-3-pi", + name: "Inflection 3 Pi", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "dmind/dmind-1-mini": { + id: "dmind/dmind-1-mini", + name: "DMind-1-Mini", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.4 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "dmind/dmind-1": { + id: "dmind/dmind-1", + name: "DMind-1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.6 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2": { + id: "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", + name: "EVA-Qwen2.5-72B-v0.2", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0": { + id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0", + name: "EVA Llama 3.33 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1": { + id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1", + name: "EVA-LLaMA-3.33-70B-v0.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2": { + id: "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2", + name: "EVA-Qwen2.5-32B-v0.2", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + }, + }, + cerebras: { + id: "cerebras", + env: ["CEREBRAS_API_KEY"], + npm: "@ai-sdk/cerebras", + name: "Cerebras", + doc: "https://inference-docs.cerebras.ai/models/overview", + models: { + "qwen-3-235b-a22b-instruct-2507": { + id: "qwen-3-235b-a22b-instruct-2507", + name: "Qwen 3 235B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.2 }, + limit: { context: 131000, output: 32000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.69 }, + limit: { context: 131072, output: 32768 }, + }, + "llama3.1-8b": { + id: "llama3.1-8b", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 32000, output: 8000 }, + }, + "zai-glm-4.7": { + id: "zai-glm-4.7", + name: "Z.AI GLM-4.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.25, output: 2.75, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 40000 }, + }, + }, + }, + azure: { + id: "azure", + env: ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], + npm: "@ai-sdk/azure", + name: "Azure", + doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + models: { + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "phi-3-small-128k-instruct": { + id: "phi-3-small-128k-instruct", + name: "Phi-3-small-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "phi-3-medium-128k-instruct": { + id: "phi-3-medium-128k-instruct", + name: "Phi-3-medium-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-4-multimodal": { + id: "phi-4-multimodal", + name: "Phi-4-multimodal", + family: "phi", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.32, input_audio: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "mai-ds-r1": { + id: "mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-3.5-moe-instruct": { + id: "phi-3.5-moe-instruct", + name: "Phi-3.5-MoE-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.64 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4-turbo-vision": { + id: "gpt-4-turbo-vision", + name: "GPT-4 Turbo Vision", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "ministral-3b": { + id: "ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "llama-3.2-90b-vision-instruct": { + id: "llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.04, output: 2.04 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 32768 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 128000, input: 128000, output: 8192 }, + status: "beta", + }, + "phi-3.5-mini-instruct": { + id: "phi-3.5-mini-instruct", + name: "Phi-3.5-mini-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere-command-a": { + id: "cohere-command-a", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 131072, output: 131072 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 128000, input: 128000, output: 8192 }, + status: "beta", + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 272000, output: 128000 }, + }, + "llama-4-scout-17b-16e-instruct": { + id: "llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.78 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama-3.1-405b-instruct": { + id: "meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 5.33, output: 16 }, + limit: { context: 128000, output: 32768 }, + }, + "cohere-command-r-plus-08-2024": { + id: "cohere-command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-5.2-chat": { + id: "gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5-chat": { + id: "gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-10-24", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "gpt-5.1-chat": { + id: "gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "meta-llama-3-8b-instruct": { + id: "meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 8192, output: 2048 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "llama-3.2-11b-vision-instruct": { + id: "llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.37, output: 0.37 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama-3-70b-instruct": { + id: "meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 8192, output: 2048 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "gpt-3.5-turbo-0301": { + id: "gpt-3.5-turbo-0301", + name: "GPT-3.5 Turbo 0301", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "phi-4-mini": { + id: "phi-4-mini", + name: "Phi-4-mini", + family: "phi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-v3.2-speciale": { + id: "deepseek-v3.2-speciale", + name: "DeepSeek-V3.2-Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "cohere-command-r-08-2024": { + id: "cohere-command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-3.5-turbo-0613": { + id: "gpt-3.5-turbo-0613", + name: "GPT-3.5 Turbo 0613", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16384, output: 16384 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + shape: "completions", + }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.14, output: 4.56 }, + limit: { context: 131072, output: 131072 }, + }, + "model-router": { + id: "model-router", + name: "Model Router", + family: "model-router", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-05-19", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "cohere-embed-v-4-0": { + id: "cohere-embed-v-4-0", + name: "Embed v4", + family: "cohere-embed", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0 }, + limit: { context: 128000, output: 1536 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "gpt-4-32k": { + id: "gpt-4-32k", + name: "GPT-4 32K", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 32768, output: 32768 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 272000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "phi-4": { + id: "phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "phi-4-reasoning-plus": { + id: "phi-4-reasoning-plus", + name: "Phi-4-reasoning-plus", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "codex-mini": { + id: "codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "phi-3-mini-4k-instruct": { + id: "phi-3-mini-4k-instruct", + name: "Phi-3-mini-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 4096, output: 1024 }, + }, + "meta-llama-3.1-70b-instruct": { + id: "meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 128000, output: 32768 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 66, cache_read: 8.25 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.3-chat": { + id: "gpt-5.3-chat", + name: "GPT-5.3 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "meta-llama-3.1-8b-instruct": { + id: "meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-4-mini-reasoning": { + id: "phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-3.5-turbo-0125": { + id: "gpt-3.5-turbo-0125", + name: "GPT-3.5 Turbo 0125", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16384, output: 16384 }, + }, + "cohere-embed-v3-multilingual": { + id: "cohere-embed-v3-multilingual", + name: "Embed v3 Multilingual", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "phi-3-medium-4k-instruct": { + id: "phi-3-medium-4k-instruct", + name: "Phi-3-medium-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 4096, output: 1024 }, + }, + "cohere-embed-v3-english": { + id: "cohere-embed-v3-english", + name: "Embed v3 English", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + }, + "phi-3-mini-128k-instruct": { + id: "phi-3-mini-128k-instruct", + name: "Phi-3-mini-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "phi-4-reasoning": { + id: "phi-4-reasoning", + name: "Phi-4-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "gpt-3.5-turbo-1106": { + id: "gpt-3.5-turbo-1106", + name: "GPT-3.5 Turbo 1106", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 16384, output: 16384 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 8192, output: 8192 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-3.5-turbo-instruct": { + id: "gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-09-21", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "mistral-small-2503": { + id: "mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 32768 }, + }, + "codestral-2501": { + id: "codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "phi-3-small-8k-instruct": { + id: "phi-3-small-8k-instruct", + name: "Phi-3-small-instruct (8k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + }, + }, + cortecs: { + id: "cortecs", + env: ["CORTECS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.cortecs.ai/v1", + name: "Cortecs", + doc: "https://api.cortecs.ai/v1/models", + models: { + "kimi-k2-instruct": { + id: "kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-07-11", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.551, output: 2.646 }, + limit: { context: 131000, output: 131000 }, + }, + "claude-opus4-6": { + id: "claude-opus4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5.98, output: 29.89 }, + limit: { context: 1000000, output: 1000000 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.164, output: 1.311 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.441, output: 1.984 }, + limit: { context: 262000, output: 262000 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.34 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-4-6-sonnet": { + id: "claude-4-6-sonnet", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.59, output: 17.92 }, + limit: { context: 1000000, output: 1000000 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 2.46 }, + limit: { context: 131072, output: 131072 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.53 }, + limit: { context: 203000, output: 203000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.099, output: 0.33 }, + limit: { context: 16384, output: 16384 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.34, output: 1.34 }, + limit: { context: 196000, output: 196000 }, + }, + "devstral-small-2512": { + id: "devstral-small-2512", + name: "Devstral Small 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 262000 }, + }, + "intellect-3": { + id: "intellect-3", + name: "INTELLECT 3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.219, output: 1.202 }, + limit: { context: 128000, output: 128000 }, + }, + "nova-pro-v1": { + id: "nova-pro-v1", + name: "Nova Pro 1.0", + family: "nova-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.016, output: 4.061 }, + limit: { context: 300000, output: 5000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT Oss 120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.76 }, + limit: { context: 256000, output: 256000 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.551, output: 1.654 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT 4.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.354, output: 9.417 }, + limit: { context: 1047576, output: 32768 }, + }, + "llama-3.1-405b-instruct": { + id: "llama-3.1-405b-instruct", + name: "Llama 3.1 405B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 262000 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.23 }, + limit: { context: 198000, output: 198000 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.656, output: 2.731 }, + limit: { context: 262000, output: 262000 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.09, output: 5.43 }, + limit: { context: 200000, output: 200000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-11", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.57 }, + limit: { context: 400000, output: 400000 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.32, output: 1.18 }, + limit: { context: 196608, output: 196608 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.307, output: 16.536 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus4-5": { + id: "claude-opus4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5.98, output: 29.89 }, + limit: { context: 200000, output: 200000 }, + }, + "claude-4-5-sonnet": { + id: "claude-4-5-sonnet", + name: "Claude 4.5 Sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.259, output: 16.296 }, + limit: { context: 200000, output: 200000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.654, output: 11.024 }, + limit: { context: 1048576, output: 65535 }, + }, + }, + }, + xai: { + id: "xai", + env: ["XAI_API_KEY"], + npm: "@ai-sdk/xai", + name: "xAI", + doc: "https://docs.x.ai/docs/models", + models: { + "grok-2-1212": { + id: "grok-2-1212", + name: "Grok 2 (1212)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-12-12", + last_updated: "2024-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4.20-multi-agent-0309": { + id: "grok-4.20-multi-agent-0309", + name: "Grok 4.20 Multi-Agent", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-2": { + id: "grok-2", + name: "Grok 2", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-fast-latest": { + id: "grok-3-fast-latest", + name: "Grok 3 Fast Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2-vision": { + id: "grok-2-vision", + name: "Grok 2 Vision", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "grok-2-vision-1212": { + id: "grok-2-vision-1212", + name: "Grok 2 Vision (1212)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-beta": { + id: "grok-beta", + name: "Grok Beta", + family: "grok-beta", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15, cache_read: 5 }, + limit: { context: 131072, output: 4096 }, + }, + "grok-3-mini-fast": { + id: "grok-3-mini-fast", + name: "Grok 3 Mini Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast": { + id: "grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "grok-3-latest": { + id: "grok-3-latest", + name: "Grok 3 Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-1-fast": { + id: "grok-4-1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-2-vision-latest": { + id: "grok-2-vision-latest", + name: "Grok 2 Vision Latest", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-3-mini-latest": { + id: "grok-3-mini-latest", + name: "Grok 3 Mini Latest", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-mini-fast-latest": { + id: "grok-3-mini-fast-latest", + name: "Grok 3 Mini Fast Latest", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4.20-0309-reasoning": { + id: "grok-4.20-0309-reasoning", + name: "Grok 4.20 (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-2-latest": { + id: "grok-2-latest", + name: "Grok 2 Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-vision-beta": { + id: "grok-vision-beta", + name: "Grok Vision Beta", + family: "grok-vision", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15, cache_read: 5 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-4.20-0309-non-reasoning": { + id: "grok-4.20-0309-non-reasoning", + name: "Grok 4.20 (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-fast": { + id: "grok-3-fast", + name: "Grok 3 Fast", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + "alibaba-cn": { + id: "alibaba-cn", + env: ["DASHSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://dashscope.aliyuncs.com/compatible-mode/v1", + name: "Alibaba (China)", + doc: "https://www.alibabacloud.com/help/en/model-studio/models", + models: { + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen-VL Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-08-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen-VL Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.574 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-math-plus": { + id: "qwen-math-plus", + name: "Qwen Math Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-08-16", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 4096, output: 3072 }, + }, + "deepseek-v3-1": { + id: "deepseek-v3-1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 131072, output: 65536 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.15 }, + limit: { context: 202752, output: 16384 }, + }, + "qwen2-5-coder-7b-instruct": { + id: "qwen2-5-coder-7b-instruct", + name: "Qwen2.5-Coder 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.287 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next 80B-A3B (Thinking)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 1.434 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 1.147 }, + limit: { context: 65536, output: 8192 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3-Coder 480B-A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.861, output: 3.441 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-long": { + id: "qwen-long", + name: "Qwen Long", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.072, output: 0.287 }, + limit: { context: 10000000, output: 8192 }, + }, + "qwen3-14b": { + id: "qwen3-14b", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.574, reasoning: 1.434 }, + limit: { context: 131072, output: 8192 }, + }, + "qwq-32b": { + id: "qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.144, output: 0.574 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-vl-30b-a3b": { + id: "qwen3-vl-30b-a3b", + name: "Qwen3-VL 30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.108, output: 0.431, reasoning: 1.076 }, + limit: { context: 131072, output: 32768 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen3-asr-flash": { + id: "qwen3-asr-flash", + name: "Qwen3-ASR Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.032, output: 0.032 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.345, output: 1.377 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1-distill-qwen-14b": { + id: "deepseek-r1-distill-qwen-14b", + name: "DeepSeek R1 Distill Qwen 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.144, output: 0.431 }, + limit: { context: 32768, output: 16384 }, + }, + "moonshot-kimi-k2-instruct": { + id: "moonshot-kimi-k2-instruct", + name: "Moonshot Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-doc-turbo": { + id: "qwen-doc-turbo", + name: "Qwen Doc Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.087, output: 0.144 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11-01", + last_updated: "2025-07-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.044, output: 0.087, reasoning: 0.431 }, + limit: { context: 1000000, output: 16384 }, + }, + "qwen2-5-7b-instruct": { + id: "qwen2-5-7b-instruct", + name: "Qwen2.5 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.144 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5-VL 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.294, output: 6.881 }, + limit: { context: 131072, output: 8192 }, + }, + "tongyi-intent-detect-v3": { + id: "tongyi-intent-detect-v3", + name: "Tongyi Intent Detect V3", + family: "yi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.058, output: 0.144 }, + limit: { context: 8192, output: 1024 }, + }, + "qwen2-5-14b-instruct": { + id: "qwen2-5-14b-instruct", + name: "Qwen2.5 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.431 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3-8b": { + id: "qwen3-8b", + name: "Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.287, reasoning: 0.717 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 2.58, reasoning: 2.58 }, + limit: { context: 262144, output: 65536 }, + }, + "qvq-max": { + id: "qvq-max", + name: "QVQ Max", + family: "qvq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.147, output: 4.588 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-omni-7b": { + id: "qwen2-5-omni-7b", + name: "Qwen2.5-Omni 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.087, output: 0.345, input_audio: 5.448 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen-plus-character": { + id: "qwen-plus-character", + name: "Qwen Plus Character", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287 }, + limit: { context: 32768, output: 4096 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen2-5-vl-7b-instruct": { + id: "qwen2-5-vl-7b-instruct", + name: "Qwen2.5-VL 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.717 }, + limit: { context: 131072, output: 8192 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Moonshot Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: false, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.411 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen-omni-turbo-realtime": { + id: "qwen-omni-turbo-realtime", + name: "Qwen-Omni Turbo Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 32768, output: 2048 }, + }, + "deepseek-v3-2-exp": { + id: "deepseek-v3-2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.431 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek-r1-distill-llama-8b": { + id: "deepseek-r1-distill-llama-8b", + name: "DeepSeek R1 Distill Llama 8B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.216, output: 0.861 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen-Omni Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-19", + last_updated: "2025-03-26", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen-mt-plus": { + id: "qwen-mt-plus", + name: "Qwen-MT Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.259, output: 0.775 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen3.5-flash": { + id: "qwen3.5-flash", + name: "Qwen3.5 Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-23", + last_updated: "2026-02-23", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.172, output: 1.72, reasoning: 1.72 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen2-5-math-7b-instruct": { + id: "qwen2-5-math-7b-instruct", + name: "Qwen2.5-Math 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.287 }, + limit: { context: 4096, output: 3072 }, + }, + "deepseek-r1-distill-qwen-1-5b": { + id: "deepseek-r1-distill-qwen-1-5b", + name: "DeepSeek R1 Distill Qwen 1.5B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 16384 }, + }, + "deepseek-r1-distill-qwen-7b": { + id: "deepseek-r1-distill-qwen-7b", + name: "DeepSeek R1 Distill Qwen 7B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.072, output: 0.144 }, + limit: { context: 32768, output: 16384 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Moonshot Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 262144, output: 16384 }, + }, + "deepseek-r1-distill-qwen-32b": { + id: "deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-deep-research": { + id: "qwen-deep-research", + name: "Qwen Deep Research", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.742, output: 23.367 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.143353, output: 1.433525, reasoning: 4.300576 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen2-5-math-72b-instruct": { + id: "qwen2-5-math-72b-instruct", + name: "Qwen2.5-Math 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 4096, output: 3072 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287, reasoning: 1.147 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-32b-instruct": { + id: "qwen2-5-32b-instruct", + name: "Qwen2.5 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next 80B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.574 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.573, output: 3.44, reasoning: 3.44 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.861, output: 3.441 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-omni-flash": { + id: "qwen3-omni-flash", + name: "Qwen3-Omni Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen-math-turbo": { + id: "qwen-math-turbo", + name: "Qwen Math Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 4096, output: 3072 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.022, output: 0.216 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-72b-instruct": { + id: "qwen2-5-72b-instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-omni-flash-realtime": { + id: "qwen3-omni-flash-realtime", + name: "Qwen3-Omni Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen-vl-ocr": { + id: "qwen-vl-ocr", + name: "Qwen-VL OCR", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-28", + last_updated: "2025-04-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.717, output: 0.717 }, + limit: { context: 34096, output: 4096 }, + }, + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.574 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3-VL 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.286705, output: 1.14682, reasoning: 2.867051 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-mt-turbo": { + id: "qwen-mt-turbo", + name: "Qwen-MT Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.101, output: 0.28 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen2-5-coder-32b-instruct": { + id: "qwen2-5-coder-32b-instruct", + name: "Qwen2.5-Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1048576, output: 65536 }, + }, + "kimi/kimi-k2.5": { + id: "kimi/kimi-k2.5", + name: "kimi/kimi-k2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "siliconflow/deepseek-r1-0528": { + id: "siliconflow/deepseek-r1-0528", + name: "siliconflow/deepseek-r1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 163840, output: 32768 }, + }, + "siliconflow/deepseek-v3-0324": { + id: "siliconflow/deepseek-v3-0324", + name: "siliconflow/deepseek-v3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 163840, output: 163840 }, + }, + "siliconflow/deepseek-v3.1-terminus": { + id: "siliconflow/deepseek-v3.1-terminus", + name: "siliconflow/deepseek-v3.1-terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 163840, output: 65536 }, + }, + "siliconflow/deepseek-v3.2": { + id: "siliconflow/deepseek-v3.2", + name: "siliconflow/deepseek-v3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 163840, output: 65536 }, + }, + "MiniMax/MiniMax-M2.5": { + id: "MiniMax/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.301, output: 1.205 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + chutes: { + id: "chutes", + env: ["CHUTES_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://llm.chutes.ai/v1", + name: "Chutes", + doc: "https://llm.chutes.ai/v1/models", + models: { + "zai-org/GLM-4.7-FP8": { + id: "zai-org/GLM-4.7-FP8", + name: "GLM 4.7 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM 4.5 Air", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 131072, output: 131072 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM 4.7 Flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.35 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.7-TEE": { + id: "zai-org/GLM-4.7-TEE", + name: "GLM 4.7 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.6-TEE": { + id: "zai-org/GLM-4.6-TEE", + name: "GLM 4.6 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.7, cache_read: 0.2 }, + limit: { context: 202752, output: 65536 }, + }, + "zai-org/GLM-4.5-FP8": { + id: "zai-org/GLM-4.5-FP8", + name: "GLM 4.5 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-5-TEE": { + id: "zai-org/GLM-5-TEE", + name: "GLM 5 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "GLM 4.6V", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9, cache_read: 0.15 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-4.6-FP8": { + id: "zai-org/GLM-4.6-FP8", + name: "GLM 4.6 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.5-TEE": { + id: "zai-org/GLM-4.5-TEE", + name: "GLM 4.5 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.55 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-5-Turbo": { + id: "zai-org/GLM-5-Turbo", + name: "GLM 5 Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 1.96, cache_read: 0.245 }, + limit: { context: 202752, output: 65535 }, + }, + "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { + id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", + name: "NVIDIA Nemotron 3 Nano 30B A3B BF16", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 262144, output: 262144 }, + }, + "NousResearch/Hermes-4.3-36B": { + id: "NousResearch/Hermes-4.3-36B", + name: "Hermes 4.3 36B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.39 }, + limit: { context: 32768, output: 8192 }, + }, + "NousResearch/DeepHermes-3-Mistral-24B-Preview": { + id: "NousResearch/DeepHermes-3-Mistral-24B-Preview", + name: "DeepHermes 3 Mistral 24B Preview", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.1 }, + limit: { context: 32768, output: 32768 }, + }, + "NousResearch/Hermes-4-14B": { + id: "NousResearch/Hermes-4-14B", + name: "Hermes 4 14B", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.05 }, + limit: { context: 40960, output: 40960 }, + }, + "NousResearch/Hermes-4-405B-FP8-TEE": { + id: "NousResearch/Hermes-4-405B-FP8-TEE", + name: "Hermes 4 405B FP8 TEE", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 131072, output: 65536 }, + }, + "NousResearch/Hermes-4-70B": { + id: "NousResearch/Hermes-4-70B", + name: "Hermes 4 70B", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.38 }, + limit: { context: 131072, output: 131072 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29 }, + limit: { context: 262144, output: 32000 }, + }, + "MiniMaxAI/MiniMax-M2.5-TEE": { + id: "MiniMaxAI/MiniMax-M2.5-TEE", + name: "MiniMax M2.5 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.1, cache_read: 0.15 }, + limit: { context: 196608, output: 65536 }, + }, + "MiniMaxAI/MiniMax-M2.1-TEE": { + id: "MiniMaxAI/MiniMax-M2.1-TEE", + name: "MiniMax M2.1 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.12 }, + limit: { context: 196608, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus-TEE": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus-TEE", + name: "DeepSeek V3.1 Terminus TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.23, output: 0.9 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.2-TEE": { + id: "deepseek-ai/DeepSeek-V3.2-TEE", + name: "DeepSeek V3.2 TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.14 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3-0324-TEE": { + id: "deepseek-ai/DeepSeek-V3-0324-TEE", + name: "DeepSeek V3 0324 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.19, output: 0.87, cache_read: 0.095 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.2-Speciale-TEE": { + id: "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", + name: "DeepSeek V3.2 Speciale TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-R1-TEE": { + id: "deepseek-ai/DeepSeek-R1-TEE", + name: "DeepSeek R1 TEE", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Llama-70B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3.1-TEE": { + id: "deepseek-ai/DeepSeek-V3.1-TEE", + name: "DeepSeek V3.1 TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-R1-0528-TEE": { + id: "deepseek-ai/DeepSeek-R1-0528-TEE", + name: "DeepSeek R1 0528 TEE", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.75 }, + limit: { context: 163840, output: 65536 }, + }, + "rednote-hilab/dots.ocr": { + id: "rednote-hilab/dots.ocr", + name: "dots.ocr", + family: "rednote", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 131072, output: 131072 }, + }, + "unsloth/Mistral-Nemo-Instruct-2407": { + id: "unsloth/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04, cache_read: 0.01 }, + limit: { context: 131072, output: 131072 }, + }, + "unsloth/Mistral-Small-24B-Instruct-2501": { + id: "unsloth/Mistral-Small-24B-Instruct-2501", + name: "Mistral Small 24B Instruct 2501", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 32768, output: 32768 }, + }, + "unsloth/gemma-3-12b-it": { + id: "unsloth/gemma-3-12b-it", + name: "gemma 3 12b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "unsloth/gemma-3-4b-it": { + id: "unsloth/gemma-3-4b-it", + name: "gemma 3 4b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 96000, output: 96000 }, + }, + "unsloth/gemma-3-27b-it": { + id: "unsloth/gemma-3-27b-it", + name: "gemma 3 27b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15, cache_read: 0.02 }, + limit: { context: 128000, output: 65536 }, + }, + "unsloth/Llama-3.2-1B-Instruct": { + id: "unsloth/Llama-3.2-1B-Instruct", + name: "Llama 3.2 1B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 32768, output: 8192 }, + }, + "unsloth/Llama-3.2-3B-Instruct": { + id: "unsloth/Llama-3.2-3B-Instruct", + name: "Llama 3.2 3B Instruct", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-02-12", + last_updated: "2025-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 16384, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.9, cache_read: 0.195 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5-TEE": { + id: "moonshotai/Kimi-K2.5-TEE", + name: "Kimi K2.5 TEE", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 65535 }, + }, + "moonshotai/Kimi-K2-Thinking-TEE": { + id: "moonshotai/Kimi-K2-Thinking-TEE", + name: "Kimi K2 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.75 }, + limit: { context: 262144, output: 65535 }, + }, + "Qwen/Qwen3-30B-A3B": { + id: "Qwen/Qwen3-30B-A3B", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.22 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.33 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3.5-397B-A17B-TEE": { + id: "Qwen/Qwen3.5-397B-A17B-TEE", + name: "Qwen3.5 397B A17B TEE", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 2.34, cache_read: 0.195 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-Next": { + id: "Qwen/Qwen3-Coder-Next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE", + name: "Qwen3 Coder 480B A35B Instruct FP8 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.95, cache_read: 0.11 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE", + name: "Qwen3 235B A22B Instruct 2507 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.55, cache_read: 0.04 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B": { + id: "Qwen/Qwen3-235B-A22B", + name: "Qwen3 235B A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct-TEE": { + id: "Qwen/Qwen2.5-VL-72B-Instruct-TEE", + name: "Qwen2.5 VL 72B Instruct TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3Guard-Gen-0.6B": { + id: "Qwen/Qwen3Guard-Gen-0.6B", + name: "Qwen3Guard Gen 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 32768, output: 8192 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 16384, output: 16384 }, + }, + "tngtech/DeepSeek-R1T-Chimera": { + id: "tngtech/DeepSeek-R1T-Chimera", + name: "DeepSeek R1T Chimera", + family: "tngtech", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, + }, + "tngtech/DeepSeek-TNG-R1T2-Chimera": { + id: "tngtech/DeepSeek-TNG-R1T2-Chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "tngtech", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85 }, + limit: { context: 163840, output: 163840 }, + }, + "tngtech/TNG-R1T-Chimera-Turbo": { + id: "tngtech/TNG-R1T-Chimera-Turbo", + name: "TNG R1T Chimera Turbo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.6 }, + limit: { context: 163840, output: 65536 }, + }, + "tngtech/TNG-R1T-Chimera-TEE": { + id: "tngtech/TNG-R1T-Chimera-TEE", + name: "TNG R1T Chimera TEE", + family: "tngtech", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85 }, + limit: { context: 163840, output: 65536 }, + }, + "mistralai/Devstral-2-123B-Instruct-2512-TEE": { + id: "mistralai/Devstral-2-123B-Instruct-2512-TEE", + name: "Devstral 2 123B Instruct 2512 TEE", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 262144, output: 65536 }, + }, + "openai/gpt-oss-120b-TEE": { + id: "openai/gpt-oss-120b-TEE", + name: "gpt oss 120b TEE", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.18 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt oss 20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct 2506", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.18 }, + limit: { context: 131072, output: 131072 }, + }, + "chutesai/Mistral-Small-3.1-24B-Instruct-2503": { + id: "chutesai/Mistral-Small-3.1-24B-Instruct-2503", + name: "Mistral Small 3.1 24B Instruct 2503", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11, cache_read: 0.015 }, + limit: { context: 131072, output: 131072 }, + }, + "miromind-ai/MiroThinker-v1.5-235B": { + id: "miromind-ai/MiroThinker-v1.5-235B", + name: "MiroThinker V1.5 235B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.15 }, + limit: { context: 262144, output: 8192 }, + }, + "OpenGVLab/InternVL3-78B-TEE": { + id: "OpenGVLab/InternVL3-78B-TEE", + name: "InternVL3 78B TEE", + family: "opengvlab", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-06", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.39 }, + limit: { context: 32768, output: 32768 }, + }, + }, + }, +} From 3fc3974cbc5dba91e4df7bd64a6c03ae94cbdf41 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Thu, 9 Apr 2026 06:03:26 +0000 Subject: [PATCH 016/151] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index 2ae13d857..d827b203d 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-gFCalMaj99Q6xNVwQ1Y9Tfpnv2tr87CqqTB6iwF0QHw=", - "aarch64-linux": "sha256-/av+Q6aJftdApHkE13nnfWeCWHskShUIme3D0L8VmQo=", - "aarch64-darwin": "sha256-zCE15ciV9V1jkbCI09ls8MCgWas8WrLd6IParsZ3leI=", - "x86_64-darwin": "sha256-Q+hESX7HZqQ2eOMCFH9yiktfcJD3axNnZFsSQBiLTsc=" + "x86_64-linux": "sha256-285KZ7rZLRoc6XqCZRHc25NE+mmpGh/BVeMpv8aPQtQ=", + "aarch64-linux": "sha256-qIwmY4TP4CI7R7G6A5OMYRrorVNXjkg25tTtVpIHm2o=", + "aarch64-darwin": "sha256-RwvnZQhdYZ0u7h7evyfxuPLHHX9eO/jXTAxIFc8B+IE=", + "x86_64-darwin": "sha256-vVj40al+TEeMpbe5XG2GmJEpN+eQAvtr9W0T98l5PBE=" } } From 489f57974d55d6556dfa5ef7e9b94c06c7238908 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Thu, 9 Apr 2026 01:16:29 -0500 Subject: [PATCH 017/151] feat: add opencode go upsell modal when limits are hit (#21583) Co-authored-by: Frank --- .../cmd/tui/component/dialog-go-upsell.tsx | 99 +++++++++++++++++++ .../src/cli/cmd/tui/routes/session/index.tsx | 23 +++++ packages/opencode/src/session/retry.ts | 7 +- 3 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx new file mode 100644 index 000000000..2d200ca3b --- /dev/null +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx @@ -0,0 +1,99 @@ +import { RGBA, TextAttributes } from "@opentui/core" +import { useKeyboard } from "@opentui/solid" +import open from "open" +import { createSignal } from "solid-js" +import { selectedForeground, useTheme } from "@tui/context/theme" +import { useDialog, type DialogContext } from "@tui/ui/dialog" +import { Link } from "@tui/ui/link" + +const GO_URL = "https://opencode.ai/go" + +export type DialogGoUpsellProps = { + onClose?: (dontShowAgain?: boolean) => void +} + +function subscribe(props: DialogGoUpsellProps, dialog: ReturnType) { + open(GO_URL).catch(() => {}) + props.onClose?.() + dialog.clear() +} + +function dismiss(props: DialogGoUpsellProps, dialog: ReturnType) { + props.onClose?.(true) + dialog.clear() +} + +export function DialogGoUpsell(props: DialogGoUpsellProps) { + const dialog = useDialog() + const { theme } = useTheme() + const fg = selectedForeground(theme) + const [selected, setSelected] = createSignal(0) + + useKeyboard((evt) => { + if (evt.name === "left" || evt.name === "right" || evt.name === "tab") { + setSelected((s) => (s === 0 ? 1 : 0)) + return + } + if (evt.name !== "return") return + if (selected() === 0) subscribe(props, dialog) + else dismiss(props, dialog) + }) + + return ( + + + + Free limit reached + + dialog.clear()}> + esc + + + + + Subscribe to OpenCode Go to keep going with reliable access to the best open-source models, starting at + $5/month. + + + + + + + setSelected(0)} + onMouseUp={() => subscribe(props, dialog)} + > + + subscribe + + + setSelected(1)} + onMouseUp={() => dismiss(props, dialog)} + > + + don't show again + + + + + ) +} + +DialogGoUpsell.show = (dialog: DialogContext) => { + return new Promise((resolve) => { + dialog.replace( + () => resolve(dontShow ?? false)} />, + () => resolve(false), + ) + }) +} diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 396d75630..d4ae8db61 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -83,9 +83,15 @@ import { UI } from "@/cli/ui.ts" import { useTuiConfig } from "../../context/tui-config" import { getScrollAcceleration } from "../../util/scroll" import { TuiPluginRuntime } from "../../plugin" +import { DialogGoUpsell } from "../../component/dialog-go-upsell" +import { SessionRetry } from "@/session/retry" addDefaultParsers(parsers.parsers) +const GO_UPSELL_LAST_SEEN_AT = "go_upsell_last_seen_at" +const GO_UPSELL_DONT_SHOW = "go_upsell_dont_show" +const GO_UPSELL_WINDOW = 86_400_000 // 24 hrs + const context = createContext<{ width: number sessionID: string @@ -218,6 +224,23 @@ export function Session() { const dialog = useDialog() const renderer = useRenderer() + sdk.event.on("session.status", (evt) => { + if (evt.properties.sessionID !== route.sessionID) return + if (evt.properties.status.type !== "retry") return + if (evt.properties.status.message !== SessionRetry.GO_UPSELL_MESSAGE) return + if (dialog.stack.length > 0) return + + const seen = kv.get(GO_UPSELL_LAST_SEEN_AT) + if (typeof seen === "number" && Date.now() - seen < GO_UPSELL_WINDOW) return + + if (kv.get(GO_UPSELL_DONT_SHOW)) return + + DialogGoUpsell.show(dialog).then((dontShowAgain) => { + if (dontShowAgain) kv.set(GO_UPSELL_DONT_SHOW, true) + kv.set(GO_UPSELL_LAST_SEEN_AT, Date.now()) + }) + }) + // Allow exit when in child session (prompt is hidden) const exit = useExit() diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index 16fec29f3..5ec9a585b 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -6,6 +6,10 @@ import { iife } from "@/util/iife" export namespace SessionRetry { export type Err = ReturnType + // This exported message is shared with the TUI upsell detector. Matching on a + // literal error string kind of sucks, but it is the simplest for now. + export const GO_UPSELL_MESSAGE = "Free usage exceeded, subscribe to Go https://opencode.ai/go" + export const RETRY_INITIAL_DELAY = 2000 export const RETRY_BACKOFF_FACTOR = 2 export const RETRY_MAX_DELAY_NO_HEADERS = 30_000 // 30 seconds @@ -53,8 +57,7 @@ export namespace SessionRetry { if (MessageV2.ContextOverflowError.isInstance(error)) return undefined if (MessageV2.APIError.isInstance(error)) { if (!error.data.isRetryable) return undefined - if (error.data.responseBody?.includes("FreeUsageLimitError")) - return `Free usage exceeded, subscribe to Go https://opencode.ai/go` + if (error.data.responseBody?.includes("FreeUsageLimitError")) return GO_UPSELL_MESSAGE return error.data.message.includes("Overloaded") ? "Provider is overloaded" : error.data.message } From 847fc9d2681129c44d432a7df256ac3b77f306f9 Mon Sep 17 00:00:00 2001 From: opencode Date: Thu, 9 Apr 2026 07:12:17 +0000 Subject: [PATCH 018/151] release: v1.4.1 --- bun.lock | 32 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop-electron/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++----- packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 19 files changed, 39 insertions(+), 39 deletions(-) diff --git a/bun.lock b/bun.lock index 787161df0..483f551d3 100644 --- a/bun.lock +++ b/bun.lock @@ -27,7 +27,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -81,7 +81,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -115,7 +115,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -142,7 +142,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/openai": "3.0.48", @@ -166,7 +166,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -190,7 +190,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -223,7 +223,7 @@ }, "packages/desktop-electron": { "name": "@opencode-ai/desktop-electron", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "effect": "catalog:", "electron-context-menu": "4.1.2", @@ -266,7 +266,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -295,7 +295,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -311,7 +311,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.4.0", + "version": "1.4.1", "bin": { "opencode": "./bin/opencode", }, @@ -447,7 +447,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -481,7 +481,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "cross-spawn": "catalog:", }, @@ -496,7 +496,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -531,7 +531,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -580,7 +580,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "zod": "catalog:", }, @@ -591,7 +591,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index ea0f96e83..a052793d8 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.4.0", + "version": "1.4.1", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index e13d72b60..786c2baed 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 27bbe6505..5184c2fc0 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.4.0", + "version": "1.4.1", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 883240318..b34fa7377 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.4.0", + "version": "1.4.1", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 4427d18c9..04a0a06ba 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.4.0", + "version": "1.4.1", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop-electron/package.json b/packages/desktop-electron/package.json index d39331b36..f8274a475 100644 --- a/packages/desktop-electron/package.json +++ b/packages/desktop-electron/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop-electron", "private": true, - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "homepage": "https://opencode.ai", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 509661e02..016a205bd 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 2f6ebc9f1..c9d98dc03 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.4.0", + "version": "1.4.1", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 5562adb4b..7c49722a5 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.4.0" +version = "1.4.1" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index f1996f63b..baeee6943 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.4.0", + "version": "1.4.1", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 9a019fdfc..f842a97bf 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.4.0", + "version": "1.4.1", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 6e3fc8348..0b52bbd47 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index c33b561d1..a3aa709a7 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index 0e7752527..4e3e54800 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 3693175b8..8de6ea0d4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.4.0", + "version": "1.4.1", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 8b44dc7ae..105098595 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.4.0", + "version": "1.4.1", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index 8f963eedf..de36ca657 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.4.0", + "version": "1.4.1", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 2004bd733..afe506d0e 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.4.0", + "version": "1.4.1", "publisher": "sst-dev", "repository": { "type": "git", From 46f243fea71c65464471fcf1f5a807dd860c0f8f Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Thu, 9 Apr 2026 16:29:46 +0800 Subject: [PATCH 019/151] app: remove min loading duration (#21655) --- packages/app/src/app.tsx | 1 - packages/opencode/script/build-node.ts | 2 ++ packages/opencode/script/build.ts | 17 ++--------------- packages/opencode/script/generate.ts | 23 +++++++++++++++++++++++ 4 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 packages/opencode/script/generate.ts diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index c0715cc94..35fd36cca 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -182,7 +182,6 @@ function ConnectionGate(props: ParentProps<{ disableHealthCheck?: boolean }>) { if (checkMode() === "background" || type === "http") return false } }).pipe( - effectMinDuration(checkMode() === "blocking" ? "1.2 seconds" : 0), Effect.timeoutOrElse({ duration: "10 seconds", orElse: () => Effect.succeed(false) }), Effect.ensuring(Effect.sync(() => setCheckMode("background"))), Effect.runPromise, diff --git a/packages/opencode/script/build-node.ts b/packages/opencode/script/build-node.ts index 709c8f5ab..6c773b086 100755 --- a/packages/opencode/script/build-node.ts +++ b/packages/opencode/script/build-node.ts @@ -11,6 +11,8 @@ const dir = path.resolve(__dirname, "..") process.chdir(dir) +await import("./generate.ts") + // Load migrations from migration directories const migrationDirs = ( await fs.promises.readdir(path.join(dir, "migration"), { diff --git a/packages/opencode/script/build.ts b/packages/opencode/script/build.ts index 9c3d9bb5b..f760899c3 100755 --- a/packages/opencode/script/build.ts +++ b/packages/opencode/script/build.ts @@ -12,24 +12,11 @@ const dir = path.resolve(__dirname, "..") process.chdir(dir) +await import("./generate.ts") + import { Script } from "@opencode-ai/script" import pkg from "../package.json" -const modelsUrl = process.env.OPENCODE_MODELS_URL || "https://models.dev" -// Fetch and generate models.dev snapshot -const modelsData = process.env.MODELS_DEV_API_JSON - ? await Bun.file(process.env.MODELS_DEV_API_JSON).text() - : await fetch(`${modelsUrl}/api.json`).then((x) => x.text()) -await Bun.write( - path.join(dir, "src/provider/models-snapshot.js"), - `// @ts-nocheck\n// Auto-generated by build.ts - do not edit\nexport const snapshot = ${modelsData}\n`, -) -await Bun.write( - path.join(dir, "src/provider/models-snapshot.d.ts"), - `// Auto-generated by build.ts - do not edit\nexport declare const snapshot: Record\n`, -) -console.log("Generated models-snapshot.js") - // Load migrations from migration directories const migrationDirs = ( await fs.promises.readdir(path.join(dir, "migration"), { diff --git a/packages/opencode/script/generate.ts b/packages/opencode/script/generate.ts new file mode 100644 index 000000000..52d0cef8d --- /dev/null +++ b/packages/opencode/script/generate.ts @@ -0,0 +1,23 @@ +import path from "path" +import { fileURLToPath } from "url" + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) +const dir = path.resolve(__dirname, "..") + +process.chdir(dir) + +const modelsUrl = process.env.OPENCODE_MODELS_URL || "https://models.dev" +// Fetch and generate models.dev snapshot +const modelsData = process.env.MODELS_DEV_API_JSON + ? await Bun.file(process.env.MODELS_DEV_API_JSON).text() + : await fetch(`${modelsUrl}/api.json`).then((x) => x.text()) +await Bun.write( + path.join(dir, "src/provider/models-snapshot.js"), + `// @ts-nocheck\n// Auto-generated by build.ts - do not edit\nexport const snapshot = ${modelsData}\n`, +) +await Bun.write( + path.join(dir, "src/provider/models-snapshot.d.ts"), + `// Auto-generated by build.ts - do not edit\nexport declare const snapshot: Record\n`, +) +console.log("Generated models-snapshot.js") From c29392d0857f11208753bd95be76c6069c070289 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 10:03:26 -0400 Subject: [PATCH 020/151] fix: preserve interrupted bash output in tool results (#21598) --- packages/opencode/src/session/llm.ts | 8 +- packages/opencode/src/session/message-v2.ts | 36 ++++++--- packages/opencode/src/session/processor.ts | 11 ++- packages/opencode/src/session/prompt.ts | 2 +- .../opencode/test/session/message-v2.test.ts | 75 +++++++++++++++++++ .../test/session/processor-effect.test.ts | 1 + 6 files changed, 116 insertions(+), 17 deletions(-) diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index d55424f91..22fc9b1d5 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -234,7 +234,11 @@ export namespace LLM { // from the workflow service are executed via opencode's tool system // and results sent back over the WebSocket. if (language instanceof GitLabWorkflowLanguageModel) { - const workflowModel = language + const workflowModel = language as GitLabWorkflowLanguageModel & { + sessionID?: string + sessionPreapprovedTools?: string[] + approvalHandler?: (approvalTools: { name: string; args: string }[]) => Promise<{ approved: boolean }> + } workflowModel.sessionID = input.sessionID workflowModel.systemPrompt = system.join("\n") workflowModel.toolExecutor = async (toolName, argsJson, _requestID) => { @@ -301,7 +305,7 @@ export namespace LLM { ruleset: [], }) for (const name of uniqueNames) approvedToolsForSession.add(name) - workflowModel.sessionPreapprovedTools = [...workflowModel.sessionPreapprovedTools, ...uniqueNames] + workflowModel.sessionPreapprovedTools = [...(workflowModel.sessionPreapprovedTools ?? []), ...uniqueNames] return { approved: true } } catch { return { approved: false } diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 78604fbf7..61c159646 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -751,16 +751,32 @@ export namespace MessageV2 { ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), }) } - if (part.state.status === "error") - assistantMessage.parts.push({ - type: ("tool-" + part.tool) as `tool-${string}`, - state: "output-error", - toolCallId: part.callID, - input: part.state.input, - errorText: part.state.error, - ...(part.metadata?.providerExecuted ? { providerExecuted: true } : {}), - ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), - }) + if (part.state.status === "error") { + const output = part.state.metadata?.interrupted === true ? part.state.metadata.output : undefined + if (typeof output === "string") { + assistantMessage.parts.push({ + type: ("tool-" + part.tool) as `tool-${string}`, + state: "output-available", + toolCallId: part.callID, + input: part.state.input, + output, + ...(part.metadata?.providerExecuted ? { providerExecuted: true } : {}), + ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), + }) + } else { + assistantMessage.parts.push({ + type: ("tool-" + part.tool) as `tool-${string}`, + state: "output-error", + toolCallId: part.callID, + input: part.state.input, + errorText: part.state.error, + ...(part.metadata?.providerExecuted ? { providerExecuted: true } : {}), + ...(differentModel ? {} : { callProviderMetadata: providerMeta(part.metadata) }), + }) + } + } + // Handle pending/running tool calls to prevent dangling tool_use blocks + // Anthropic/Claude APIs require every tool_use to have a corresponding tool_result if (part.state.status === "pending" || part.state.status === "running") assistantMessage.parts.push({ type: ("tool-" + part.tool) as `tool-${string}`, diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 8e4225fed..d66e77490 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -18,6 +18,7 @@ import { SessionStatus } from "./status" import { SessionSummary } from "./summary" import type { Provider } from "@/provider/provider" import { Question } from "@/question" +import { isRecord } from "@/util/record" export namespace SessionProcessor { const DOOM_LOOP_THRESHOLD = 3 @@ -398,19 +399,21 @@ export namespace SessionProcessor { } ctx.reasoningMap = {} - const parts = MessageV2.parts(ctx.assistantMessage.id) - for (const part of parts) { - if (part.type !== "tool" || part.state.status === "completed" || part.state.status === "error") continue + for (const part of Object.values(ctx.toolcalls)) { + const end = Date.now() + const metadata = "metadata" in part.state && isRecord(part.state.metadata) ? part.state.metadata : {} yield* session.updatePart({ ...part, state: { ...part.state, status: "error", error: "Tool execution aborted", - time: { start: Date.now(), end: Date.now() }, + metadata: { ...metadata, interrupted: true }, + time: { start: "time" in part.state ? part.state.time.start : end, end }, }, }) } + ctx.toolcalls = {} ctx.assistantMessage.time.completed = Date.now() yield* session.updateMessage(ctx.assistantMessage) }) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index e9bd5bcd5..dc75efcdc 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1507,7 +1507,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the Effect.promise(() => SystemPrompt.skills(agent)), Effect.promise(() => SystemPrompt.environment(model)), instruction.system().pipe(Effect.orDie), - Effect.promise(() => MessageV2.toModelMessages(msgs, model)), + MessageV2.toModelMessagesEffect(msgs, model), ]) const system = [...env, ...(skills ? [skills] : []), ...instructions] const format = lastUser.format ?? { type: "text" as const } diff --git a/packages/opencode/test/session/message-v2.test.ts b/packages/opencode/test/session/message-v2.test.ts index 3634d6fb7..64a5d3e4b 100644 --- a/packages/opencode/test/session/message-v2.test.ts +++ b/packages/opencode/test/session/message-v2.test.ts @@ -570,6 +570,81 @@ describe("session.message-v2.toModelMessage", () => { ]) }) + test("forwards partial bash output for aborted tool calls", async () => { + const userID = "m-user" + const assistantID = "m-assistant" + const output = [ + "31403", + "12179", + "4575", + "", + "", + "User aborted the command", + "", + ].join("\n") + + const input: MessageV2.WithParts[] = [ + { + info: userInfo(userID), + parts: [ + { + ...basePart(userID, "u1"), + type: "text", + text: "run tool", + }, + ] as MessageV2.Part[], + }, + { + info: assistantInfo(assistantID, userID), + parts: [ + { + ...basePart(assistantID, "a1"), + type: "tool", + callID: "call-1", + tool: "bash", + state: { + status: "error", + input: { command: "for i in {1..20}; do print -- $RANDOM; sleep 1; done" }, + error: "Tool execution aborted", + metadata: { interrupted: true, output }, + time: { start: 0, end: 1 }, + }, + }, + ] as MessageV2.Part[], + }, + ] + + expect(await MessageV2.toModelMessages(input, model)).toStrictEqual([ + { + role: "user", + content: [{ type: "text", text: "run tool" }], + }, + { + role: "assistant", + content: [ + { + type: "tool-call", + toolCallId: "call-1", + toolName: "bash", + input: { command: "for i in {1..20}; do print -- $RANDOM; sleep 1; done" }, + providerExecuted: undefined, + }, + ], + }, + { + role: "tool", + content: [ + { + type: "tool-result", + toolCallId: "call-1", + toolName: "bash", + output: { type: "text", value: output }, + }, + ], + }, + ]) + }) + test("filters assistant messages with non-abort errors", async () => { const assistantID = "m-assistant" diff --git a/packages/opencode/test/session/processor-effect.test.ts b/packages/opencode/test/session/processor-effect.test.ts index 86149272b..f3a65b3ba 100644 --- a/packages/opencode/test/session/processor-effect.test.ts +++ b/packages/opencode/test/session/processor-effect.test.ts @@ -604,6 +604,7 @@ it.live("session.processor effect tests mark pending tools as aborted on cleanup expect(call?.state.status).toBe("error") if (call?.state.status === "error") { expect(call.state.error).toBe("Tool execution aborted") + expect(call.state.metadata?.interrupted).toBe(true) expect(call.state.time.end).toBeDefined() } }), From 58a99916bb96edf5cf605dc03e1be1e4bacf9ff7 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 10:05:14 -0400 Subject: [PATCH 021/151] fix: preserve text part timing in session processor (#21691) --- packages/opencode/src/session/processor.ts | 5 +- .../test/session/processor-effect.test.ts | 89 ++++++++++++++++++- 2 files changed, 92 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index d66e77490..497747a5d 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -352,7 +352,10 @@ export namespace SessionProcessor { }, { text: ctx.currentText.text }, )).text - ctx.currentText.time = { start: Date.now(), end: Date.now() } + { + const end = Date.now() + ctx.currentText.time = { start: ctx.currentText.time?.start ?? end, end } + } if (value.providerMetadata) ctx.currentText.metadata = value.providerMetadata yield* session.updatePart(ctx.currentText) ctx.currentText = undefined diff --git a/packages/opencode/test/session/processor-effect.test.ts b/packages/opencode/test/session/processor-effect.test.ts index f3a65b3ba..a3b335b6d 100644 --- a/packages/opencode/test/session/processor-effect.test.ts +++ b/packages/opencode/test/session/processor-effect.test.ts @@ -21,7 +21,7 @@ import { Log } from "../../src/util/log" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { provideTmpdirServer } from "../fixture/fixture" import { testEffect } from "../lib/effect" -import { reply, TestLLMServer } from "../lib/llm-server" +import { raw, reply, TestLLMServer } from "../lib/llm-server" Log.init({ print: false }) @@ -218,6 +218,93 @@ it.live("session.processor effect tests capture llm input cleanly", () => ), ) +it.live("session.processor effect tests preserve text start time", () => + provideTmpdirServer( + ({ dir, llm }) => + Effect.gen(function* () { + const gate = defer() + const { processors, session, provider } = yield* boot() + + yield* llm.push( + raw({ + head: [ + { + id: "chatcmpl-test", + object: "chat.completion.chunk", + choices: [{ delta: { role: "assistant" } }], + }, + { + id: "chatcmpl-test", + object: "chat.completion.chunk", + choices: [{ delta: { content: "hello" } }], + }, + ], + wait: gate.promise, + tail: [ + { + id: "chatcmpl-test", + object: "chat.completion.chunk", + choices: [{ delta: {}, finish_reason: "stop" }], + }, + ], + }), + ) + + const chat = yield* session.create({}) + const parent = yield* user(chat.id, "hi") + const msg = yield* assistant(chat.id, parent.id, path.resolve(dir)) + const mdl = yield* provider.getModel(ref.providerID, ref.modelID) + const handle = yield* processors.create({ + assistantMessage: msg, + sessionID: chat.id, + model: mdl, + }) + + const run = yield* handle + .process({ + user: { + id: parent.id, + sessionID: chat.id, + role: "user", + time: parent.time, + agent: parent.agent, + model: { providerID: ref.providerID, modelID: ref.modelID }, + } satisfies MessageV2.User, + sessionID: chat.id, + model: mdl, + agent: agent(), + system: [], + messages: [{ role: "user", content: "hi" }], + tools: {}, + }) + .pipe(Effect.forkChild) + + yield* Effect.promise(async () => { + const stop = Date.now() + 500 + while (Date.now() < stop) { + const text = MessageV2.parts(msg.id).find((part): part is MessageV2.TextPart => part.type === "text") + if (text?.time?.start) return + await Bun.sleep(10) + } + throw new Error("timed out waiting for text part") + }) + yield* Effect.sleep("20 millis") + gate.resolve() + + const exit = yield* Fiber.await(run) + const text = MessageV2.parts(msg.id).find((part): part is MessageV2.TextPart => part.type === "text") + + expect(Exit.isSuccess(exit)).toBe(true) + expect(text?.text).toBe("hello") + expect(text?.time?.start).toBeDefined() + expect(text?.time?.end).toBeDefined() + if (!text?.time?.start || !text.time.end) return + expect(text.time.start).toBeLessThan(text.time.end) + }), + { git: true, config: (url) => providerCfg(url) }, + ), +) + it.live("session.processor effect tests stop after token overflow requests compaction", () => provideTmpdirServer( ({ dir, llm }) => From 46da801f3066f253ac9ba78229add9931c7b48e1 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 10:54:26 -0400 Subject: [PATCH 022/151] refactor(effect): drop shell abort signals from runner (#21599) --- packages/opencode/src/effect/runner.ts | 20 +++---- packages/opencode/src/session/prompt.ts | 4 +- packages/opencode/test/effect/runner.test.ts | 56 +++++--------------- 3 files changed, 22 insertions(+), 58 deletions(-) diff --git a/packages/opencode/src/effect/runner.ts b/packages/opencode/src/effect/runner.ts index cb12b4c52..38c45a634 100644 --- a/packages/opencode/src/effect/runner.ts +++ b/packages/opencode/src/effect/runner.ts @@ -1,10 +1,10 @@ -import { Cause, Deferred, Effect, Exit, Fiber, Option, Schema, Scope, SynchronizedRef } from "effect" +import { Cause, Deferred, Effect, Exit, Fiber, Schema, Scope, SynchronizedRef } from "effect" export interface Runner { readonly state: Runner.State readonly busy: boolean readonly ensureRunning: (work: Effect.Effect) => Effect.Effect - readonly startShell: (work: (signal: AbortSignal) => Effect.Effect) => Effect.Effect + readonly startShell: (work: Effect.Effect) => Effect.Effect readonly cancel: Effect.Effect } @@ -20,7 +20,6 @@ export namespace Runner { interface ShellHandle { id: number fiber: Fiber.Fiber - abort: AbortController } interface PendingHandle { @@ -100,13 +99,7 @@ export namespace Runner { }), ).pipe(Effect.flatten) - const stopShell = (shell: ShellHandle) => - Effect.gen(function* () { - shell.abort.abort() - const exit = yield* Fiber.await(shell.fiber).pipe(Effect.timeoutOption("100 millis")) - if (Option.isNone(exit)) yield* Fiber.interrupt(shell.fiber) - yield* Fiber.await(shell.fiber).pipe(Effect.exit, Effect.asVoid) - }) + const stopShell = (shell: ShellHandle) => Fiber.interrupt(shell.fiber) const ensureRunning = (work: Effect.Effect) => SynchronizedRef.modifyEffect( @@ -138,7 +131,7 @@ export namespace Runner { ), ) - const startShell = (work: (signal: AbortSignal) => Effect.Effect) => + const startShell = (work: Effect.Effect) => SynchronizedRef.modifyEffect( ref, Effect.fnUntraced(function* (st) { @@ -153,9 +146,8 @@ export namespace Runner { } yield* busy const id = next() - const abort = new AbortController() - const fiber = yield* work(abort.signal).pipe(Effect.ensuring(finishShell(id)), Effect.forkChild) - const shell = { id, fiber, abort } satisfies ShellHandle + const fiber = yield* work.pipe(Effect.ensuring(finishShell(id)), Effect.forkChild) + const shell = { id, fiber } satisfies ShellHandle return [ Effect.gen(function* () { const exit = yield* Fiber.await(fiber) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index dc75efcdc..19f0850ff 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -743,7 +743,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the } satisfies MessageV2.TextPart) }) - const shellImpl = Effect.fn("SessionPrompt.shellImpl")(function* (input: ShellInput, signal: AbortSignal) { + const shellImpl = Effect.fn("SessionPrompt.shellImpl")(function* (input: ShellInput) { const ctx = yield* InstanceState.context const session = yield* sessions.get(input.sessionID) if (session.revert) { @@ -1577,7 +1577,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the function* (input: ShellInput) { const s = yield* InstanceState.get(state) const runner = getRunner(s.runners, input.sessionID) - return yield* runner.startShell((signal) => shellImpl(input, signal)) + return yield* runner.startShell(shellImpl(input)) }, ) diff --git a/packages/opencode/test/effect/runner.test.ts b/packages/opencode/test/effect/runner.test.ts index 9dc395876..a91df76eb 100644 --- a/packages/opencode/test/effect/runner.test.ts +++ b/packages/opencode/test/effect/runner.test.ts @@ -250,7 +250,7 @@ describe("Runner", () => { Effect.gen(function* () { const s = yield* Scope.Scope const runner = Runner.make(s) - const result = yield* runner.startShell((_signal) => Effect.succeed("shell-done")) + const result = yield* runner.startShell(Effect.succeed("shell-done")) expect(result).toBe("shell-done") expect(runner.busy).toBe(false) }), @@ -264,7 +264,7 @@ describe("Runner", () => { const fiber = yield* runner.ensureRunning(Effect.never.pipe(Effect.as("x"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") - const exit = yield* runner.startShell((_s) => Effect.succeed("nope")).pipe(Effect.exit) + const exit = yield* runner.startShell(Effect.succeed("nope")).pipe(Effect.exit) expect(Exit.isFailure(exit)).toBe(true) yield* runner.cancel @@ -279,12 +279,10 @@ describe("Runner", () => { const runner = Runner.make(s) const gate = yield* Deferred.make() - const sh = yield* runner - .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("first"))) - .pipe(Effect.forkChild) + const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("first"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") - const exit = yield* runner.startShell((_s) => Effect.succeed("second")).pipe(Effect.exit) + const exit = yield* runner.startShell(Effect.succeed("second")).pipe(Effect.exit) expect(Exit.isFailure(exit)).toBe(true) yield* Deferred.succeed(gate, undefined) @@ -302,37 +300,26 @@ describe("Runner", () => { }, }) - const sh = yield* runner - .startShell((signal) => - Effect.promise( - () => - new Promise((resolve) => { - signal.addEventListener("abort", () => resolve("aborted"), { once: true }) - }), - ), - ) - .pipe(Effect.forkChild) + const sh = yield* runner.startShell(Effect.never.pipe(Effect.as("aborted"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") - const exit = yield* runner.startShell((_s) => Effect.succeed("second")).pipe(Effect.exit) + const exit = yield* runner.startShell(Effect.succeed("second")).pipe(Effect.exit) expect(Exit.isFailure(exit)).toBe(true) yield* runner.cancel const done = yield* Fiber.await(sh) - expect(Exit.isSuccess(done)).toBe(true) + expect(Exit.isFailure(done)).toBe(true) }), ) it.live( - "cancel interrupts shell that ignores abort signal", + "cancel interrupts shell", Effect.gen(function* () { const s = yield* Scope.Scope const runner = Runner.make(s) const gate = yield* Deferred.make() - const sh = yield* runner - .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("ignored"))) - .pipe(Effect.forkChild) + const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("ignored"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") const stop = yield* runner.cancel.pipe(Effect.forkChild) @@ -356,9 +343,7 @@ describe("Runner", () => { const runner = Runner.make(s) const gate = yield* Deferred.make() - const sh = yield* runner - .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("shell-result"))) - .pipe(Effect.forkChild) + const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("shell-result"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") expect(runner.state._tag).toBe("Shell") @@ -384,9 +369,7 @@ describe("Runner", () => { const calls = yield* Ref.make(0) const gate = yield* Deferred.make() - const sh = yield* runner - .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("shell"))) - .pipe(Effect.forkChild) + const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("shell"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") const work = Effect.gen(function* () { @@ -414,16 +397,7 @@ describe("Runner", () => { const runner = Runner.make(s) const gate = yield* Deferred.make() - const sh = yield* runner - .startShell((signal) => - Effect.promise( - () => - new Promise((resolve) => { - signal.addEventListener("abort", () => resolve("aborted"), { once: true }) - }), - ), - ) - .pipe(Effect.forkChild) + const sh = yield* runner.startShell(Effect.never.pipe(Effect.as("aborted"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") const run = yield* runner.ensureRunning(Effect.succeed("y")).pipe(Effect.forkChild) @@ -478,7 +452,7 @@ describe("Runner", () => { const runner = Runner.make(s, { onBusy: Ref.update(count, (n) => n + 1), }) - yield* runner.startShell((_signal) => Effect.succeed("done")) + yield* runner.startShell(Effect.succeed("done")) expect(yield* Ref.get(count)).toBe(1) }), ) @@ -509,9 +483,7 @@ describe("Runner", () => { const runner = Runner.make(s) const gate = yield* Deferred.make() - const fiber = yield* runner - .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("ok"))) - .pipe(Effect.forkChild) + const fiber = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("ok"))).pipe(Effect.forkChild) yield* Effect.sleep("10 millis") expect(runner.busy).toBe(true) From bd53b651a305dd62ffbb5b5a333394df36bb20ab Mon Sep 17 00:00:00 2001 From: Dax Date: Thu, 9 Apr 2026 11:56:19 -0400 Subject: [PATCH 023/151] refactor: fix tool call state handling and clean up imports (#21709) --- .../opencode/src/server/routes/session.ts | 1 - packages/opencode/src/session/index.ts | 31 ++++++++++++++++++- packages/opencode/src/session/processor.ts | 17 ++++++++-- packages/opencode/src/tool/task.ts | 1 + packages/sdk/js/src/v2/index.ts | 1 - 5 files changed, 45 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index 68be1a6a5..b57ed9d47 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -121,7 +121,6 @@ export const SessionRoutes = lazy(() => ), async (c) => { const sessionID = c.req.valid("param").sessionID - log.info("SEARCH", { url: c.req.url }) const session = await Session.get(sessionID) return c.json(session) }, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 65032de96..8e1ed9dcc 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -12,7 +12,7 @@ import { Installation } from "../installation" import { Database, NotFoundError, eq, and, gte, isNull, desc, like, inArray, lt } from "../storage/db" import { SyncEvent } from "../sync" import type { SQL } from "../storage/db" -import { SessionTable } from "./session.sql" +import { PartTable, SessionTable } from "./session.sql" import { ProjectTable } from "../project/project.sql" import { Storage } from "@/storage/storage" import { Log } from "../util/log" @@ -345,6 +345,11 @@ export namespace Session { messageID: MessageID partID: PartID }) => Effect.Effect + readonly getPart: (input: { + sessionID: SessionID + messageID: MessageID + partID: PartID + }) => Effect.Effect readonly updatePart: (part: T) => Effect.Effect readonly updatePartDelta: (input: { sessionID: SessionID @@ -492,6 +497,29 @@ export namespace Session { return part }).pipe(Effect.withSpan("Session.updatePart")) + const getPart: Interface["getPart"] = Effect.fn("Session.getPart")(function* (input) { + const row = Database.use((db) => + db + .select() + .from(PartTable) + .where( + and( + eq(PartTable.session_id, input.sessionID), + eq(PartTable.message_id, input.messageID), + eq(PartTable.id, input.partID), + ), + ) + .get(), + ) + if (!row) return + return { + ...row.data, + id: row.id, + sessionID: row.session_id, + messageID: row.message_id, + } as MessageV2.Part + }) + const create = Effect.fn("Session.create")(function* (input?: { parentID?: SessionID title?: string @@ -675,6 +703,7 @@ export namespace Session { removeMessage, removePart, updatePart, + getPart, updatePartDelta, initialize, }) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 497747a5d..225961aef 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -176,12 +176,22 @@ export namespace SessionProcessor { if (ctx.assistantMessage.summary) { throw new Error(`Tool call not allowed while generating summary: ${value.toolName}`) } - const match = ctx.toolcalls[value.toolCallId] - if (!match) return + const pointer = ctx.toolcalls[value.toolCallId] + const match = yield* session.getPart({ + partID: pointer.id, + messageID: pointer.messageID, + sessionID: pointer.sessionID, + }) + if (!match || match.type !== "tool") return ctx.toolcalls[value.toolCallId] = yield* session.updatePart({ ...match, tool: value.toolName, - state: { status: "running", input: value.input, time: { start: Date.now() } }, + state: { + ...match.state, + status: "running", + input: value.input, + time: { start: Date.now() }, + }, metadata: match.metadata?.providerExecuted ? { ...value.providerMetadata, providerExecuted: true } : value.providerMetadata, @@ -237,6 +247,7 @@ export namespace SessionProcessor { case "tool-error": { const match = ctx.toolcalls[value.toolCallId] if (!match || match.state.status !== "running") return + yield* session.updatePart({ ...match, state: { diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 73b55a2fb..b97b53bb9 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -9,6 +9,7 @@ import { SessionPrompt } from "../session/prompt" import { Config } from "../config/config" import { Permission } from "@/permission" import { Effect } from "effect" +import { Log } from "@/util/log" const id = "task" diff --git a/packages/sdk/js/src/v2/index.ts b/packages/sdk/js/src/v2/index.ts index d514784bc..9615eacc7 100644 --- a/packages/sdk/js/src/v2/index.ts +++ b/packages/sdk/js/src/v2/index.ts @@ -6,7 +6,6 @@ import { createOpencodeServer } from "./server.js" import type { ServerOptions } from "./server.js" export * as data from "./data.js" -import * as data from "./data.js" export async function createOpencode(options?: ServerOptions) { const server = await createOpencodeServer({ From 5d3dba666ca5346510163881a3943a4608fe886d Mon Sep 17 00:00:00 2001 From: opencode Date: Thu, 9 Apr 2026 16:24:43 +0000 Subject: [PATCH 024/151] release: v1.4.2 --- bun.lock | 32 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop-electron/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++----- packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 19 files changed, 39 insertions(+), 39 deletions(-) diff --git a/bun.lock b/bun.lock index 483f551d3..c700ba66e 100644 --- a/bun.lock +++ b/bun.lock @@ -27,7 +27,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -81,7 +81,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -115,7 +115,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -142,7 +142,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/openai": "3.0.48", @@ -166,7 +166,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -190,7 +190,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -223,7 +223,7 @@ }, "packages/desktop-electron": { "name": "@opencode-ai/desktop-electron", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "effect": "catalog:", "electron-context-menu": "4.1.2", @@ -266,7 +266,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -295,7 +295,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -311,7 +311,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.4.1", + "version": "1.4.2", "bin": { "opencode": "./bin/opencode", }, @@ -447,7 +447,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -481,7 +481,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "cross-spawn": "catalog:", }, @@ -496,7 +496,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -531,7 +531,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -580,7 +580,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "zod": "catalog:", }, @@ -591,7 +591,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index a052793d8..3e12c492b 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.4.1", + "version": "1.4.2", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 786c2baed..dc3362e97 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 5184c2fc0..9059734cc 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.4.1", + "version": "1.4.2", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index b34fa7377..d8f0e0c0e 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.4.1", + "version": "1.4.2", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 04a0a06ba..0976bb3e2 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.4.1", + "version": "1.4.2", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop-electron/package.json b/packages/desktop-electron/package.json index f8274a475..48c17d0df 100644 --- a/packages/desktop-electron/package.json +++ b/packages/desktop-electron/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop-electron", "private": true, - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "homepage": "https://opencode.ai", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 016a205bd..943cbeb20 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index c9d98dc03..10a909c8c 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.4.1", + "version": "1.4.2", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 7c49722a5..95fc2b1c5 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.4.1" +version = "1.4.2" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.1/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index baeee6943..dd54e9c09 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.4.1", + "version": "1.4.2", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index f842a97bf..934ef0869 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.4.1", + "version": "1.4.2", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 0b52bbd47..adfee9c65 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index a3aa709a7..3dbab2c54 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index 4e3e54800..d23b740cd 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 8de6ea0d4..01c6fae86 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.4.1", + "version": "1.4.2", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 105098595..53c170f14 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.4.1", + "version": "1.4.2", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index de36ca657..d7f627c57 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.4.1", + "version": "1.4.2", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index afe506d0e..1d0472d78 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.4.1", + "version": "1.4.2", "publisher": "sst-dev", "repository": { "type": "git", From a7743e646736f3fe7ae92c6a54c5ac125ba5ce70 Mon Sep 17 00:00:00 2001 From: Aleksandr Lossenko Date: Thu, 9 Apr 2026 18:45:52 +0200 Subject: [PATCH 025/151] feat(mcp): add OAuth redirect URI configuration for MCP servers (#21385) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> --- packages/opencode/src/cli/cmd/mcp.ts | 1 + packages/opencode/src/config/config.ts | 4 +++ packages/opencode/src/mcp/index.ts | 9 +++-- packages/opencode/src/mcp/oauth-callback.ts | 36 +++++++++++++------ packages/opencode/src/mcp/oauth-provider.ts | 23 ++++++++++++ .../opencode/test/mcp/oauth-callback.test.ts | 34 ++++++++++++++++++ 6 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 packages/opencode/test/mcp/oauth-callback.test.ts diff --git a/packages/opencode/src/cli/cmd/mcp.ts b/packages/opencode/src/cli/cmd/mcp.ts index c45b9e55d..41e498102 100644 --- a/packages/opencode/src/cli/cmd/mcp.ts +++ b/packages/opencode/src/cli/cmd/mcp.ts @@ -688,6 +688,7 @@ export const McpDebugCommand = cmd({ clientId: oauthConfig?.clientId, clientSecret: oauthConfig?.clientSecret, scope: oauthConfig?.scope, + redirectUri: oauthConfig?.redirectUri, }, { onRedirect: async () => {}, diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 1952e3b57..ff79b739f 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -399,6 +399,10 @@ export namespace Config { .describe("OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted."), clientSecret: z.string().optional().describe("OAuth client secret (if required by the authorization server)"), scope: z.string().optional().describe("OAuth scopes to request during authorization"), + redirectUri: z + .string() + .optional() + .describe("OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback)."), }) .strict() .meta({ diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 45e3e2567..3196c8776 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -286,6 +286,7 @@ export namespace MCP { clientId: oauthConfig?.clientId, clientSecret: oauthConfig?.clientSecret, scope: oauthConfig?.scope, + redirectUri: oauthConfig?.redirectUri, }, { onRedirect: async (url) => { @@ -716,13 +717,16 @@ export namespace MCP { if (mcpConfig.type !== "remote") throw new Error(`MCP server ${mcpName} is not a remote server`) if (mcpConfig.oauth === false) throw new Error(`MCP server ${mcpName} has OAuth explicitly disabled`) - yield* Effect.promise(() => McpOAuthCallback.ensureRunning()) + // OAuth config is optional - if not provided, we'll use auto-discovery + const oauthConfig = typeof mcpConfig.oauth === "object" ? mcpConfig.oauth : undefined + + // Start the callback server with custom redirectUri if configured + yield* Effect.promise(() => McpOAuthCallback.ensureRunning(oauthConfig?.redirectUri)) const oauthState = Array.from(crypto.getRandomValues(new Uint8Array(32))) .map((b) => b.toString(16).padStart(2, "0")) .join("") yield* auth.updateOAuthState(mcpName, oauthState) - const oauthConfig = typeof mcpConfig.oauth === "object" ? mcpConfig.oauth : undefined let capturedUrl: URL | undefined const authProvider = new McpOAuthProvider( mcpName, @@ -731,6 +735,7 @@ export namespace MCP { clientId: oauthConfig?.clientId, clientSecret: oauthConfig?.clientSecret, scope: oauthConfig?.scope, + redirectUri: oauthConfig?.redirectUri, }, { onRedirect: async (url) => { diff --git a/packages/opencode/src/mcp/oauth-callback.ts b/packages/opencode/src/mcp/oauth-callback.ts index dd1d886fc..b5b6a7a6e 100644 --- a/packages/opencode/src/mcp/oauth-callback.ts +++ b/packages/opencode/src/mcp/oauth-callback.ts @@ -1,10 +1,14 @@ import { createConnection } from "net" import { createServer } from "http" import { Log } from "../util/log" -import { OAUTH_CALLBACK_PORT, OAUTH_CALLBACK_PATH } from "./oauth-provider" +import { OAUTH_CALLBACK_PORT, OAUTH_CALLBACK_PATH, parseRedirectUri } from "./oauth-provider" const log = Log.create({ service: "mcp.oauth-callback" }) +// Current callback server configuration (may differ from defaults if custom redirectUri is used) +let currentPort = OAUTH_CALLBACK_PORT +let currentPath = OAUTH_CALLBACK_PATH + const HTML_SUCCESS = ` @@ -71,9 +75,9 @@ export namespace McpOAuthCallback { } function handleRequest(req: import("http").IncomingMessage, res: import("http").ServerResponse) { - const url = new URL(req.url || "/", `http://localhost:${OAUTH_CALLBACK_PORT}`) + const url = new URL(req.url || "/", `http://localhost:${currentPort}`) - if (url.pathname !== OAUTH_CALLBACK_PATH) { + if (url.pathname !== currentPath) { res.writeHead(404) res.end("Not found") return @@ -135,19 +139,31 @@ export namespace McpOAuthCallback { res.end(HTML_SUCCESS) } - export async function ensureRunning(): Promise { + export async function ensureRunning(redirectUri?: string): Promise { + // Parse the redirect URI to get port and path (uses defaults if not provided) + const { port, path } = parseRedirectUri(redirectUri) + + // If server is running on a different port/path, stop it first + if (server && (currentPort !== port || currentPath !== path)) { + log.info("stopping oauth callback server to reconfigure", { oldPort: currentPort, newPort: port }) + await stop() + } + if (server) return - const running = await isPortInUse() + const running = await isPortInUse(port) if (running) { - log.info("oauth callback server already running on another instance", { port: OAUTH_CALLBACK_PORT }) + log.info("oauth callback server already running on another instance", { port }) return } + currentPort = port + currentPath = path + server = createServer(handleRequest) await new Promise((resolve, reject) => { - server!.listen(OAUTH_CALLBACK_PORT, () => { - log.info("oauth callback server started", { port: OAUTH_CALLBACK_PORT }) + server!.listen(currentPort, () => { + log.info("oauth callback server started", { port: currentPort, path: currentPath }) resolve() }) server!.on("error", reject) @@ -182,9 +198,9 @@ export namespace McpOAuthCallback { } } - export async function isPortInUse(): Promise { + export async function isPortInUse(port: number = OAUTH_CALLBACK_PORT): Promise { return new Promise((resolve) => { - const socket = createConnection(OAUTH_CALLBACK_PORT, "127.0.0.1") + const socket = createConnection(port, "127.0.0.1") socket.on("connect", () => { socket.destroy() resolve(true) diff --git a/packages/opencode/src/mcp/oauth-provider.ts b/packages/opencode/src/mcp/oauth-provider.ts index b4da73169..d675fc71e 100644 --- a/packages/opencode/src/mcp/oauth-provider.ts +++ b/packages/opencode/src/mcp/oauth-provider.ts @@ -17,6 +17,7 @@ export interface McpOAuthConfig { clientId?: string clientSecret?: string scope?: string + redirectUri?: string } export interface McpOAuthCallbacks { @@ -32,6 +33,9 @@ export class McpOAuthProvider implements OAuthClientProvider { ) {} get redirectUrl(): string { + if (this.config.redirectUri) { + return this.config.redirectUri + } return `http://127.0.0.1:${OAUTH_CALLBACK_PORT}${OAUTH_CALLBACK_PATH}` } @@ -183,3 +187,22 @@ export class McpOAuthProvider implements OAuthClientProvider { } export { OAUTH_CALLBACK_PORT, OAUTH_CALLBACK_PATH } + +/** + * Parse a redirect URI to extract port and path for the callback server. + * Returns defaults if the URI can't be parsed. + */ +export function parseRedirectUri(redirectUri?: string): { port: number; path: string } { + if (!redirectUri) { + return { port: OAUTH_CALLBACK_PORT, path: OAUTH_CALLBACK_PATH } + } + + try { + const url = new URL(redirectUri) + const port = url.port ? parseInt(url.port, 10) : url.protocol === "https:" ? 443 : 80 + const path = url.pathname || OAUTH_CALLBACK_PATH + return { port, path } + } catch { + return { port: OAUTH_CALLBACK_PORT, path: OAUTH_CALLBACK_PATH } + } +} diff --git a/packages/opencode/test/mcp/oauth-callback.test.ts b/packages/opencode/test/mcp/oauth-callback.test.ts new file mode 100644 index 000000000..58a4fa8c8 --- /dev/null +++ b/packages/opencode/test/mcp/oauth-callback.test.ts @@ -0,0 +1,34 @@ +import { test, expect, describe, afterEach } from "bun:test" +import { McpOAuthCallback } from "../../src/mcp/oauth-callback" +import { parseRedirectUri } from "../../src/mcp/oauth-provider" + +describe("parseRedirectUri", () => { + test("returns defaults when no URI provided", () => { + const result = parseRedirectUri() + expect(result.port).toBe(19876) + expect(result.path).toBe("/mcp/oauth/callback") + }) + + test("parses port and path from URI", () => { + const result = parseRedirectUri("http://127.0.0.1:8080/oauth/callback") + expect(result.port).toBe(8080) + expect(result.path).toBe("/oauth/callback") + }) + + test("returns defaults for invalid URI", () => { + const result = parseRedirectUri("not-a-valid-url") + expect(result.port).toBe(19876) + expect(result.path).toBe("/mcp/oauth/callback") + }) +}) + +describe("McpOAuthCallback.ensureRunning", () => { + afterEach(async () => { + await McpOAuthCallback.stop() + }) + + test("starts server with custom redirectUri port and path", async () => { + await McpOAuthCallback.ensureRunning("http://127.0.0.1:18000/custom/callback") + expect(McpOAuthCallback.isRunning()).toBe(true) + }) +}) From f73e4d5d31343a2e975d4213c45d1b5fa1c58e75 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Thu, 9 Apr 2026 16:47:02 +0000 Subject: [PATCH 026/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 4 ++++ packages/sdk/openapi.json | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 4f226e60c..38f4db09a 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1375,6 +1375,10 @@ export type McpOAuthConfig = { * OAuth scopes to request during authorization */ scope?: string + /** + * OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback). + */ + redirectUri?: string } export type McpRemoteConfig = { diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index a0672df2d..366bc1fc7 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -10882,6 +10882,10 @@ "scope": { "description": "OAuth scopes to request during authorization", "type": "string" + }, + "redirectUri": { + "description": "OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback).", + "type": "string" } }, "additionalProperties": false From 581a7692ffd1a8d675f6f34905db1f6935a2b8c3 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 13:01:08 -0400 Subject: [PATCH 027/151] fix(tui): restore hidden session scrollbar default (#20947) --- packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index d4ae8db61..32a9d1336 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -155,7 +155,7 @@ export function Session() { const [timestamps, setTimestamps] = kv.signal<"hide" | "show">("timestamps", "hide") const [showDetails, setShowDetails] = kv.signal("tool_details_visibility", true) const [showAssistantMetadata, setShowAssistantMetadata] = kv.signal("assistant_metadata_visibility", true) - const [showScrollbar, setShowScrollbar] = kv.signal("scrollbar_visible", true) + const [showScrollbar, setShowScrollbar] = kv.signal("scrollbar_visible", false) const [diffWrapMode] = kv.signal<"word" | "none">("diff_wrap_mode", "word") const [animationsEnabled, setAnimationsEnabled] = kv.signal("animations_enabled", true) const [showGenericToolOutput, setShowGenericToolOutput] = kv.signal("generic_tool_output_visibility", false) From b0600664abacabc3b6bd41de88859248bc2a2594 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Thu, 9 Apr 2026 12:06:26 -0500 Subject: [PATCH 028/151] feat: add support for fast modes for claude and gpt models (that support it) (#21706) --- packages/opencode/src/plugin/codex.ts | 4 +- packages/opencode/src/provider/models.ts | 57 +++++++++++----- packages/opencode/src/provider/provider.ts | 61 +++++++++++------ .../opencode/test/provider/provider.test.ts | 68 +++++++++++++++++++ 4 files changed, 152 insertions(+), 38 deletions(-) diff --git a/packages/opencode/src/plugin/codex.ts b/packages/opencode/src/plugin/codex.ts index bdeef9823..1e127fae5 100644 --- a/packages/opencode/src/plugin/codex.ts +++ b/packages/opencode/src/plugin/codex.ts @@ -376,9 +376,9 @@ export async function CodexAuthPlugin(input: PluginInput): Promise { "gpt-5.4", "gpt-5.4-mini", ]) - for (const modelId of Object.keys(provider.models)) { + for (const [modelId, model] of Object.entries(provider.models)) { if (modelId.includes("codex")) continue - if (allowedModels.has(modelId)) continue + if (allowedModels.has(model.api.id)) continue delete provider.models[modelId] } diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index 23f61d804..2d787588b 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -22,6 +22,27 @@ export namespace ModelsDev { ) const ttl = 5 * 60 * 1000 + type JsonValue = string | number | boolean | null | { [key: string]: JsonValue } | JsonValue[] + + const JsonValue: z.ZodType = z.lazy(() => + z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValue), z.record(z.string(), JsonValue)]), + ) + + const Cost = z.object({ + input: z.number(), + output: z.number(), + cache_read: z.number().optional(), + cache_write: z.number().optional(), + context_over_200k: z + .object({ + input: z.number(), + output: z.number(), + cache_read: z.number().optional(), + cache_write: z.number().optional(), + }) + .optional(), + }) + export const Model = z.object({ id: z.string(), name: z.string(), @@ -41,22 +62,7 @@ export namespace ModelsDev { .strict(), ]) .optional(), - cost: z - .object({ - input: z.number(), - output: z.number(), - cache_read: z.number().optional(), - cache_write: z.number().optional(), - context_over_200k: z - .object({ - input: z.number(), - output: z.number(), - cache_read: z.number().optional(), - cache_write: z.number().optional(), - }) - .optional(), - }) - .optional(), + cost: Cost.optional(), limit: z.object({ context: z.number(), input: z.number().optional(), @@ -68,7 +74,24 @@ export namespace ModelsDev { output: z.array(z.enum(["text", "audio", "image", "video", "pdf"])), }) .optional(), - experimental: z.boolean().optional(), + experimental: z + .object({ + modes: z + .record( + z.string(), + z.object({ + cost: Cost.optional(), + provider: z + .object({ + body: z.record(z.string(), JsonValue).optional(), + headers: z.record(z.string(), z.string()).optional(), + }) + .optional(), + }), + ) + .optional(), + }) + .optional(), status: z.enum(["alpha", "beta", "deprecated"]).optional(), provider: z.object({ npm: z.string().optional(), api: z.string().optional() }).optional(), }) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 8d5c9f2ce..004fb77f9 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -926,6 +926,28 @@ export namespace Provider { export class Service extends ServiceMap.Service()("@opencode/Provider") {} + function cost(c: ModelsDev.Model["cost"]): Model["cost"] { + const result: Model["cost"] = { + input: c?.input ?? 0, + output: c?.output ?? 0, + cache: { + read: c?.cache_read ?? 0, + write: c?.cache_write ?? 0, + }, + } + if (c?.context_over_200k) { + result.experimentalOver200K = { + cache: { + read: c.context_over_200k.cache_read ?? 0, + write: c.context_over_200k.cache_write ?? 0, + }, + input: c.context_over_200k.input, + output: c.context_over_200k.output, + } + } + return result + } + function fromModelsDevModel(provider: ModelsDev.Provider, model: ModelsDev.Model): Model { const m: Model = { id: ModelID.make(model.id), @@ -940,24 +962,7 @@ export namespace Provider { status: model.status ?? "active", headers: {}, options: {}, - cost: { - input: model.cost?.input ?? 0, - output: model.cost?.output ?? 0, - cache: { - read: model.cost?.cache_read ?? 0, - write: model.cost?.cache_write ?? 0, - }, - experimentalOver200K: model.cost?.context_over_200k - ? { - cache: { - read: model.cost.context_over_200k.cache_read ?? 0, - write: model.cost.context_over_200k.cache_write ?? 0, - }, - input: model.cost.context_over_200k.input, - output: model.cost.context_over_200k.output, - } - : undefined, - }, + cost: cost(model.cost), limit: { context: model.limit.context, input: model.limit.input, @@ -994,13 +999,31 @@ export namespace Provider { } export function fromModelsDevProvider(provider: ModelsDev.Provider): Info { + const models: Record = {} + for (const [key, model] of Object.entries(provider.models)) { + models[key] = fromModelsDevModel(provider, model) + for (const [mode, opts] of Object.entries(model.experimental?.modes ?? {})) { + const id = `${model.id}-${mode}` + const m = fromModelsDevModel(provider, model) + m.id = ModelID.make(id) + m.name = `${model.name} ${mode[0].toUpperCase()}${mode.slice(1)}` + if (opts.cost) m.cost = mergeDeep(m.cost, cost(opts.cost)) + // convert body params to camelCase for ai sdk compatibility + if (opts.provider?.body) + m.options = Object.fromEntries( + Object.entries(opts.provider.body).map(([k, v]) => [k.replace(/_([a-z])/g, (_, c) => c.toUpperCase()), v]), + ) + if (opts.provider?.headers) m.headers = opts.provider.headers + models[id] = m + } + } return { id: ProviderID.make(provider.id), source: "custom", name: provider.name, env: provider.env ?? [], options: {}, - models: mapValues(provider.models, (model) => fromModelsDevModel(provider, model)), + models, } } diff --git a/packages/opencode/test/provider/provider.test.ts b/packages/opencode/test/provider/provider.test.ts index 88e9ea64c..9cadc391a 100644 --- a/packages/opencode/test/provider/provider.test.ts +++ b/packages/opencode/test/provider/provider.test.ts @@ -6,6 +6,7 @@ import { tmpdir } from "../fixture/fixture" import { Global } from "../../src/global" import { Instance } from "../../src/project/instance" import { Plugin } from "../../src/plugin/index" +import { ModelsDev } from "../../src/provider/models" import { Provider } from "../../src/provider/provider" import { ProviderID, ModelID } from "../../src/provider/schema" import { Filesystem } from "../../src/util/filesystem" @@ -1823,6 +1824,73 @@ test("custom model inherits api.url from models.dev provider", async () => { }) }) +test("mode cost preserves over-200k pricing from base model", () => { + const provider = { + id: "openai", + name: "OpenAI", + env: [], + api: "https://api.openai.com/v1", + models: { + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + release_date: "2026-03-05", + attachment: true, + reasoning: true, + temperature: false, + tool_call: true, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { + input: 5, + output: 22.5, + cache_read: 0.5, + }, + }, + limit: { + context: 1_050_000, + input: 922_000, + output: 128_000, + }, + experimental: { + modes: { + fast: { + cost: { + input: 5, + output: 30, + cache_read: 0.5, + }, + provider: { + body: { + service_tier: "priority", + }, + }, + }, + }, + }, + }, + }, + } as ModelsDev.Provider + + const model = Provider.fromModelsDevProvider(provider).models["gpt-5.4-fast"] + expect(model.cost.input).toEqual(5) + expect(model.cost.output).toEqual(30) + expect(model.cost.cache.read).toEqual(0.5) + expect(model.cost.cache.write).toEqual(0) + expect(model.options["serviceTier"]).toEqual("priority") + expect(model.cost.experimentalOver200K).toEqual({ + input: 5, + output: 22.5, + cache: { + read: 0.5, + write: 0, + }, + }) +}) + test("model variants are generated for reasoning models", async () => { await using tmp = await tmpdir({ init: async (dir) => { From 537160dbc0cfa9e2eb1bc3ea5cf86743a15f8d90 Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Sun, 5 Apr 2026 15:02:29 +0200 Subject: [PATCH 029/151] opencode: lazy-load top-level CLI commands The CLI imports every top-level command before argument parsing has decided which handler will run. This makes simple invocations pay for the full command graph up front and slows down the default startup path. Parse the root argv first and load only the command module that matches the selected top-level command. Keep falling back to the default TUI path for non-command positionals, and preserve root help, version and completion handling --- packages/opencode/src/index.ts | 290 +++++++++++++++++++++++++++------ 1 file changed, 244 insertions(+), 46 deletions(-) diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts index 753becc26..59608f757 100644 --- a/packages/opencode/src/index.ts +++ b/packages/opencode/src/index.ts @@ -1,40 +1,17 @@ import yargs from "yargs" import { hideBin } from "yargs/helpers" -import { RunCommand } from "./cli/cmd/run" -import { GenerateCommand } from "./cli/cmd/generate" import { Log } from "./util/log" -import { ConsoleCommand } from "./cli/cmd/account" -import { ProvidersCommand } from "./cli/cmd/providers" -import { AgentCommand } from "./cli/cmd/agent" -import { UpgradeCommand } from "./cli/cmd/upgrade" -import { UninstallCommand } from "./cli/cmd/uninstall" -import { ModelsCommand } from "./cli/cmd/models" import { UI } from "./cli/ui" import { Installation } from "./installation" import { NamedError } from "@opencode-ai/util/error" import { FormatError } from "./cli/error" -import { ServeCommand } from "./cli/cmd/serve" import { Filesystem } from "./util/filesystem" -import { DebugCommand } from "./cli/cmd/debug" -import { StatsCommand } from "./cli/cmd/stats" -import { McpCommand } from "./cli/cmd/mcp" -import { GithubCommand } from "./cli/cmd/github" -import { ExportCommand } from "./cli/cmd/export" -import { ImportCommand } from "./cli/cmd/import" -import { AttachCommand } from "./cli/cmd/tui/attach" -import { TuiThreadCommand } from "./cli/cmd/tui/thread" -import { AcpCommand } from "./cli/cmd/acp" import { EOL } from "os" -import { WebCommand } from "./cli/cmd/web" -import { PrCommand } from "./cli/cmd/pr" -import { SessionCommand } from "./cli/cmd/session" -import { DbCommand } from "./cli/cmd/db" import path from "path" import { Global } from "./global" import { JsonMigration } from "./storage/json-migration" import { Database } from "./storage/db" import { errorMessage } from "./util/error" -import { PluginCommand } from "./cli/cmd/plug" import { Heap } from "./cli/heap" import { drizzle } from "drizzle-orm/bun-sqlite" @@ -52,6 +29,156 @@ process.on("uncaughtException", (e) => { const args = hideBin(process.argv) +type Mode = + | "all" + | "none" + | "tui" + | "attach" + | "run" + | "acp" + | "mcp" + | "generate" + | "debug" + | "console" + | "providers" + | "agent" + | "upgrade" + | "uninstall" + | "serve" + | "web" + | "models" + | "stats" + | "export" + | "import" + | "github" + | "pr" + | "session" + | "plugin" + | "db" + +const map = new Map([ + ["attach", "attach"], + ["run", "run"], + ["acp", "acp"], + ["mcp", "mcp"], + ["generate", "generate"], + ["debug", "debug"], + ["console", "console"], + ["providers", "providers"], + ["auth", "providers"], + ["agent", "agent"], + ["upgrade", "upgrade"], + ["uninstall", "uninstall"], + ["serve", "serve"], + ["web", "web"], + ["models", "models"], + ["stats", "stats"], + ["export", "export"], + ["import", "import"], + ["github", "github"], + ["pr", "pr"], + ["session", "session"], + ["plugin", "plugin"], + ["plug", "plugin"], + ["db", "db"], +]) + +function flag(arg: string, name: string) { + return arg === `--${name}` || arg === `--no-${name}` || arg.startsWith(`--${name}=`) +} + +function value(arg: string, name: string) { + return arg === `--${name}` || arg.startsWith(`--${name}=`) +} + +// Match the root parser closely enough to decide which top-level module to load. +function pick(argv: string[]): Mode { + for (let i = 0; i < argv.length; i++) { + const arg = argv[i] + if (!arg) continue + if (arg === "--") return "tui" + if (arg === "completion") return "all" + if (arg === "--help" || arg === "-h") return "all" + if (arg === "--version" || arg === "-v") return "none" + if (flag(arg, "print-logs") || flag(arg, "pure")) continue + if (value(arg, "log-level")) { + if (arg === "--log-level") i += 1 + continue + } + if (arg.startsWith("-") && !arg.startsWith("--")) { + if (arg.includes("h")) return "all" + if (arg.includes("v")) return "none" + return "tui" + } + if (arg.startsWith("-")) return "tui" + return map.get(arg) ?? "tui" + } + + return "tui" +} + +const mode = pick(args) +const all = mode === "all" +const none = mode === "none" + +function load(on: boolean, get: () => Promise): Promise { + if (!on) { + return Promise.resolve(undefined) + } + + return get() +} + +const [ + TuiThreadCommand, + AttachCommand, + RunCommand, + AcpCommand, + McpCommand, + GenerateCommand, + DebugCommand, + ConsoleCommand, + ProvidersCommand, + AgentCommand, + UpgradeCommand, + UninstallCommand, + ServeCommand, + WebCommand, + ModelsCommand, + StatsCommand, + ExportCommand, + ImportCommand, + GithubCommand, + PrCommand, + SessionCommand, + PluginCommand, + DbCommand, +] = await Promise.all([ + load(!none && (all || mode === "tui"), () => import("./cli/cmd/tui/thread").then((x) => x.TuiThreadCommand)), + load(!none && (all || mode === "attach"), () => import("./cli/cmd/tui/attach").then((x) => x.AttachCommand)), + load(!none && (all || mode === "run"), () => import("./cli/cmd/run").then((x) => x.RunCommand)), + load(!none && (all || mode === "acp"), () => import("./cli/cmd/acp").then((x) => x.AcpCommand)), + load(!none && (all || mode === "mcp"), () => import("./cli/cmd/mcp").then((x) => x.McpCommand)), + load(!none && (all || mode === "generate"), () => import("./cli/cmd/generate").then((x) => x.GenerateCommand)), + load(!none && (all || mode === "debug"), () => import("./cli/cmd/debug").then((x) => x.DebugCommand)), + load(!none && (all || mode === "console"), () => import("./cli/cmd/account").then((x) => x.ConsoleCommand)), + load(!none && (all || mode === "providers"), () => import("./cli/cmd/providers").then((x) => x.ProvidersCommand)), + load(!none && (all || mode === "agent"), () => import("./cli/cmd/agent").then((x) => x.AgentCommand)), + load(!none && (all || mode === "upgrade"), () => import("./cli/cmd/upgrade").then((x) => x.UpgradeCommand)), + load(!none && (all || mode === "uninstall"), () => import("./cli/cmd/uninstall").then((x) => x.UninstallCommand)), + load(!none && (all || mode === "serve"), () => import("./cli/cmd/serve").then((x) => x.ServeCommand)), + load(!none && (all || mode === "web"), () => import("./cli/cmd/web").then((x) => x.WebCommand)), + load(!none && (all || mode === "models"), () => import("./cli/cmd/models").then((x) => x.ModelsCommand)), + load(!none && (all || mode === "stats"), () => import("./cli/cmd/stats").then((x) => x.StatsCommand)), + load(!none && (all || mode === "export"), () => import("./cli/cmd/export").then((x) => x.ExportCommand)), + load(!none && (all || mode === "import"), () => import("./cli/cmd/import").then((x) => x.ImportCommand)), + load(!none && (all || mode === "github"), () => import("./cli/cmd/github").then((x) => x.GithubCommand)), + load(!none && (all || mode === "pr"), () => import("./cli/cmd/pr").then((x) => x.PrCommand)), + load(!none && (all || mode === "session"), () => import("./cli/cmd/session").then((x) => x.SessionCommand)), + load(!none && (all || mode === "plugin"), () => import("./cli/cmd/plug").then((x) => x.PluginCommand)), + load(!none && (all || mode === "db"), () => import("./cli/cmd/db").then((x) => x.DbCommand)), +]) + function show(out: string) { const text = out.trimStart() if (!text.startsWith("opencode ")) { @@ -148,29 +275,100 @@ const cli = yargs(args) }) .usage("") .completion("completion", "generate shell completion script") - .command(AcpCommand) - .command(McpCommand) - .command(TuiThreadCommand) - .command(AttachCommand) - .command(RunCommand) - .command(GenerateCommand) - .command(DebugCommand) - .command(ConsoleCommand) - .command(ProvidersCommand) - .command(AgentCommand) - .command(UpgradeCommand) - .command(UninstallCommand) - .command(ServeCommand) - .command(WebCommand) - .command(ModelsCommand) - .command(StatsCommand) - .command(ExportCommand) - .command(ImportCommand) - .command(GithubCommand) - .command(PrCommand) - .command(SessionCommand) - .command(PluginCommand) - .command(DbCommand) + +if (TuiThreadCommand) { + cli.command(TuiThreadCommand) +} + +if (AttachCommand) { + cli.command(AttachCommand) +} + +if (AcpCommand) { + cli.command(AcpCommand) +} + +if (McpCommand) { + cli.command(McpCommand) +} + +if (RunCommand) { + cli.command(RunCommand) +} + +if (GenerateCommand) { + cli.command(GenerateCommand) +} + +if (DebugCommand) { + cli.command(DebugCommand) +} + +if (ConsoleCommand) { + cli.command(ConsoleCommand) +} + +if (ProvidersCommand) { + cli.command(ProvidersCommand) +} + +if (AgentCommand) { + cli.command(AgentCommand) +} + +if (UpgradeCommand) { + cli.command(UpgradeCommand) +} + +if (UninstallCommand) { + cli.command(UninstallCommand) +} + +if (ServeCommand) { + cli.command(ServeCommand) +} + +if (WebCommand) { + cli.command(WebCommand) +} + +if (ModelsCommand) { + cli.command(ModelsCommand) +} + +if (StatsCommand) { + cli.command(StatsCommand) +} + +if (ExportCommand) { + cli.command(ExportCommand) +} + +if (ImportCommand) { + cli.command(ImportCommand) +} + +if (GithubCommand) { + cli.command(GithubCommand) +} + +if (PrCommand) { + cli.command(PrCommand) +} + +if (SessionCommand) { + cli.command(SessionCommand) +} + +if (PluginCommand) { + cli.command(PluginCommand) +} + +if (DbCommand) { + cli.command(DbCommand) +} + +cli .fail((msg, err) => { if ( msg?.startsWith("Unknown argument") || From 34b979265427444d7e311773d6957221bd092a32 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 13:52:58 -0400 Subject: [PATCH 030/151] delete unused withALS method (#21723) --- packages/opencode/src/effect/instance-state.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index cc5901fb5..a379d3afc 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -73,10 +73,4 @@ export namespace InstanceState { Effect.gen(function* () { return yield* ScopedCache.invalidate(self.cache, yield* directory) }) - - /** - * Effect finalizers run on the fiber scheduler after the original async - * boundary, so ALS reads like Instance.directory can be gone by then. - */ - export const withALS = (fn: () => T) => Effect.map(context, (ctx) => Instance.restore(ctx, fn)) } From 02b32e1ba752fae421def60cd6d6e43fbf42af3a Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Thu, 9 Apr 2026 20:03:48 +0200 Subject: [PATCH 031/151] Revert "opencode: lazy-load top-level CLI commands" (#21726) --- packages/opencode/src/index.ts | 290 ++++++--------------------------- 1 file changed, 46 insertions(+), 244 deletions(-) diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts index 59608f757..753becc26 100644 --- a/packages/opencode/src/index.ts +++ b/packages/opencode/src/index.ts @@ -1,17 +1,40 @@ import yargs from "yargs" import { hideBin } from "yargs/helpers" +import { RunCommand } from "./cli/cmd/run" +import { GenerateCommand } from "./cli/cmd/generate" import { Log } from "./util/log" +import { ConsoleCommand } from "./cli/cmd/account" +import { ProvidersCommand } from "./cli/cmd/providers" +import { AgentCommand } from "./cli/cmd/agent" +import { UpgradeCommand } from "./cli/cmd/upgrade" +import { UninstallCommand } from "./cli/cmd/uninstall" +import { ModelsCommand } from "./cli/cmd/models" import { UI } from "./cli/ui" import { Installation } from "./installation" import { NamedError } from "@opencode-ai/util/error" import { FormatError } from "./cli/error" +import { ServeCommand } from "./cli/cmd/serve" import { Filesystem } from "./util/filesystem" +import { DebugCommand } from "./cli/cmd/debug" +import { StatsCommand } from "./cli/cmd/stats" +import { McpCommand } from "./cli/cmd/mcp" +import { GithubCommand } from "./cli/cmd/github" +import { ExportCommand } from "./cli/cmd/export" +import { ImportCommand } from "./cli/cmd/import" +import { AttachCommand } from "./cli/cmd/tui/attach" +import { TuiThreadCommand } from "./cli/cmd/tui/thread" +import { AcpCommand } from "./cli/cmd/acp" import { EOL } from "os" +import { WebCommand } from "./cli/cmd/web" +import { PrCommand } from "./cli/cmd/pr" +import { SessionCommand } from "./cli/cmd/session" +import { DbCommand } from "./cli/cmd/db" import path from "path" import { Global } from "./global" import { JsonMigration } from "./storage/json-migration" import { Database } from "./storage/db" import { errorMessage } from "./util/error" +import { PluginCommand } from "./cli/cmd/plug" import { Heap } from "./cli/heap" import { drizzle } from "drizzle-orm/bun-sqlite" @@ -29,156 +52,6 @@ process.on("uncaughtException", (e) => { const args = hideBin(process.argv) -type Mode = - | "all" - | "none" - | "tui" - | "attach" - | "run" - | "acp" - | "mcp" - | "generate" - | "debug" - | "console" - | "providers" - | "agent" - | "upgrade" - | "uninstall" - | "serve" - | "web" - | "models" - | "stats" - | "export" - | "import" - | "github" - | "pr" - | "session" - | "plugin" - | "db" - -const map = new Map([ - ["attach", "attach"], - ["run", "run"], - ["acp", "acp"], - ["mcp", "mcp"], - ["generate", "generate"], - ["debug", "debug"], - ["console", "console"], - ["providers", "providers"], - ["auth", "providers"], - ["agent", "agent"], - ["upgrade", "upgrade"], - ["uninstall", "uninstall"], - ["serve", "serve"], - ["web", "web"], - ["models", "models"], - ["stats", "stats"], - ["export", "export"], - ["import", "import"], - ["github", "github"], - ["pr", "pr"], - ["session", "session"], - ["plugin", "plugin"], - ["plug", "plugin"], - ["db", "db"], -]) - -function flag(arg: string, name: string) { - return arg === `--${name}` || arg === `--no-${name}` || arg.startsWith(`--${name}=`) -} - -function value(arg: string, name: string) { - return arg === `--${name}` || arg.startsWith(`--${name}=`) -} - -// Match the root parser closely enough to decide which top-level module to load. -function pick(argv: string[]): Mode { - for (let i = 0; i < argv.length; i++) { - const arg = argv[i] - if (!arg) continue - if (arg === "--") return "tui" - if (arg === "completion") return "all" - if (arg === "--help" || arg === "-h") return "all" - if (arg === "--version" || arg === "-v") return "none" - if (flag(arg, "print-logs") || flag(arg, "pure")) continue - if (value(arg, "log-level")) { - if (arg === "--log-level") i += 1 - continue - } - if (arg.startsWith("-") && !arg.startsWith("--")) { - if (arg.includes("h")) return "all" - if (arg.includes("v")) return "none" - return "tui" - } - if (arg.startsWith("-")) return "tui" - return map.get(arg) ?? "tui" - } - - return "tui" -} - -const mode = pick(args) -const all = mode === "all" -const none = mode === "none" - -function load(on: boolean, get: () => Promise): Promise { - if (!on) { - return Promise.resolve(undefined) - } - - return get() -} - -const [ - TuiThreadCommand, - AttachCommand, - RunCommand, - AcpCommand, - McpCommand, - GenerateCommand, - DebugCommand, - ConsoleCommand, - ProvidersCommand, - AgentCommand, - UpgradeCommand, - UninstallCommand, - ServeCommand, - WebCommand, - ModelsCommand, - StatsCommand, - ExportCommand, - ImportCommand, - GithubCommand, - PrCommand, - SessionCommand, - PluginCommand, - DbCommand, -] = await Promise.all([ - load(!none && (all || mode === "tui"), () => import("./cli/cmd/tui/thread").then((x) => x.TuiThreadCommand)), - load(!none && (all || mode === "attach"), () => import("./cli/cmd/tui/attach").then((x) => x.AttachCommand)), - load(!none && (all || mode === "run"), () => import("./cli/cmd/run").then((x) => x.RunCommand)), - load(!none && (all || mode === "acp"), () => import("./cli/cmd/acp").then((x) => x.AcpCommand)), - load(!none && (all || mode === "mcp"), () => import("./cli/cmd/mcp").then((x) => x.McpCommand)), - load(!none && (all || mode === "generate"), () => import("./cli/cmd/generate").then((x) => x.GenerateCommand)), - load(!none && (all || mode === "debug"), () => import("./cli/cmd/debug").then((x) => x.DebugCommand)), - load(!none && (all || mode === "console"), () => import("./cli/cmd/account").then((x) => x.ConsoleCommand)), - load(!none && (all || mode === "providers"), () => import("./cli/cmd/providers").then((x) => x.ProvidersCommand)), - load(!none && (all || mode === "agent"), () => import("./cli/cmd/agent").then((x) => x.AgentCommand)), - load(!none && (all || mode === "upgrade"), () => import("./cli/cmd/upgrade").then((x) => x.UpgradeCommand)), - load(!none && (all || mode === "uninstall"), () => import("./cli/cmd/uninstall").then((x) => x.UninstallCommand)), - load(!none && (all || mode === "serve"), () => import("./cli/cmd/serve").then((x) => x.ServeCommand)), - load(!none && (all || mode === "web"), () => import("./cli/cmd/web").then((x) => x.WebCommand)), - load(!none && (all || mode === "models"), () => import("./cli/cmd/models").then((x) => x.ModelsCommand)), - load(!none && (all || mode === "stats"), () => import("./cli/cmd/stats").then((x) => x.StatsCommand)), - load(!none && (all || mode === "export"), () => import("./cli/cmd/export").then((x) => x.ExportCommand)), - load(!none && (all || mode === "import"), () => import("./cli/cmd/import").then((x) => x.ImportCommand)), - load(!none && (all || mode === "github"), () => import("./cli/cmd/github").then((x) => x.GithubCommand)), - load(!none && (all || mode === "pr"), () => import("./cli/cmd/pr").then((x) => x.PrCommand)), - load(!none && (all || mode === "session"), () => import("./cli/cmd/session").then((x) => x.SessionCommand)), - load(!none && (all || mode === "plugin"), () => import("./cli/cmd/plug").then((x) => x.PluginCommand)), - load(!none && (all || mode === "db"), () => import("./cli/cmd/db").then((x) => x.DbCommand)), -]) - function show(out: string) { const text = out.trimStart() if (!text.startsWith("opencode ")) { @@ -275,100 +148,29 @@ const cli = yargs(args) }) .usage("") .completion("completion", "generate shell completion script") - -if (TuiThreadCommand) { - cli.command(TuiThreadCommand) -} - -if (AttachCommand) { - cli.command(AttachCommand) -} - -if (AcpCommand) { - cli.command(AcpCommand) -} - -if (McpCommand) { - cli.command(McpCommand) -} - -if (RunCommand) { - cli.command(RunCommand) -} - -if (GenerateCommand) { - cli.command(GenerateCommand) -} - -if (DebugCommand) { - cli.command(DebugCommand) -} - -if (ConsoleCommand) { - cli.command(ConsoleCommand) -} - -if (ProvidersCommand) { - cli.command(ProvidersCommand) -} - -if (AgentCommand) { - cli.command(AgentCommand) -} - -if (UpgradeCommand) { - cli.command(UpgradeCommand) -} - -if (UninstallCommand) { - cli.command(UninstallCommand) -} - -if (ServeCommand) { - cli.command(ServeCommand) -} - -if (WebCommand) { - cli.command(WebCommand) -} - -if (ModelsCommand) { - cli.command(ModelsCommand) -} - -if (StatsCommand) { - cli.command(StatsCommand) -} - -if (ExportCommand) { - cli.command(ExportCommand) -} - -if (ImportCommand) { - cli.command(ImportCommand) -} - -if (GithubCommand) { - cli.command(GithubCommand) -} - -if (PrCommand) { - cli.command(PrCommand) -} - -if (SessionCommand) { - cli.command(SessionCommand) -} - -if (PluginCommand) { - cli.command(PluginCommand) -} - -if (DbCommand) { - cli.command(DbCommand) -} - -cli + .command(AcpCommand) + .command(McpCommand) + .command(TuiThreadCommand) + .command(AttachCommand) + .command(RunCommand) + .command(GenerateCommand) + .command(DebugCommand) + .command(ConsoleCommand) + .command(ProvidersCommand) + .command(AgentCommand) + .command(UpgradeCommand) + .command(UninstallCommand) + .command(ServeCommand) + .command(WebCommand) + .command(ModelsCommand) + .command(StatsCommand) + .command(ExportCommand) + .command(ImportCommand) + .command(GithubCommand) + .command(PrCommand) + .command(SessionCommand) + .command(PluginCommand) + .command(DbCommand) .fail((msg, err) => { if ( msg?.startsWith("Unknown argument") || From 2ecc6ae65ffc7c767d0c288a53ccf8344a53011e Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 14:32:41 -0400 Subject: [PATCH 032/151] fix(effect): suspend agent default layer construction (#21732) --- packages/opencode/src/agent/agent.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 0c6fe6ec9..843d65433 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -393,11 +393,13 @@ export namespace Agent { }), ) - export const defaultLayer = layer.pipe( - Layer.provide(Provider.defaultLayer), - Layer.provide(Auth.defaultLayer), - Layer.provide(Config.defaultLayer), - Layer.provide(Skill.defaultLayer), + export const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(Provider.defaultLayer), + Layer.provide(Auth.defaultLayer), + Layer.provide(Config.defaultLayer), + Layer.provide(Skill.defaultLayer), + ), ) const { runPromise } = makeRuntime(Service, defaultLayer) From 9f54115c5dbe98b7a0020875cb2f6035626af19d Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 14:52:06 -0400 Subject: [PATCH 033/151] refactor: remove unused runtime facade exports (#21731) --- packages/opencode/src/account/index.ts | 17 ---------- .../src/effect/cross-spawn-spawner.ts | 1 - packages/opencode/src/git/index.ts | 32 ------------------- packages/opencode/src/mcp/index.ts | 3 -- packages/opencode/src/pty/index.ts | 4 --- packages/opencode/src/session/compaction.ts | 11 ------- packages/opencode/src/session/index.ts | 13 -------- packages/opencode/src/session/todo.ts | 4 --- 8 files changed, 85 deletions(-) diff --git a/packages/opencode/src/account/index.ts b/packages/opencode/src/account/index.ts index 37baf34e9..0aca85782 100644 --- a/packages/opencode/src/account/index.ts +++ b/packages/opencode/src/account/index.ts @@ -461,28 +461,11 @@ export namespace Account { return Option.getOrUndefined(await runPromise((service) => service.active())) } - export async function list(): Promise { - return runPromise((service) => service.list()) - } - - export async function activeOrg(): Promise { - return Option.getOrUndefined(await runPromise((service) => service.activeOrg())) - } - export async function orgsByAccount(): Promise { return runPromise((service) => service.orgsByAccount()) } - export async function orgs(accountID: AccountID): Promise { - return runPromise((service) => service.orgs(accountID)) - } - export async function switchOrg(accountID: AccountID, orgID: OrgID) { return runPromise((service) => service.use(accountID, Option.some(orgID))) } - - export async function token(accountID: AccountID): Promise { - const t = await runPromise((service) => service.token(accountID)) - return Option.getOrUndefined(t) - } } diff --git a/packages/opencode/src/effect/cross-spawn-spawner.ts b/packages/opencode/src/effect/cross-spawn-spawner.ts index 92e5b3ba2..76982a613 100644 --- a/packages/opencode/src/effect/cross-spawn-spawner.ts +++ b/packages/opencode/src/effect/cross-spawn-spawner.ts @@ -499,4 +499,3 @@ const rt = lazy(async () => { type RT = Awaited> export const runPromiseExit: RT["runPromiseExit"] = async (...args) => (await rt()).runPromiseExit(...(args as [any])) -export const runPromise: RT["runPromise"] = async (...args) => (await rt()).runPromise(...(args as [any])) diff --git a/packages/opencode/src/git/index.ts b/packages/opencode/src/git/index.ts index 2b3a8a9b0..10c96d560 100644 --- a/packages/opencode/src/git/index.ts +++ b/packages/opencode/src/git/index.ts @@ -265,39 +265,7 @@ export namespace Git { return runPromise((git) => git.run(args, opts)) } - export async function branch(cwd: string) { - return runPromise((git) => git.branch(cwd)) - } - - export async function prefix(cwd: string) { - return runPromise((git) => git.prefix(cwd)) - } - export async function defaultBranch(cwd: string) { return runPromise((git) => git.defaultBranch(cwd)) } - - export async function hasHead(cwd: string) { - return runPromise((git) => git.hasHead(cwd)) - } - - export async function mergeBase(cwd: string, base: string, head?: string) { - return runPromise((git) => git.mergeBase(cwd, base, head)) - } - - export async function show(cwd: string, ref: string, file: string, prefix?: string) { - return runPromise((git) => git.show(cwd, ref, file, prefix)) - } - - export async function status(cwd: string) { - return runPromise((git) => git.status(cwd)) - } - - export async function diff(cwd: string, ref: string) { - return runPromise((git) => git.diff(cwd, ref)) - } - - export async function stats(cwd: string, ref: string) { - return runPromise((git) => git.stats(cwd, ref)) - } } diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 3196c8776..2599a8dec 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -906,9 +906,6 @@ export namespace MCP { export const disconnect = async (name: string) => runPromise((svc) => svc.disconnect(name)) - export const getPrompt = async (clientName: string, name: string, args?: Record) => - runPromise((svc) => svc.getPrompt(clientName, name, args)) - export const startAuth = async (mcpName: string) => runPromise((svc) => svc.startAuth(mcpName)) export const authenticate = async (mcpName: string) => runPromise((svc) => svc.authenticate(mcpName)) diff --git a/packages/opencode/src/pty/index.ts b/packages/opencode/src/pty/index.ts index 0321b9800..7695b9ce6 100644 --- a/packages/opencode/src/pty/index.ts +++ b/packages/opencode/src/pty/index.ts @@ -371,10 +371,6 @@ export namespace Pty { return runPromise((svc) => svc.get(id)) } - export async function resize(id: PtyID, cols: number, rows: number) { - return runPromise((svc) => svc.resize(id, cols, rows)) - } - export async function write(id: PtyID, data: string) { return runPromise((svc) => svc.write(id, data)) } diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 0961c20a6..975327198 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -401,17 +401,6 @@ When constructing the summary, try to stick to this template: return runPromise((svc) => svc.prune(input)) } - export const process = fn( - z.object({ - parentID: MessageID.zod, - messages: z.custom(), - sessionID: SessionID.zod, - auto: z.boolean(), - overflow: z.boolean().optional(), - }), - (input) => runPromise((svc) => svc.process(input)), - ) - export const create = fn( z.object({ sessionID: SessionID.zod, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 8e1ed9dcc..cc81293ec 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -730,7 +730,6 @@ export namespace Session { runPromise((svc) => svc.fork(input)), ) - export const touch = fn(SessionID.zod, (id) => runPromise((svc) => svc.touch(id))) export const get = fn(SessionID.zod, (id) => runPromise((svc) => svc.get(id))) export const share = fn(SessionID.zod, (id) => runPromise((svc) => svc.share(id))) export const unshare = fn(SessionID.zod, (id) => runPromise((svc) => svc.unshare(id))) @@ -743,24 +742,12 @@ export namespace Session { runPromise((svc) => svc.setArchived(input)), ) - export const setPermission = fn(z.object({ sessionID: SessionID.zod, permission: Permission.Ruleset }), (input) => - runPromise((svc) => svc.setPermission(input)), - ) - export const setRevert = fn( z.object({ sessionID: SessionID.zod, revert: Info.shape.revert, summary: Info.shape.summary }), (input) => runPromise((svc) => svc.setRevert({ sessionID: input.sessionID, revert: input.revert, summary: input.summary })), ) - export const clearRevert = fn(SessionID.zod, (id) => runPromise((svc) => svc.clearRevert(id))) - - export const setSummary = fn(z.object({ sessionID: SessionID.zod, summary: Info.shape.summary }), (input) => - runPromise((svc) => svc.setSummary({ sessionID: input.sessionID, summary: input.summary })), - ) - - export const diff = fn(SessionID.zod, (id) => runPromise((svc) => svc.diff(id))) - export const messages = fn(z.object({ sessionID: SessionID.zod, limit: z.number().optional() }), (input) => runPromise((svc) => svc.messages(input)), ) diff --git a/packages/opencode/src/session/todo.ts b/packages/opencode/src/session/todo.ts index 2d85ad224..4adfc7bc5 100644 --- a/packages/opencode/src/session/todo.ts +++ b/packages/opencode/src/session/todo.ts @@ -85,10 +85,6 @@ export namespace Todo { export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) const { runPromise } = makeRuntime(Service, defaultLayer) - export async function update(input: { sessionID: SessionID; todos: Info[] }) { - return runPromise((svc) => svc.update(input)) - } - export async function get(sessionID: SessionID) { return runPromise((svc) => svc.get(sessionID)) } From 3199383eef4cc2ac4ca086f9485b071061dcff70 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 15:20:28 -0400 Subject: [PATCH 034/151] fix: finalize interrupted bash via tool result path (#21724) --- packages/opencode/src/session/processor.ts | 178 +++++++++++++----- packages/opencode/src/session/prompt.ts | 20 +- .../opencode/test/session/compaction.test.ts | 13 +- .../test/session/prompt-effect.test.ts | 138 ++++++++++++++ 4 files changed, 282 insertions(+), 67 deletions(-) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 225961aef..2e4d34bfc 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -1,4 +1,4 @@ -import { Cause, Effect, Layer, ServiceMap } from "effect" +import { Cause, Deferred, Effect, Layer, ServiceMap } from "effect" import * as Stream from "effect/Stream" import { Agent } from "@/agent/agent" import { Bus } from "@/bus" @@ -18,6 +18,7 @@ import { SessionStatus } from "./status" import { SessionSummary } from "./summary" import type { Provider } from "@/provider/provider" import { Question } from "@/question" +import { errorMessage } from "@/util/error" import { isRecord } from "@/util/record" export namespace SessionProcessor { @@ -30,7 +31,19 @@ export namespace SessionProcessor { export interface Handle { readonly message: MessageV2.Assistant - readonly partFromToolCall: (toolCallID: string) => MessageV2.ToolPart | undefined + readonly updateToolCall: ( + toolCallID: string, + update: (part: MessageV2.ToolPart) => MessageV2.ToolPart, + ) => Effect.Effect + readonly completeToolCall: ( + toolCallID: string, + output: { + title: string + metadata: Record + output: string + attachments?: MessageV2.FilePart[] + }, + ) => Effect.Effect readonly process: (streamInput: LLM.StreamInput) => Effect.Effect } @@ -44,8 +57,15 @@ export namespace SessionProcessor { readonly create: (input: Input) => Effect.Effect } + type ToolCall = { + partID: MessageV2.ToolPart["id"] + messageID: MessageV2.ToolPart["messageID"] + sessionID: MessageV2.ToolPart["sessionID"] + done: Deferred.Deferred + } + interface ProcessorContext extends Input { - toolcalls: Record + toolcalls: Record shouldBreak: boolean snapshot: string | undefined blocked: boolean @@ -108,6 +128,88 @@ export namespace SessionProcessor { aborted, }) + const settleToolCall = Effect.fn("SessionProcessor.settleToolCall")(function* (toolCallID: string) { + const done = ctx.toolcalls[toolCallID]?.done + delete ctx.toolcalls[toolCallID] + if (done) yield* Deferred.succeed(done, undefined).pipe(Effect.ignore) + }) + + const readToolCall = Effect.fn("SessionProcessor.readToolCall")(function* (toolCallID: string) { + const call = ctx.toolcalls[toolCallID] + if (!call) return + const part = yield* session.getPart({ + partID: call.partID, + messageID: call.messageID, + sessionID: call.sessionID, + }) + if (!part || part.type !== "tool") { + delete ctx.toolcalls[toolCallID] + return + } + return { call, part } + }) + + const updateToolCall = Effect.fn("SessionProcessor.updateToolCall")(function* ( + toolCallID: string, + update: (part: MessageV2.ToolPart) => MessageV2.ToolPart, + ) { + const match = yield* readToolCall(toolCallID) + if (!match) return + const part = yield* session.updatePart(update(match.part)) + ctx.toolcalls[toolCallID] = { + ...match.call, + partID: part.id, + messageID: part.messageID, + sessionID: part.sessionID, + } + return part + }) + + const completeToolCall = Effect.fn("SessionProcessor.completeToolCall")(function* ( + toolCallID: string, + output: { + title: string + metadata: Record + output: string + attachments?: MessageV2.FilePart[] + }, + ) { + const match = yield* readToolCall(toolCallID) + if (!match || match.part.state.status !== "running") return + yield* session.updatePart({ + ...match.part, + state: { + status: "completed", + input: match.part.state.input, + output: output.output, + metadata: output.metadata, + title: output.title, + time: { start: match.part.state.time.start, end: Date.now() }, + attachments: output.attachments, + }, + }) + yield* settleToolCall(toolCallID) + }) + + const failToolCall = Effect.fn("SessionProcessor.failToolCall")(function* (toolCallID: string, error: unknown) { + const match = yield* readToolCall(toolCallID) + if (!match || match.part.state.status !== "running") return false + yield* session.updatePart({ + ...match.part, + state: { + status: "error", + input: match.part.state.input, + error: errorMessage(error), + time: { start: match.part.state.time.start, end: Date.now() }, + }, + }) + if (error instanceof Permission.RejectedError || error instanceof Question.RejectedError) { + ctx.blocked = ctx.shouldBreak + } + yield* settleToolCall(toolCallID) + return true + }) + const handleEvent = Effect.fn("SessionProcessor.handleEvent")(function* (value: StreamEvent) { switch (value.type) { case "start": @@ -154,8 +256,8 @@ export namespace SessionProcessor { if (ctx.assistantMessage.summary) { throw new Error(`Tool call not allowed while generating summary: ${value.toolName}`) } - ctx.toolcalls[value.id] = yield* session.updatePart({ - id: ctx.toolcalls[value.id]?.id ?? PartID.ascending(), + const part = yield* session.updatePart({ + id: ctx.toolcalls[value.id]?.partID ?? PartID.ascending(), messageID: ctx.assistantMessage.id, sessionID: ctx.assistantMessage.sessionID, type: "tool", @@ -164,6 +266,12 @@ export namespace SessionProcessor { state: { status: "pending", input: {}, raw: "" }, metadata: value.providerExecuted ? { providerExecuted: true } : undefined, } satisfies MessageV2.ToolPart) + ctx.toolcalls[value.id] = { + done: yield* Deferred.make(), + partID: part.id, + messageID: part.messageID, + sessionID: part.sessionID, + } return case "tool-input-delta": @@ -176,14 +284,7 @@ export namespace SessionProcessor { if (ctx.assistantMessage.summary) { throw new Error(`Tool call not allowed while generating summary: ${value.toolName}`) } - const pointer = ctx.toolcalls[value.toolCallId] - const match = yield* session.getPart({ - partID: pointer.id, - messageID: pointer.messageID, - sessionID: pointer.sessionID, - }) - if (!match || match.type !== "tool") return - ctx.toolcalls[value.toolCallId] = yield* session.updatePart({ + yield* updateToolCall(value.toolCallId, (match) => ({ ...match, tool: value.toolName, state: { @@ -195,7 +296,7 @@ export namespace SessionProcessor { metadata: match.metadata?.providerExecuted ? { ...value.providerMetadata, providerExecuted: true } : value.providerMetadata, - } satisfies MessageV2.ToolPart) + })) const parts = MessageV2.parts(ctx.assistantMessage.id) const recentParts = parts.slice(-DOOM_LOOP_THRESHOLD) @@ -226,41 +327,12 @@ export namespace SessionProcessor { } case "tool-result": { - const match = ctx.toolcalls[value.toolCallId] - if (!match || match.state.status !== "running") return - yield* session.updatePart({ - ...match, - state: { - status: "completed", - input: value.input ?? match.state.input, - output: value.output.output, - metadata: value.output.metadata, - title: value.output.title, - time: { start: match.state.time.start, end: Date.now() }, - attachments: value.output.attachments, - }, - }) - delete ctx.toolcalls[value.toolCallId] + yield* completeToolCall(value.toolCallId, value.output) return } case "tool-error": { - const match = ctx.toolcalls[value.toolCallId] - if (!match || match.state.status !== "running") return - - yield* session.updatePart({ - ...match, - state: { - status: "error", - input: value.input ?? match.state.input, - error: value.error instanceof Error ? value.error.message : String(value.error), - time: { start: match.state.time.start, end: Date.now() }, - }, - }) - if (value.error instanceof Permission.RejectedError || value.error instanceof Question.RejectedError) { - ctx.blocked = ctx.shouldBreak - } - delete ctx.toolcalls[value.toolCallId] + yield* failToolCall(value.toolCallId, value.error) return } @@ -413,7 +485,16 @@ export namespace SessionProcessor { } ctx.reasoningMap = {} - for (const part of Object.values(ctx.toolcalls)) { + yield* Effect.forEach( + Object.values(ctx.toolcalls), + (call) => Deferred.await(call.done).pipe(Effect.timeout("250 millis"), Effect.ignore), + { concurrency: "unbounded" }, + ) + + for (const toolCallID of Object.keys(ctx.toolcalls)) { + const match = yield* readToolCall(toolCallID) + if (!match) continue + const part = match.part const end = Date.now() const metadata = "metadata" in part.state && isRecord(part.state.metadata) ? part.state.metadata : {} yield* session.updatePart({ @@ -503,9 +584,8 @@ export namespace SessionProcessor { get message() { return ctx.assistantMessage }, - partFromToolCall(toolCallID: string) { - return ctx.toolcalls[toolCallID] - }, + updateToolCall, + completeToolCall, process, } satisfies Handle }) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 19f0850ff..088a367ca 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -388,7 +388,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the model: Provider.Model session: Session.Info tools?: Record - processor: Pick + processor: Pick bypassAgentCheck: boolean messages: MessageV2.WithParts[] }) { @@ -405,10 +405,9 @@ NOTE: At any point in time through this workflow you should feel free to ask the messages: input.messages, metadata: (val) => Effect.runPromise( - Effect.gen(function* () { - const match = input.processor.partFromToolCall(options.toolCallId) - if (!match || !["running", "pending"].includes(match.state.status)) return - yield* sessions.updatePart({ + input.processor.updateToolCall(options.toolCallId, (match) => { + if (!["running", "pending"].includes(match.state.status)) return match + return { ...match, state: { title: val.title, @@ -417,7 +416,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the input: args, time: { start: Date.now() }, }, - }) + } }), ), ask: (req) => @@ -465,6 +464,9 @@ NOTE: At any point in time through this workflow you should feel free to ask the { tool: item.id, sessionID: ctx.sessionID, callID: ctx.callID, args }, output, ) + if (options.abortSignal?.aborted) { + yield* input.processor.completeToolCall(options.toolCallId, output) + } return output }), ) @@ -529,7 +531,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the ...(truncated.truncated && { outputPath: truncated.outputPath }), } - return { + const output = { title: "", metadata, output: truncated.content, @@ -541,6 +543,10 @@ NOTE: At any point in time through this workflow you should feel free to ask the })), content: result.content, } + if (opts.abortSignal?.aborted) { + yield* input.processor.completeToolCall(opts.toolCallId, output) + } + return output }), ) tools[key] = item diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index c37371d9f..76a83c34d 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -139,17 +139,8 @@ function fake( get message() { return msg }, - partFromToolCall() { - return { - id: PartID.ascending(), - messageID: msg.id, - sessionID: msg.sessionID, - type: "tool", - callID: "fake", - tool: "fake", - state: { status: "pending", input: {}, raw: "" }, - } - }, + updateToolCall: Effect.fn("TestSessionProcessor.updateToolCall")(() => Effect.succeed(undefined)), + completeToolCall: Effect.fn("TestSessionProcessor.completeToolCall")(() => Effect.void), process: Effect.fn("TestSessionProcessor.process")(() => Effect.succeed(result)), } satisfies SessionProcessorModule.SessionProcessor.Handle } diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index 38d7ed9f5..e4c46337c 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -538,6 +538,93 @@ it.live("failed subtask preserves metadata on error tool state", () => ), ) +it.live( + "running subtask preserves metadata after tool-call transition", + () => + provideTmpdirServer( + Effect.fnUntraced(function* ({ llm }) { + const prompt = yield* SessionPrompt.Service + const sessions = yield* Session.Service + const chat = yield* sessions.create({ title: "Pinned" }) + yield* llm.hang + const msg = yield* user(chat.id, "hello") + yield* addSubtask(chat.id, msg.id) + + const fiber = yield* prompt.loop({ sessionID: chat.id }).pipe(Effect.forkChild) + + const tool = yield* Effect.promise(async () => { + const end = Date.now() + 5_000 + while (Date.now() < end) { + const msgs = await Effect.runPromise(MessageV2.filterCompactedEffect(chat.id)) + const taskMsg = msgs.find((item) => item.info.role === "assistant" && item.info.agent === "general") + const tool = taskMsg?.parts.find((part): part is MessageV2.ToolPart => part.type === "tool") + if (tool?.state.status === "running" && tool.state.metadata?.sessionId) return tool + await new Promise((done) => setTimeout(done, 20)) + } + throw new Error("timed out waiting for running subtask metadata") + }) + + if (tool.state.status !== "running") return + expect(typeof tool.state.metadata?.sessionId).toBe("string") + expect(tool.state.title).toBeDefined() + expect(tool.state.metadata?.model).toBeDefined() + + yield* prompt.cancel(chat.id) + yield* Fiber.await(fiber) + }), + { git: true, config: providerCfg }, + ), + 5_000, +) + +it.live( + "running task tool preserves metadata after tool-call transition", + () => + provideTmpdirServer( + Effect.fnUntraced(function* ({ llm }) { + const prompt = yield* SessionPrompt.Service + const sessions = yield* Session.Service + const chat = yield* sessions.create({ + title: "Pinned", + permission: [{ permission: "*", pattern: "*", action: "allow" }], + }) + yield* llm.tool("task", { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + }) + yield* llm.hang + yield* user(chat.id, "hello") + + const fiber = yield* prompt.loop({ sessionID: chat.id }).pipe(Effect.forkChild) + + const tool = yield* Effect.promise(async () => { + const end = Date.now() + 5_000 + while (Date.now() < end) { + const msgs = await Effect.runPromise(MessageV2.filterCompactedEffect(chat.id)) + const assistant = msgs.findLast((item) => item.info.role === "assistant" && item.info.agent === "build") + const tool = assistant?.parts.find( + (part): part is MessageV2.ToolPart => part.type === "tool" && part.tool === "task", + ) + if (tool?.state.status === "running" && tool.state.metadata?.sessionId) return tool + await new Promise((done) => setTimeout(done, 20)) + } + throw new Error("timed out waiting for running task metadata") + }) + + if (tool.state.status !== "running") return + expect(typeof tool.state.metadata?.sessionId).toBe("string") + expect(tool.state.title).toBe("inspect bug") + expect(tool.state.metadata?.model).toBeDefined() + + yield* prompt.cancel(chat.id) + yield* Fiber.await(fiber) + }), + { git: true, config: providerCfg }, + ), + 10_000, +) + it.live( "loop sets status to busy then idle", () => @@ -1173,6 +1260,57 @@ unix( 30_000, ) +unix( + "cancel finalizes interrupted bash tool output through normal truncation", + () => + provideTmpdirServer( + ({ dir, llm }) => + Effect.gen(function* () { + const prompt = yield* SessionPrompt.Service + const sessions = yield* Session.Service + const chat = yield* sessions.create({ + title: "Interrupted bash truncation", + permission: [{ permission: "*", pattern: "*", action: "allow" }], + }) + + yield* prompt.prompt({ + sessionID: chat.id, + agent: "build", + noReply: true, + parts: [{ type: "text", text: "run bash" }], + }) + + yield* llm.tool("bash", { + command: + 'i=0; while [ "$i" -lt 4000 ]; do printf "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx %05d\\n" "$i"; i=$((i + 1)); done; sleep 30', + description: "Print many lines", + timeout: 30_000, + workdir: path.resolve(dir), + }) + + const run = yield* prompt.loop({ sessionID: chat.id }).pipe(Effect.forkChild) + yield* llm.wait(1) + yield* Effect.sleep(150) + yield* prompt.cancel(chat.id) + + const exit = yield* Fiber.await(run) + expect(Exit.isSuccess(exit)).toBe(true) + if (Exit.isFailure(exit)) return + + const tool = completedTool(exit.value.parts) + if (!tool) return + + expect(tool.state.metadata.truncated).toBe(true) + expect(typeof tool.state.metadata.outputPath).toBe("string") + expect(tool.state.output).toContain("The tool call succeeded but the output was truncated.") + expect(tool.state.output).toContain("Full output saved to:") + expect(tool.state.output).not.toContain("Tool execution aborted") + }), + { git: true, config: providerCfg }, + ), + 30_000, +) + unix( "cancel interrupts loop queued behind shell", () => From 10441efad1895cbaa77be3ba5277026b489894a2 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 16:03:40 -0400 Subject: [PATCH 035/151] refactor(effect): extract session run state service (#21744) --- packages/opencode/src/project/vcs.ts | 58 +++++---- .../opencode/src/server/routes/session.ts | 3 +- packages/opencode/src/session/prompt.ts | 65 +--------- packages/opencode/src/session/revert.ts | 10 +- packages/opencode/src/session/run-state.ts | 114 ++++++++++++++++++ packages/opencode/src/session/status.ts | 2 +- .../test/server/session-actions.test.ts | 3 +- .../test/session/prompt-effect.test.ts | 37 +++--- .../test/session/snapshot-tool-race.test.ts | 3 + 9 files changed, 184 insertions(+), 111 deletions(-) create mode 100644 packages/opencode/src/session/run-state.ts diff --git a/packages/opencode/src/project/vcs.ts b/packages/opencode/src/project/vcs.ts index ec6e415c8..d31dff6a9 100644 --- a/packages/opencode/src/project/vcs.ts +++ b/packages/opencode/src/project/vcs.ts @@ -161,39 +161,37 @@ export namespace Vcs { const bus = yield* Bus.Service const state = yield* InstanceState.make( - Effect.fn("Vcs.state")((ctx) => - Effect.gen(function* () { - if (ctx.project.vcs !== "git") { - return { current: undefined, root: undefined } - } + Effect.fn("Vcs.state")(function* (ctx) { + if (ctx.project.vcs !== "git") { + return { current: undefined, root: undefined } + } - const get = Effect.fnUntraced(function* () { - return yield* git.branch(ctx.directory) - }) - const [current, root] = yield* Effect.all([git.branch(ctx.directory), git.defaultBranch(ctx.directory)], { - concurrency: 2, - }) - const value = { current, root } - log.info("initialized", { branch: value.current, default_branch: value.root?.name }) + const get = Effect.fnUntraced(function* () { + return yield* git.branch(ctx.directory) + }) + const [current, root] = yield* Effect.all([git.branch(ctx.directory), git.defaultBranch(ctx.directory)], { + concurrency: 2, + }) + const value = { current, root } + log.info("initialized", { branch: value.current, default_branch: value.root?.name }) - yield* bus.subscribe(FileWatcher.Event.Updated).pipe( - Stream.filter((evt) => evt.properties.file.endsWith("HEAD")), - Stream.runForEach((_evt) => - Effect.gen(function* () { - const next = yield* get() - if (next !== value.current) { - log.info("branch changed", { from: value.current, to: next }) - value.current = next - yield* bus.publish(Event.BranchUpdated, { branch: next }) - } - }), - ), - Effect.forkScoped, - ) + yield* bus.subscribe(FileWatcher.Event.Updated).pipe( + Stream.filter((evt) => evt.properties.file.endsWith("HEAD")), + Stream.runForEach((_evt) => + Effect.gen(function* () { + const next = yield* get() + if (next !== value.current) { + log.info("branch changed", { from: value.current, to: next }) + value.current = next + yield* bus.publish(Event.BranchUpdated, { branch: next }) + } + }), + ), + Effect.forkScoped, + ) - return value - }), - ), + return value + }), ) return Service.of({ diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index b57ed9d47..fb0b6b69c 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -6,6 +6,7 @@ import z from "zod" import { Session } from "../../session" import { MessageV2 } from "../../session/message-v2" import { SessionPrompt } from "../../session/prompt" +import { SessionRunState } from "@/session/run-state" import { SessionCompaction } from "../../session/compaction" import { SessionRevert } from "../../session/revert" import { SessionStatus } from "@/session/status" @@ -698,7 +699,7 @@ export const SessionRoutes = lazy(() => ), async (c) => { const params = c.req.valid("param") - await SessionPrompt.assertNotBusy(params.sessionID) + await SessionRunState.assertNotBusy(params.sessionID) await Session.removeMessage({ sessionID: params.sessionID, messageID: params.messageID, diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 088a367ca..7f0a014ab 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -20,7 +20,6 @@ import PROMPT_PLAN from "../session/prompt/plan.txt" import BUILD_SWITCH from "../session/prompt/build-switch.txt" import MAX_STEPS from "../session/prompt/max-steps.txt" import { ToolRegistry } from "../tool/registry" -import { Runner } from "@/effect/runner" import { MCP } from "../mcp" import { LSP } from "../lsp" import { FileTime } from "../file/time" @@ -48,6 +47,7 @@ import { Cause, Effect, Exit, Layer, Option, Scope, ServiceMap } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { TaskTool } from "@/tool/task" +import { SessionRunState } from "./run-state" // @ts-ignore globalThis.AI_SDK_LOG_WARNINGS = false @@ -66,7 +66,6 @@ export namespace SessionPrompt { const log = Log.create({ service: "session.prompt" }) export interface Interface { - readonly assertNotBusy: (sessionID: SessionID) => Effect.Effect readonly cancel: (sessionID: SessionID) => Effect.Effect readonly prompt: (input: PromptInput) => Effect.Effect readonly loop: (input: z.infer) => Effect.Effect @@ -99,55 +98,11 @@ export namespace SessionPrompt { const spawner = yield* ChildProcessSpawner.ChildProcessSpawner const scope = yield* Scope.Scope const instruction = yield* Instruction.Service - - const state = yield* InstanceState.make( - Effect.fn("SessionPrompt.state")(function* () { - const runners = new Map>() - yield* Effect.addFinalizer( - Effect.fnUntraced(function* () { - yield* Effect.forEach(runners.values(), (r) => r.cancel, { concurrency: "unbounded", discard: true }) - runners.clear() - }), - ) - return { runners } - }), - ) - - const getRunner = (runners: Map>, sessionID: SessionID) => { - const existing = runners.get(sessionID) - if (existing) return existing - const runner = Runner.make(scope, { - onIdle: Effect.gen(function* () { - runners.delete(sessionID) - yield* status.set(sessionID, { type: "idle" }) - }), - onBusy: status.set(sessionID, { type: "busy" }), - onInterrupt: lastAssistant(sessionID), - busy: () => { - throw new Session.BusyError(sessionID) - }, - }) - runners.set(sessionID, runner) - return runner - } - - const assertNotBusy: (sessionID: SessionID) => Effect.Effect = Effect.fn( - "SessionPrompt.assertNotBusy", - )(function* (sessionID: SessionID) { - const s = yield* InstanceState.get(state) - const runner = s.runners.get(sessionID) - if (runner?.busy) throw new Session.BusyError(sessionID) - }) + const state = yield* SessionRunState.Service const cancel = Effect.fn("SessionPrompt.cancel")(function* (sessionID: SessionID) { log.info("cancel", { sessionID }) - const s = yield* InstanceState.get(state) - const runner = s.runners.get(sessionID) - if (!runner || !runner.busy) { - yield* status.set(sessionID, { type: "idle" }) - return - } - yield* runner.cancel + yield* state.cancel(sessionID) }) const resolvePromptParts = Effect.fn("SessionPrompt.resolvePromptParts")(function* (template: string) { @@ -1574,16 +1529,12 @@ NOTE: At any point in time through this workflow you should feel free to ask the const loop: (input: z.infer) => Effect.Effect = Effect.fn( "SessionPrompt.loop", )(function* (input: z.infer) { - const s = yield* InstanceState.get(state) - const runner = getRunner(s.runners, input.sessionID) - return yield* runner.ensureRunning(runLoop(input.sessionID)) + return yield* state.ensureRunning(input.sessionID, lastAssistant(input.sessionID), runLoop(input.sessionID)) }) const shell: (input: ShellInput) => Effect.Effect = Effect.fn("SessionPrompt.shell")( function* (input: ShellInput) { - const s = yield* InstanceState.get(state) - const runner = getRunner(s.runners, input.sessionID) - return yield* runner.startShell(shellImpl(input)) + return yield* state.startShell(input.sessionID, lastAssistant(input.sessionID), shellImpl(input)) }, ) @@ -1704,7 +1655,6 @@ NOTE: At any point in time through this workflow you should feel free to ask the }) return Service.of({ - assertNotBusy, cancel, prompt, loop, @@ -1718,6 +1668,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the const defaultLayer = Layer.unwrap( Effect.sync(() => layer.pipe( + Layer.provide(SessionRunState.layer), Layer.provide(SessionStatus.layer), Layer.provide(SessionCompaction.defaultLayer), Layer.provide(SessionProcessor.defaultLayer), @@ -1741,10 +1692,6 @@ NOTE: At any point in time through this workflow you should feel free to ask the ) const { runPromise } = makeRuntime(Service, defaultLayer) - export async function assertNotBusy(sessionID: SessionID) { - return runPromise((svc) => svc.assertNotBusy(SessionID.zod.parse(sessionID))) - } - export const PromptInput = z.object({ sessionID: SessionID.zod, messageID: MessageID.zod.optional(), diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts index 9df3f36eb..a2d517f77 100644 --- a/packages/opencode/src/session/revert.ts +++ b/packages/opencode/src/session/revert.ts @@ -9,8 +9,9 @@ import { Log } from "../util/log" import { Session } from "." import { MessageV2 } from "./message-v2" import { SessionID, MessageID, PartID } from "./schema" -import { SessionPrompt } from "./prompt" +import { SessionRunState } from "./run-state" import { SessionSummary } from "./summary" +import { SessionStatus } from "./status" export namespace SessionRevert { const log = Log.create({ service: "session.revert" }) @@ -38,9 +39,10 @@ export namespace SessionRevert { const storage = yield* Storage.Service const bus = yield* Bus.Service const summary = yield* SessionSummary.Service + const state = yield* SessionRunState.Service const revert = Effect.fn("SessionRevert.revert")(function* (input: RevertInput) { - yield* Effect.promise(() => SessionPrompt.assertNotBusy(input.sessionID)) + yield* state.assertNotBusy(input.sessionID) const all = yield* sessions.messages({ sessionID: input.sessionID }) let lastUser: MessageV2.User | undefined const session = yield* sessions.get(input.sessionID) @@ -93,7 +95,7 @@ export namespace SessionRevert { const unrevert = Effect.fn("SessionRevert.unrevert")(function* (input: { sessionID: SessionID }) { log.info("unreverting", input) - yield* Effect.promise(() => SessionPrompt.assertNotBusy(input.sessionID)) + yield* state.assertNotBusy(input.sessionID) const session = yield* sessions.get(input.sessionID) if (!session.revert) return session if (session.revert.snapshot) yield* snap.restore(session.revert!.snapshot!) @@ -151,6 +153,8 @@ export namespace SessionRevert { export const defaultLayer = Layer.unwrap( Effect.sync(() => layer.pipe( + Layer.provide(SessionRunState.layer), + Layer.provide(SessionStatus.layer), Layer.provide(Session.defaultLayer), Layer.provide(Snapshot.defaultLayer), Layer.provide(Storage.defaultLayer), diff --git a/packages/opencode/src/session/run-state.ts b/packages/opencode/src/session/run-state.ts new file mode 100644 index 000000000..3c2022bd0 --- /dev/null +++ b/packages/opencode/src/session/run-state.ts @@ -0,0 +1,114 @@ +import { InstanceState } from "@/effect/instance-state" +import { Runner } from "@/effect/runner" +import { makeRuntime } from "@/effect/run-service" +import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Session } from "." +import { MessageV2 } from "./message-v2" +import { SessionID } from "./schema" +import { SessionStatus } from "./status" + +export namespace SessionRunState { + export interface Interface { + readonly assertNotBusy: (sessionID: SessionID) => Effect.Effect + readonly cancel: (sessionID: SessionID) => Effect.Effect + readonly ensureRunning: ( + sessionID: SessionID, + onInterrupt: Effect.Effect, + work: Effect.Effect, + ) => Effect.Effect + readonly startShell: ( + sessionID: SessionID, + onInterrupt: Effect.Effect, + work: Effect.Effect, + ) => Effect.Effect + } + + export class Service extends ServiceMap.Service()("@opencode/SessionRunState") {} + + export const layer = Layer.effect( + Service, + Effect.gen(function* () { + const status = yield* SessionStatus.Service + + const state = yield* InstanceState.make( + Effect.fn("SessionRunState.state")(function* () { + const scope = yield* Scope.Scope + const runners = new Map>() + yield* Effect.addFinalizer( + Effect.fnUntraced(function* () { + yield* Effect.forEach(runners.values(), (runner) => runner.cancel, { + concurrency: "unbounded", + discard: true, + }) + runners.clear() + }), + ) + return { runners, scope } + }), + ) + + const runner = Effect.fn("SessionRunState.runner")(function* ( + sessionID: SessionID, + onInterrupt: Effect.Effect, + ) { + const data = yield* InstanceState.get(state) + const existing = data.runners.get(sessionID) + if (existing) return existing + const next = Runner.make(data.scope, { + onIdle: Effect.gen(function* () { + data.runners.delete(sessionID) + yield* status.set(sessionID, { type: "idle" }) + }), + onBusy: status.set(sessionID, { type: "busy" }), + onInterrupt, + busy: () => { + throw new Session.BusyError(sessionID) + }, + }) + data.runners.set(sessionID, next) + return next + }) + + const assertNotBusy = Effect.fn("SessionRunState.assertNotBusy")(function* (sessionID: SessionID) { + const data = yield* InstanceState.get(state) + const existing = data.runners.get(sessionID) + if (existing?.busy) throw new Session.BusyError(sessionID) + }) + + const cancel = Effect.fn("SessionRunState.cancel")(function* (sessionID: SessionID) { + const data = yield* InstanceState.get(state) + const existing = data.runners.get(sessionID) + if (!existing || !existing.busy) { + yield* status.set(sessionID, { type: "idle" }) + return + } + yield* existing.cancel + }) + + const ensureRunning = Effect.fn("SessionRunState.ensureRunning")(function* ( + sessionID: SessionID, + onInterrupt: Effect.Effect, + work: Effect.Effect, + ) { + return yield* (yield* runner(sessionID, onInterrupt)).ensureRunning(work) + }) + + const startShell = Effect.fn("SessionRunState.startShell")(function* ( + sessionID: SessionID, + onInterrupt: Effect.Effect, + work: Effect.Effect, + ) { + return yield* (yield* runner(sessionID, onInterrupt)).startShell(work) + }) + + return Service.of({ assertNotBusy, cancel, ensureRunning, startShell }) + }), + ) + + export const defaultLayer = layer.pipe(Layer.provide(SessionStatus.defaultLayer)) + const { runPromise } = makeRuntime(Service, defaultLayer) + + export async function assertNotBusy(sessionID: SessionID) { + return runPromise((svc) => svc.assertNotBusy(sessionID)) + } +} diff --git a/packages/opencode/src/session/status.ts b/packages/opencode/src/session/status.ts index 34a79eed1..16fccaf3e 100644 --- a/packages/opencode/src/session/status.ts +++ b/packages/opencode/src/session/status.ts @@ -85,7 +85,7 @@ export namespace SessionStatus { }), ) - const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) + export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) const { runPromise } = makeRuntime(Service, defaultLayer) export async function get(sessionID: SessionID) { diff --git a/packages/opencode/test/server/session-actions.test.ts b/packages/opencode/test/server/session-actions.test.ts index 004c2900a..4ab485965 100644 --- a/packages/opencode/test/server/session-actions.test.ts +++ b/packages/opencode/test/server/session-actions.test.ts @@ -5,6 +5,7 @@ import { Session } from "../../src/session" import { ModelID, ProviderID } from "../../src/provider/schema" import { MessageID, PartID, type SessionID } from "../../src/session/schema" import { SessionPrompt } from "../../src/session/prompt" +import { SessionRunState } from "../../src/session/run-state" import { Log } from "../../src/util/log" import { tmpdir } from "../fixture/fixture" @@ -64,7 +65,7 @@ describe("session action routes", () => { fn: async () => { const session = await Session.create({}) const msg = await user(session.id, "hello") - const busy = spyOn(SessionPrompt, "assertNotBusy").mockRejectedValue(new Session.BusyError(session.id)) + const busy = spyOn(SessionRunState, "assertNotBusy").mockRejectedValue(new Session.BusyError(session.id)) const remove = spyOn(Session, "removeMessage").mockResolvedValue(msg.id) const app = Server.Default().app diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index e4c46337c..81288f0ca 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -25,6 +25,7 @@ import { SessionCompaction } from "../../src/session/compaction" import { Instruction } from "../../src/session/instruction" import { SessionProcessor } from "../../src/session/processor" import { SessionPrompt } from "../../src/session/prompt" +import { SessionRunState } from "../../src/session/run-state" import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { Shell } from "../../src/shell/shell" @@ -143,6 +144,7 @@ const filetime = Layer.succeed( ) const status = SessionStatus.layer.pipe(Layer.provideMerge(Bus.layer)) +const run = SessionRunState.layer.pipe(Layer.provide(status)) const infra = Layer.mergeAll(NodeFileSystem.layer, CrossSpawnSpawner.defaultLayer) function makeHttp() { const deps = Layer.mergeAll( @@ -174,6 +176,7 @@ function makeHttp() { return Layer.mergeAll( TestLLMServer.layer, SessionPrompt.layer.pipe( + Layer.provideMerge(run), Layer.provideMerge(compact), Layer.provideMerge(proc), Layer.provideMerge(registry), @@ -300,9 +303,10 @@ const addSubtask = (sessionID: SessionID, messageID: MessageID, model = ref) => const boot = Effect.fn("test.boot")(function* (input?: { title?: string }) { const prompt = yield* SessionPrompt.Service + const run = yield* SessionRunState.Service const sessions = yield* Session.Service const chat = yield* sessions.create(input ?? { title: "Pinned" }) - return { prompt, sessions, chat } + return { prompt, run, sessions, chat } }) // Loop semantics @@ -800,7 +804,7 @@ it.live("concurrent loop callers get same result", () => provideTmpdirInstance( (dir) => Effect.gen(function* () { - const { prompt, chat } = yield* boot() + const { prompt, run, chat } = yield* boot() yield* seed(chat.id, { finish: "stop" }) const [a, b] = yield* Effect.all([prompt.loop({ sessionID: chat.id }), prompt.loop({ sessionID: chat.id })], { @@ -809,7 +813,7 @@ it.live("concurrent loop callers get same result", () => expect(a.info.id).toBe(b.info.id) expect(a.info.role).toBe("assistant") - yield* prompt.assertNotBusy(chat.id) + yield* run.assertNotBusy(chat.id) }), { git: true }, ), @@ -913,6 +917,7 @@ it.live( provideTmpdirServer( Effect.fnUntraced(function* ({ llm }) { const prompt = yield* SessionPrompt.Service + const run = yield* SessionRunState.Service const sessions = yield* Session.Service yield* llm.hang @@ -922,7 +927,7 @@ it.live( const fiber = yield* prompt.loop({ sessionID: chat.id }).pipe(Effect.forkChild) yield* llm.wait(1) - const exit = yield* prompt.assertNotBusy(chat.id).pipe(Effect.exit) + const exit = yield* run.assertNotBusy(chat.id).pipe(Effect.exit) expect(Exit.isFailure(exit)).toBe(true) if (Exit.isFailure(exit)) { expect(Cause.squash(exit.cause)).toBeInstanceOf(Session.BusyError) @@ -940,11 +945,11 @@ it.live("assertNotBusy succeeds when idle", () => provideTmpdirInstance( (dir) => Effect.gen(function* () { - const prompt = yield* SessionPrompt.Service + const run = yield* SessionRunState.Service const sessions = yield* Session.Service const chat = yield* sessions.create({}) - const exit = yield* prompt.assertNotBusy(chat.id).pipe(Effect.exit) + const exit = yield* run.assertNotBusy(chat.id).pipe(Effect.exit) expect(Exit.isSuccess(exit)).toBe(true) }), { git: true }, @@ -985,7 +990,7 @@ unix("shell captures stdout and stderr in completed tool output", () => provideTmpdirInstance( (dir) => Effect.gen(function* () { - const { prompt, chat } = yield* boot() + const { prompt, run, chat } = yield* boot() const result = yield* prompt.shell({ sessionID: chat.id, agent: "build", @@ -1000,7 +1005,7 @@ unix("shell captures stdout and stderr in completed tool output", () => expect(tool.state.output).toContain("err") expect(tool.state.metadata.output).toContain("out") expect(tool.state.metadata.output).toContain("err") - yield* prompt.assertNotBusy(chat.id) + yield* run.assertNotBusy(chat.id) }), { git: true, config: cfg }, ), @@ -1010,7 +1015,7 @@ unix("shell completes a fast command on the preferred shell", () => provideTmpdirInstance( (dir) => Effect.gen(function* () { - const { prompt, chat } = yield* boot() + const { prompt, run, chat } = yield* boot() const result = yield* prompt.shell({ sessionID: chat.id, agent: "build", @@ -1024,7 +1029,7 @@ unix("shell completes a fast command on the preferred shell", () => expect(tool.state.input.command).toBe("pwd") expect(tool.state.output).toContain(dir) expect(tool.state.metadata.output).toContain(dir) - yield* prompt.assertNotBusy(chat.id) + yield* run.assertNotBusy(chat.id) }), { git: true, config: cfg }, ), @@ -1034,7 +1039,7 @@ unix("shell lists files from the project directory", () => provideTmpdirInstance( (dir) => Effect.gen(function* () { - const { prompt, chat } = yield* boot() + const { prompt, run, chat } = yield* boot() yield* Effect.promise(() => Bun.write(path.join(dir, "README.md"), "# e2e\n")) const result = yield* prompt.shell({ @@ -1050,7 +1055,7 @@ unix("shell lists files from the project directory", () => expect(tool.state.input.command).toBe("command ls") expect(tool.state.output).toContain("README.md") expect(tool.state.metadata.output).toContain("README.md") - yield* prompt.assertNotBusy(chat.id) + yield* run.assertNotBusy(chat.id) }), { git: true, config: cfg }, ), @@ -1060,7 +1065,7 @@ unix("shell captures stderr from a failing command", () => provideTmpdirInstance( (dir) => Effect.gen(function* () { - const { prompt, chat } = yield* boot() + const { prompt, run, chat } = yield* boot() const result = yield* prompt.shell({ sessionID: chat.id, agent: "build", @@ -1073,7 +1078,7 @@ unix("shell captures stderr from a failing command", () => expect(tool.state.output).toContain("not found") expect(tool.state.metadata.output).toContain("not found") - yield* prompt.assertNotBusy(chat.id) + yield* run.assertNotBusy(chat.id) }), { git: true, config: cfg }, ), @@ -1198,7 +1203,7 @@ unix( provideTmpdirInstance( (dir) => Effect.gen(function* () { - const { prompt, chat } = yield* boot() + const { prompt, run, chat } = yield* boot() const sh = yield* prompt .shell({ sessionID: chat.id, agent: "build", command: "sleep 30" }) @@ -1209,7 +1214,7 @@ unix( const status = yield* SessionStatus.Service expect((yield* status.get(chat.id)).type).toBe("idle") - const busy = yield* prompt.assertNotBusy(chat.id).pipe(Effect.exit) + const busy = yield* run.assertNotBusy(chat.id).pipe(Effect.exit) expect(Exit.isSuccess(busy)).toBe(true) const exit = yield* Fiber.await(sh) diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index c192a446b..9cc4d750c 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -43,6 +43,7 @@ import { Todo } from "../../src/session/todo" import { SessionCompaction } from "../../src/session/compaction" import { Instruction } from "../../src/session/instruction" import { SessionProcessor } from "../../src/session/processor" +import { SessionRunState } from "../../src/session/run-state" import { SessionStatus } from "../../src/session/status" import { Shell } from "../../src/shell/shell" import { Snapshot } from "../../src/snapshot" @@ -107,6 +108,7 @@ const filetime = Layer.succeed( ) const status = SessionStatus.layer.pipe(Layer.provideMerge(Bus.layer)) +const run = SessionRunState.layer.pipe(Layer.provide(status)) const infra = Layer.mergeAll(NodeFileSystem.layer, CrossSpawnSpawner.defaultLayer) function makeHttp() { @@ -139,6 +141,7 @@ function makeHttp() { return Layer.mergeAll( TestLLMServer.layer, SessionPrompt.layer.pipe( + Layer.provideMerge(run), Layer.provideMerge(compact), Layer.provideMerge(proc), Layer.provideMerge(registry), From 35b44df94ab50bc4e2c4a18f029e0f52c3bf5be7 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Thu, 9 Apr 2026 20:05:05 +0000 Subject: [PATCH 036/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 62 ++++---- packages/sdk/openapi.json | 184 ++++++++++++------------ 2 files changed, 123 insertions(+), 123 deletions(-) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 38f4db09a..3d1495995 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -94,35 +94,6 @@ export type EventMessagePartDelta = { } } -export type PermissionRequest = { - id: string - sessionID: string - permission: string - patterns: Array - metadata: { - [key: string]: unknown - } - always: Array - tool?: { - messageID: string - callID: string - } -} - -export type EventPermissionAsked = { - type: "permission.asked" - properties: PermissionRequest -} - -export type EventPermissionReplied = { - type: "permission.replied" - properties: { - sessionID: string - requestID: string - reply: "once" | "always" | "reject" - } -} - export type SessionStatus = | { type: "idle" @@ -152,6 +123,35 @@ export type EventSessionIdle = { } } +export type PermissionRequest = { + id: string + sessionID: string + permission: string + patterns: Array + metadata: { + [key: string]: unknown + } + always: Array + tool?: { + messageID: string + callID: string + } +} + +export type EventPermissionAsked = { + type: "permission.asked" + properties: PermissionRequest +} + +export type EventPermissionReplied = { + type: "permission.replied" + properties: { + sessionID: string + requestID: string + reply: "once" | "always" | "reject" + } +} + export type QuestionOption = { /** * Display text (1-5 words, concise) @@ -972,10 +972,10 @@ export type Event = | EventLspClientDiagnostics | EventLspUpdated | EventMessagePartDelta - | EventPermissionAsked - | EventPermissionReplied | EventSessionStatus | EventSessionIdle + | EventPermissionAsked + | EventPermissionReplied | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 366bc1fc7..0de4dbdd9 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7324,6 +7324,92 @@ }, "required": ["type", "properties"] }, + "SessionStatus": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "idle" + } + }, + "required": ["type"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "retry" + }, + "attempt": { + "type": "number" + }, + "message": { + "type": "string" + }, + "next": { + "type": "number" + } + }, + "required": ["type", "attempt", "message", "next"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "busy" + } + }, + "required": ["type"] + } + ] + }, + "Event.session.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "session.status" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "status": { + "$ref": "#/components/schemas/SessionStatus" + } + }, + "required": ["sessionID", "status"] + } + }, + "required": ["type", "properties"] + }, + "Event.session.idle": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "session.idle" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + } + }, + "required": ["sessionID"] + } + }, + "required": ["type", "properties"] + }, "PermissionRequest": { "type": "object", "properties": { @@ -7414,92 +7500,6 @@ }, "required": ["type", "properties"] }, - "SessionStatus": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "idle" - } - }, - "required": ["type"] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "retry" - }, - "attempt": { - "type": "number" - }, - "message": { - "type": "string" - }, - "next": { - "type": "number" - } - }, - "required": ["type", "attempt", "message", "next"] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "busy" - } - }, - "required": ["type"] - } - ] - }, - "Event.session.status": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "session.status" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "status": { - "$ref": "#/components/schemas/SessionStatus" - } - }, - "required": ["sessionID", "status"] - } - }, - "required": ["type", "properties"] - }, - "Event.session.idle": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "session.idle" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - } - }, - "required": ["sessionID"] - } - }, - "required": ["type", "properties"] - }, "QuestionOption": { "type": "object", "properties": { @@ -9810,18 +9810,18 @@ { "$ref": "#/components/schemas/Event.message.part.delta" }, - { - "$ref": "#/components/schemas/Event.permission.asked" - }, - { - "$ref": "#/components/schemas/Event.permission.replied" - }, { "$ref": "#/components/schemas/Event.session.status" }, { "$ref": "#/components/schemas/Event.session.idle" }, + { + "$ref": "#/components/schemas/Event.permission.asked" + }, + { + "$ref": "#/components/schemas/Event.permission.replied" + }, { "$ref": "#/components/schemas/Event.question.asked" }, From 7202b3a32541c4eb6b39adcc41d2333deb9cd538 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:25:59 -0500 Subject: [PATCH 037/151] fix: ensure that openai oauth works for agent create cmd, use temporary hack (#21749) Co-authored-by: OpeOginni --- packages/opencode/src/agent/agent.ts | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 843d65433..2a8bed092 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -341,6 +341,10 @@ export namespace Agent { ) const existing = yield* InstanceState.useEffect(state, (s) => s.list()) + // TODO: clean this up so provider specific logic doesnt bleed over + const authInfo = yield* auth.get(model.providerID).pipe(Effect.orDie) + const isOpenaiOauth = model.providerID === "openai" && authInfo?.type === "oauth" + const params = { experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry, @@ -350,12 +354,14 @@ export namespace Agent { }, temperature: 0.3, messages: [ - ...system.map( - (item): ModelMessage => ({ - role: "system", - content: item, - }), - ), + ...(isOpenaiOauth + ? [] + : system.map( + (item): ModelMessage => ({ + role: "system", + content: item, + }), + )), { role: "user", content: `Create an agent configuration based on this request: \"${input.description}\".\n\nIMPORTANT: The following identifiers already exist and must NOT be used: ${existing.map((i) => i.name).join(", ")}\n Return ONLY the JSON object, no other text, do not wrap in backticks`, @@ -369,13 +375,12 @@ export namespace Agent { }), } satisfies Parameters[0] - // TODO: clean this up so provider specific logic doesnt bleed over - const authInfo = yield* auth.get(model.providerID).pipe(Effect.orDie) - if (model.providerID === "openai" && authInfo?.type === "oauth") { + if (isOpenaiOauth) { return yield* Effect.promise(async () => { const result = streamObject({ ...params, providerOptions: ProviderTransform.providerOptions(resolved, { + instructions: system.join("\n"), store: false, }), onError: () => {}, From b2f621b897ca636dc720b035072555e03c0da30a Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 16:28:42 -0400 Subject: [PATCH 038/151] refactor(session): inline init route orchestration (#21754) --- .../opencode/src/server/routes/session.ts | 19 +++++++++-- packages/opencode/src/session/index.ts | 34 +------------------ 2 files changed, 18 insertions(+), 35 deletions(-) diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index fb0b6b69c..b1a6af582 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -14,6 +14,7 @@ import { SessionSummary } from "@/session/summary" import { Todo } from "../../session/todo" import { Agent } from "../../agent/agent" import { Snapshot } from "@/snapshot" +import { Command } from "../../command" import { Log } from "../../util/log" import { Permission } from "@/permission" import { PermissionID } from "@/permission/schema" @@ -292,6 +293,7 @@ export const SessionRoutes = lazy(() => return c.json(session) }, ) + // TODO(v2): remove this dedicated route and rely on the normal `/init` command flow. .post( "/:sessionID/init", describeRoute({ @@ -317,11 +319,24 @@ export const SessionRoutes = lazy(() => sessionID: SessionID.zod, }), ), - validator("json", Session.initialize.schema.omit({ sessionID: true })), + validator( + "json", + z.object({ + modelID: ModelID.zod, + providerID: ProviderID.zod, + messageID: MessageID.zod, + }), + ), async (c) => { const sessionID = c.req.valid("param").sessionID const body = c.req.valid("json") - await Session.initialize({ ...body, sessionID }) + await SessionPrompt.command({ + sessionID, + messageID: body.messageID, + model: body.providerID + "/" + body.modelID, + command: Command.Default.INIT, + arguments: "", + }) return c.json(true) }, ) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index cc81293ec..2e68f22ed 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -20,16 +20,13 @@ import { updateSchema } from "../util/update-schema" import { MessageV2 } from "./message-v2" import { Instance } from "../project/instance" import { InstanceState } from "@/effect/instance-state" -import { SessionPrompt } from "./prompt" import { fn } from "@/util/fn" -import { Command } from "../command" import { Snapshot } from "@/snapshot" import { ProjectID } from "../project/schema" import { WorkspaceID } from "../control-plane/schema" import { SessionID, MessageID, PartID } from "./schema" import type { Provider } from "@/provider/provider" -import { ModelID, ProviderID } from "@/provider/schema" import { Permission } from "@/permission" import { Global } from "@/global" import type { LanguageModelV2Usage } from "@ai-sdk/provider" @@ -358,12 +355,6 @@ export namespace Session { field: string delta: string }) => Effect.Effect - readonly initialize: (input: { - sessionID: SessionID - modelID: ModelID - providerID: ProviderID - messageID: MessageID - }) => Effect.Effect } export class Service extends ServiceMap.Service()("@opencode/Session") {} @@ -616,7 +607,7 @@ export namespace Session { const diff = Effect.fn("Session.diff")(function* (sessionID: SessionID) { return yield* Effect.tryPromise(() => Storage.read(["session_diff", sessionID])).pipe( - Effect.orElseSucceed(() => [] as Snapshot.FileDiff[]), + Effect.orElseSucceed((): Snapshot.FileDiff[] => []), ) }) @@ -665,23 +656,6 @@ export namespace Session { yield* bus.publish(MessageV2.Event.PartDelta, input) }) - const initialize = Effect.fn("Session.initialize")(function* (input: { - sessionID: SessionID - modelID: ModelID - providerID: ProviderID - messageID: MessageID - }) { - yield* Effect.promise(() => - SessionPrompt.command({ - sessionID: input.sessionID, - messageID: input.messageID, - model: input.providerID + "/" + input.modelID, - command: Command.Default.INIT, - arguments: "", - }), - ) - }) - return Service.of({ create, fork, @@ -705,7 +679,6 @@ export namespace Session { updatePart, getPart, updatePartDelta, - initialize, }) }), ) @@ -895,9 +868,4 @@ export namespace Session { }), (input) => runPromise((svc) => svc.updatePartDelta(input)), ) - - export const initialize = fn( - z.object({ sessionID: SessionID.zod, modelID: ModelID.zod, providerID: ProviderID.zod, messageID: MessageID.zod }), - (input) => runPromise((svc) => svc.initialize(input)), - ) } From bbe4a04f9fcba9e46eb1baf5e7152b22465808d5 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Thu, 9 Apr 2026 20:29:48 +0000 Subject: [PATCH 039/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 468 +++++----- packages/sdk/openapi.json | 1128 +++++++++++------------ 2 files changed, 798 insertions(+), 798 deletions(-) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 3d1495995..62c62e138 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -94,35 +94,6 @@ export type EventMessagePartDelta = { } } -export type SessionStatus = - | { - type: "idle" - } - | { - type: "retry" - attempt: number - message: string - next: number - } - | { - type: "busy" - } - -export type EventSessionStatus = { - type: "session.status" - properties: { - sessionID: string - status: SessionStatus - } -} - -export type EventSessionIdle = { - type: "session.idle" - properties: { - sessionID: string - } -} - export type PermissionRequest = { id: string sessionID: string @@ -152,201 +123,6 @@ export type EventPermissionReplied = { } } -export type QuestionOption = { - /** - * Display text (1-5 words, concise) - */ - label: string - /** - * Explanation of choice - */ - description: string -} - -export type QuestionInfo = { - /** - * Complete question - */ - question: string - /** - * Very short label (max 30 chars) - */ - header: string - /** - * Available choices - */ - options: Array - /** - * Allow selecting multiple choices - */ - multiple?: boolean - /** - * Allow typing a custom answer (default: true) - */ - custom?: boolean -} - -export type QuestionRequest = { - id: string - sessionID: string - /** - * Questions to ask - */ - questions: Array - tool?: { - messageID: string - callID: string - } -} - -export type EventQuestionAsked = { - type: "question.asked" - properties: QuestionRequest -} - -export type QuestionAnswer = Array - -export type EventQuestionReplied = { - type: "question.replied" - properties: { - sessionID: string - requestID: string - answers: Array - } -} - -export type EventQuestionRejected = { - type: "question.rejected" - properties: { - sessionID: string - requestID: string - } -} - -export type EventSessionCompacted = { - type: "session.compacted" - properties: { - sessionID: string - } -} - -export type EventFileEdited = { - type: "file.edited" - properties: { - file: string - } -} - -export type EventFileWatcherUpdated = { - type: "file.watcher.updated" - properties: { - file: string - event: "add" | "change" | "unlink" - } -} - -export type Todo = { - /** - * Brief description of the task - */ - content: string - /** - * Current status of the task: pending, in_progress, completed, cancelled - */ - status: string - /** - * Priority level of the task: high, medium, low - */ - priority: string -} - -export type EventTodoUpdated = { - type: "todo.updated" - properties: { - sessionID: string - todos: Array - } -} - -export type EventTuiPromptAppend = { - type: "tui.prompt.append" - properties: { - text: string - } -} - -export type EventTuiCommandExecute = { - type: "tui.command.execute" - properties: { - command: - | "session.list" - | "session.new" - | "session.share" - | "session.interrupt" - | "session.compact" - | "session.page.up" - | "session.page.down" - | "session.line.up" - | "session.line.down" - | "session.half.page.up" - | "session.half.page.down" - | "session.first" - | "session.last" - | "prompt.clear" - | "prompt.submit" - | "agent.cycle" - | string - } -} - -export type EventTuiToastShow = { - type: "tui.toast.show" - properties: { - title?: string - message: string - variant: "info" | "success" | "warning" | "error" - /** - * Duration in milliseconds - */ - duration?: number - } -} - -export type EventTuiSessionSelect = { - type: "tui.session.select" - properties: { - /** - * Session ID to navigate to - */ - sessionID: string - } -} - -export type EventMcpToolsChanged = { - type: "mcp.tools.changed" - properties: { - server: string - } -} - -export type EventMcpBrowserOpenFailed = { - type: "mcp.browser.open.failed" - properties: { - mcpName: string - url: string - } -} - -export type EventCommandExecuted = { - type: "command.executed" - properties: { - name: string - sessionID: string - arguments: string - messageID: string - } -} - export type SnapshotFileDiff = { file: string patch: string @@ -439,6 +215,21 @@ export type EventSessionError = { } } +export type EventFileEdited = { + type: "file.edited" + properties: { + file: string + } +} + +export type EventFileWatcherUpdated = { + type: "file.watcher.updated" + properties: { + file: string + event: "add" | "change" | "unlink" + } +} + export type EventVcsBranchUpdated = { type: "vcs.branch.updated" properties: { @@ -446,6 +237,85 @@ export type EventVcsBranchUpdated = { } } +export type EventTuiPromptAppend = { + type: "tui.prompt.append" + properties: { + text: string + } +} + +export type EventTuiCommandExecute = { + type: "tui.command.execute" + properties: { + command: + | "session.list" + | "session.new" + | "session.share" + | "session.interrupt" + | "session.compact" + | "session.page.up" + | "session.page.down" + | "session.line.up" + | "session.line.down" + | "session.half.page.up" + | "session.half.page.down" + | "session.first" + | "session.last" + | "prompt.clear" + | "prompt.submit" + | "agent.cycle" + | string + } +} + +export type EventTuiToastShow = { + type: "tui.toast.show" + properties: { + title?: string + message: string + variant: "info" | "success" | "warning" | "error" + /** + * Duration in milliseconds + */ + duration?: number + } +} + +export type EventTuiSessionSelect = { + type: "tui.session.select" + properties: { + /** + * Session ID to navigate to + */ + sessionID: string + } +} + +export type EventMcpToolsChanged = { + type: "mcp.tools.changed" + properties: { + server: string + } +} + +export type EventMcpBrowserOpenFailed = { + type: "mcp.browser.open.failed" + properties: { + mcpName: string + url: string + } +} + +export type EventCommandExecuted = { + type: "command.executed" + properties: { + name: string + sessionID: string + arguments: string + messageID: string + } +} + export type EventWorkspaceReady = { type: "workspace.ready" properties: { @@ -460,6 +330,136 @@ export type EventWorkspaceFailed = { } } +export type QuestionOption = { + /** + * Display text (1-5 words, concise) + */ + label: string + /** + * Explanation of choice + */ + description: string +} + +export type QuestionInfo = { + /** + * Complete question + */ + question: string + /** + * Very short label (max 30 chars) + */ + header: string + /** + * Available choices + */ + options: Array + /** + * Allow selecting multiple choices + */ + multiple?: boolean + /** + * Allow typing a custom answer (default: true) + */ + custom?: boolean +} + +export type QuestionRequest = { + id: string + sessionID: string + /** + * Questions to ask + */ + questions: Array + tool?: { + messageID: string + callID: string + } +} + +export type EventQuestionAsked = { + type: "question.asked" + properties: QuestionRequest +} + +export type QuestionAnswer = Array + +export type EventQuestionReplied = { + type: "question.replied" + properties: { + sessionID: string + requestID: string + answers: Array + } +} + +export type EventQuestionRejected = { + type: "question.rejected" + properties: { + sessionID: string + requestID: string + } +} + +export type SessionStatus = + | { + type: "idle" + } + | { + type: "retry" + attempt: number + message: string + next: number + } + | { + type: "busy" + } + +export type EventSessionStatus = { + type: "session.status" + properties: { + sessionID: string + status: SessionStatus + } +} + +export type EventSessionIdle = { + type: "session.idle" + properties: { + sessionID: string + } +} + +export type EventSessionCompacted = { + type: "session.compacted" + properties: { + sessionID: string + } +} + +export type Todo = { + /** + * Brief description of the task + */ + content: string + /** + * Current status of the task: pending, in_progress, completed, cancelled + */ + status: string + /** + * Priority level of the task: high, medium, low + */ + priority: string +} + +export type EventTodoUpdated = { + type: "todo.updated" + properties: { + sessionID: string + todos: Array + } +} + export type Pty = { id: string title: string @@ -972,17 +972,13 @@ export type Event = | EventLspClientDiagnostics | EventLspUpdated | EventMessagePartDelta - | EventSessionStatus - | EventSessionIdle | EventPermissionAsked | EventPermissionReplied - | EventQuestionAsked - | EventQuestionReplied - | EventQuestionRejected - | EventSessionCompacted + | EventSessionDiff + | EventSessionError | EventFileEdited | EventFileWatcherUpdated - | EventTodoUpdated + | EventVcsBranchUpdated | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow @@ -990,11 +986,15 @@ export type Event = | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventCommandExecuted - | EventSessionDiff - | EventSessionError - | EventVcsBranchUpdated | EventWorkspaceReady | EventWorkspaceFailed + | EventQuestionAsked + | EventQuestionReplied + | EventQuestionRejected + | EventSessionStatus + | EventSessionIdle + | EventSessionCompacted + | EventTodoUpdated | EventPtyCreated | EventPtyUpdated | EventPtyExited diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 0de4dbdd9..450de5131 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7324,92 +7324,6 @@ }, "required": ["type", "properties"] }, - "SessionStatus": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "idle" - } - }, - "required": ["type"] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "retry" - }, - "attempt": { - "type": "number" - }, - "message": { - "type": "string" - }, - "next": { - "type": "number" - } - }, - "required": ["type", "attempt", "message", "next"] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "busy" - } - }, - "required": ["type"] - } - ] - }, - "Event.session.status": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "session.status" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "status": { - "$ref": "#/components/schemas/SessionStatus" - } - }, - "required": ["sessionID", "status"] - } - }, - "required": ["type", "properties"] - }, - "Event.session.idle": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "session.idle" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - } - }, - "required": ["sessionID"] - } - }, - "required": ["type", "properties"] - }, "PermissionRequest": { "type": "object", "properties": { @@ -7500,460 +7414,6 @@ }, "required": ["type", "properties"] }, - "QuestionOption": { - "type": "object", - "properties": { - "label": { - "description": "Display text (1-5 words, concise)", - "type": "string" - }, - "description": { - "description": "Explanation of choice", - "type": "string" - } - }, - "required": ["label", "description"] - }, - "QuestionInfo": { - "type": "object", - "properties": { - "question": { - "description": "Complete question", - "type": "string" - }, - "header": { - "description": "Very short label (max 30 chars)", - "type": "string" - }, - "options": { - "description": "Available choices", - "type": "array", - "items": { - "$ref": "#/components/schemas/QuestionOption" - } - }, - "multiple": { - "description": "Allow selecting multiple choices", - "type": "boolean" - }, - "custom": { - "description": "Allow typing a custom answer (default: true)", - "type": "boolean" - } - }, - "required": ["question", "header", "options"] - }, - "QuestionRequest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^que.*" - }, - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "questions": { - "description": "Questions to ask", - "type": "array", - "items": { - "$ref": "#/components/schemas/QuestionInfo" - } - }, - "tool": { - "type": "object", - "properties": { - "messageID": { - "type": "string", - "pattern": "^msg.*" - }, - "callID": { - "type": "string" - } - }, - "required": ["messageID", "callID"] - } - }, - "required": ["id", "sessionID", "questions"] - }, - "Event.question.asked": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "question.asked" - }, - "properties": { - "$ref": "#/components/schemas/QuestionRequest" - } - }, - "required": ["type", "properties"] - }, - "QuestionAnswer": { - "type": "array", - "items": { - "type": "string" - } - }, - "Event.question.replied": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "question.replied" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "requestID": { - "type": "string", - "pattern": "^que.*" - }, - "answers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QuestionAnswer" - } - } - }, - "required": ["sessionID", "requestID", "answers"] - } - }, - "required": ["type", "properties"] - }, - "Event.question.rejected": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "question.rejected" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "requestID": { - "type": "string", - "pattern": "^que.*" - } - }, - "required": ["sessionID", "requestID"] - } - }, - "required": ["type", "properties"] - }, - "Event.session.compacted": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "session.compacted" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - } - }, - "required": ["sessionID"] - } - }, - "required": ["type", "properties"] - }, - "Event.file.edited": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "file.edited" - }, - "properties": { - "type": "object", - "properties": { - "file": { - "type": "string" - } - }, - "required": ["file"] - } - }, - "required": ["type", "properties"] - }, - "Event.file.watcher.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "file.watcher.updated" - }, - "properties": { - "type": "object", - "properties": { - "file": { - "type": "string" - }, - "event": { - "anyOf": [ - { - "type": "string", - "const": "add" - }, - { - "type": "string", - "const": "change" - }, - { - "type": "string", - "const": "unlink" - } - ] - } - }, - "required": ["file", "event"] - } - }, - "required": ["type", "properties"] - }, - "Todo": { - "type": "object", - "properties": { - "content": { - "description": "Brief description of the task", - "type": "string" - }, - "status": { - "description": "Current status of the task: pending, in_progress, completed, cancelled", - "type": "string" - }, - "priority": { - "description": "Priority level of the task: high, medium, low", - "type": "string" - } - }, - "required": ["content", "status", "priority"] - }, - "Event.todo.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "todo.updated" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "todos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Todo" - } - } - }, - "required": ["sessionID", "todos"] - } - }, - "required": ["type", "properties"] - }, - "Event.tui.prompt.append": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "tui.prompt.append" - }, - "properties": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "required": ["text"] - } - }, - "required": ["type", "properties"] - }, - "Event.tui.command.execute": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "tui.command.execute" - }, - "properties": { - "type": "object", - "properties": { - "command": { - "anyOf": [ - { - "type": "string", - "enum": [ - "session.list", - "session.new", - "session.share", - "session.interrupt", - "session.compact", - "session.page.up", - "session.page.down", - "session.line.up", - "session.line.down", - "session.half.page.up", - "session.half.page.down", - "session.first", - "session.last", - "prompt.clear", - "prompt.submit", - "agent.cycle" - ] - }, - { - "type": "string" - } - ] - } - }, - "required": ["command"] - } - }, - "required": ["type", "properties"] - }, - "Event.tui.toast.show": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "tui.toast.show" - }, - "properties": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "message": { - "type": "string" - }, - "variant": { - "type": "string", - "enum": ["info", "success", "warning", "error"] - }, - "duration": { - "description": "Duration in milliseconds", - "default": 5000, - "type": "number" - } - }, - "required": ["message", "variant"] - } - }, - "required": ["type", "properties"] - }, - "Event.tui.session.select": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "tui.session.select" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "description": "Session ID to navigate to", - "type": "string", - "pattern": "^ses.*" - } - }, - "required": ["sessionID"] - } - }, - "required": ["type", "properties"] - }, - "Event.mcp.tools.changed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "mcp.tools.changed" - }, - "properties": { - "type": "object", - "properties": { - "server": { - "type": "string" - } - }, - "required": ["server"] - } - }, - "required": ["type", "properties"] - }, - "Event.mcp.browser.open.failed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "mcp.browser.open.failed" - }, - "properties": { - "type": "object", - "properties": { - "mcpName": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": ["mcpName", "url"] - } - }, - "required": ["type", "properties"] - }, - "Event.command.executed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "command.executed" - }, - "properties": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "arguments": { - "type": "string" - }, - "messageID": { - "type": "string", - "pattern": "^msg.*" - } - }, - "required": ["name", "sessionID", "arguments", "messageID"] - } - }, - "required": ["type", "properties"] - }, "SnapshotFileDiff": { "type": "object", "properties": { @@ -8210,6 +7670,60 @@ }, "required": ["type", "properties"] }, + "Event.file.edited": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "file.edited" + }, + "properties": { + "type": "object", + "properties": { + "file": { + "type": "string" + } + }, + "required": ["file"] + } + }, + "required": ["type", "properties"] + }, + "Event.file.watcher.updated": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "file.watcher.updated" + }, + "properties": { + "type": "object", + "properties": { + "file": { + "type": "string" + }, + "event": { + "anyOf": [ + { + "type": "string", + "const": "add" + }, + { + "type": "string", + "const": "change" + }, + { + "type": "string", + "const": "unlink" + } + ] + } + }, + "required": ["file", "event"] + } + }, + "required": ["type", "properties"] + }, "Event.vcs.branch.updated": { "type": "object", "properties": { @@ -8228,6 +7742,192 @@ }, "required": ["type", "properties"] }, + "Event.tui.prompt.append": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tui.prompt.append" + }, + "properties": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + }, + "required": ["text"] + } + }, + "required": ["type", "properties"] + }, + "Event.tui.command.execute": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tui.command.execute" + }, + "properties": { + "type": "object", + "properties": { + "command": { + "anyOf": [ + { + "type": "string", + "enum": [ + "session.list", + "session.new", + "session.share", + "session.interrupt", + "session.compact", + "session.page.up", + "session.page.down", + "session.line.up", + "session.line.down", + "session.half.page.up", + "session.half.page.down", + "session.first", + "session.last", + "prompt.clear", + "prompt.submit", + "agent.cycle" + ] + }, + { + "type": "string" + } + ] + } + }, + "required": ["command"] + } + }, + "required": ["type", "properties"] + }, + "Event.tui.toast.show": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tui.toast.show" + }, + "properties": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "message": { + "type": "string" + }, + "variant": { + "type": "string", + "enum": ["info", "success", "warning", "error"] + }, + "duration": { + "description": "Duration in milliseconds", + "default": 5000, + "type": "number" + } + }, + "required": ["message", "variant"] + } + }, + "required": ["type", "properties"] + }, + "Event.tui.session.select": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tui.session.select" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "description": "Session ID to navigate to", + "type": "string", + "pattern": "^ses.*" + } + }, + "required": ["sessionID"] + } + }, + "required": ["type", "properties"] + }, + "Event.mcp.tools.changed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "mcp.tools.changed" + }, + "properties": { + "type": "object", + "properties": { + "server": { + "type": "string" + } + }, + "required": ["server"] + } + }, + "required": ["type", "properties"] + }, + "Event.mcp.browser.open.failed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "mcp.browser.open.failed" + }, + "properties": { + "type": "object", + "properties": { + "mcpName": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": ["mcpName", "url"] + } + }, + "required": ["type", "properties"] + }, + "Event.command.executed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "command.executed" + }, + "properties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "arguments": { + "type": "string" + }, + "messageID": { + "type": "string", + "pattern": "^msg.*" + } + }, + "required": ["name", "sessionID", "arguments", "messageID"] + } + }, + "required": ["type", "properties"] + }, "Event.workspace.ready": { "type": "object", "properties": { @@ -8266,6 +7966,306 @@ }, "required": ["type", "properties"] }, + "QuestionOption": { + "type": "object", + "properties": { + "label": { + "description": "Display text (1-5 words, concise)", + "type": "string" + }, + "description": { + "description": "Explanation of choice", + "type": "string" + } + }, + "required": ["label", "description"] + }, + "QuestionInfo": { + "type": "object", + "properties": { + "question": { + "description": "Complete question", + "type": "string" + }, + "header": { + "description": "Very short label (max 30 chars)", + "type": "string" + }, + "options": { + "description": "Available choices", + "type": "array", + "items": { + "$ref": "#/components/schemas/QuestionOption" + } + }, + "multiple": { + "description": "Allow selecting multiple choices", + "type": "boolean" + }, + "custom": { + "description": "Allow typing a custom answer (default: true)", + "type": "boolean" + } + }, + "required": ["question", "header", "options"] + }, + "QuestionRequest": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^que.*" + }, + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "questions": { + "description": "Questions to ask", + "type": "array", + "items": { + "$ref": "#/components/schemas/QuestionInfo" + } + }, + "tool": { + "type": "object", + "properties": { + "messageID": { + "type": "string", + "pattern": "^msg.*" + }, + "callID": { + "type": "string" + } + }, + "required": ["messageID", "callID"] + } + }, + "required": ["id", "sessionID", "questions"] + }, + "Event.question.asked": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "question.asked" + }, + "properties": { + "$ref": "#/components/schemas/QuestionRequest" + } + }, + "required": ["type", "properties"] + }, + "QuestionAnswer": { + "type": "array", + "items": { + "type": "string" + } + }, + "Event.question.replied": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "question.replied" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "requestID": { + "type": "string", + "pattern": "^que.*" + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QuestionAnswer" + } + } + }, + "required": ["sessionID", "requestID", "answers"] + } + }, + "required": ["type", "properties"] + }, + "Event.question.rejected": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "question.rejected" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "requestID": { + "type": "string", + "pattern": "^que.*" + } + }, + "required": ["sessionID", "requestID"] + } + }, + "required": ["type", "properties"] + }, + "SessionStatus": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "idle" + } + }, + "required": ["type"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "retry" + }, + "attempt": { + "type": "number" + }, + "message": { + "type": "string" + }, + "next": { + "type": "number" + } + }, + "required": ["type", "attempt", "message", "next"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "busy" + } + }, + "required": ["type"] + } + ] + }, + "Event.session.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "session.status" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "status": { + "$ref": "#/components/schemas/SessionStatus" + } + }, + "required": ["sessionID", "status"] + } + }, + "required": ["type", "properties"] + }, + "Event.session.idle": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "session.idle" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + } + }, + "required": ["sessionID"] + } + }, + "required": ["type", "properties"] + }, + "Event.session.compacted": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "session.compacted" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + } + }, + "required": ["sessionID"] + } + }, + "required": ["type", "properties"] + }, + "Todo": { + "type": "object", + "properties": { + "content": { + "description": "Brief description of the task", + "type": "string" + }, + "status": { + "description": "Current status of the task: pending, in_progress, completed, cancelled", + "type": "string" + }, + "priority": { + "description": "Priority level of the task: high, medium, low", + "type": "string" + } + }, + "required": ["content", "status", "priority"] + }, + "Event.todo.updated": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "todo.updated" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "todos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Todo" + } + } + }, + "required": ["sessionID", "todos"] + } + }, + "required": ["type", "properties"] + }, "Pty": { "type": "object", "properties": { @@ -9810,12 +9810,6 @@ { "$ref": "#/components/schemas/Event.message.part.delta" }, - { - "$ref": "#/components/schemas/Event.session.status" - }, - { - "$ref": "#/components/schemas/Event.session.idle" - }, { "$ref": "#/components/schemas/Event.permission.asked" }, @@ -9823,16 +9817,10 @@ "$ref": "#/components/schemas/Event.permission.replied" }, { - "$ref": "#/components/schemas/Event.question.asked" + "$ref": "#/components/schemas/Event.session.diff" }, { - "$ref": "#/components/schemas/Event.question.replied" - }, - { - "$ref": "#/components/schemas/Event.question.rejected" - }, - { - "$ref": "#/components/schemas/Event.session.compacted" + "$ref": "#/components/schemas/Event.session.error" }, { "$ref": "#/components/schemas/Event.file.edited" @@ -9841,7 +9829,7 @@ "$ref": "#/components/schemas/Event.file.watcher.updated" }, { - "$ref": "#/components/schemas/Event.todo.updated" + "$ref": "#/components/schemas/Event.vcs.branch.updated" }, { "$ref": "#/components/schemas/Event.tui.prompt.append" @@ -9864,21 +9852,33 @@ { "$ref": "#/components/schemas/Event.command.executed" }, - { - "$ref": "#/components/schemas/Event.session.diff" - }, - { - "$ref": "#/components/schemas/Event.session.error" - }, - { - "$ref": "#/components/schemas/Event.vcs.branch.updated" - }, { "$ref": "#/components/schemas/Event.workspace.ready" }, { "$ref": "#/components/schemas/Event.workspace.failed" }, + { + "$ref": "#/components/schemas/Event.question.asked" + }, + { + "$ref": "#/components/schemas/Event.question.replied" + }, + { + "$ref": "#/components/schemas/Event.question.rejected" + }, + { + "$ref": "#/components/schemas/Event.session.status" + }, + { + "$ref": "#/components/schemas/Event.session.idle" + }, + { + "$ref": "#/components/schemas/Event.session.compacted" + }, + { + "$ref": "#/components/schemas/Event.todo.updated" + }, { "$ref": "#/components/schemas/Event.pty.created" }, From 1a902b291c5c096b33a5f618721559e03f0a5dab Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Thu, 9 Apr 2026 16:33:38 -0400 Subject: [PATCH 040/151] ci: skip winget publish on beta and ensure finalize always runs Beta releases no longer trigger unnecessary Winget submissions, and release finalization now completes even when some build artifacts are missing. --- .github/workflows/publish.yml | 2 ++ packages/desktop/scripts/finalize-latest-json.ts | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 276e07748..2f305be5c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -213,6 +213,7 @@ jobs: needs: - build-cli - version + if: github.ref_name != 'beta' continue-on-error: false env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} @@ -547,6 +548,7 @@ jobs: - sign-cli-windows - build-tauri - build-electron + if: always() && !failure() && !cancelled() runs-on: blacksmith-4vcpu-ubuntu-2404 steps: - uses: actions/checkout@v3 diff --git a/packages/desktop/scripts/finalize-latest-json.ts b/packages/desktop/scripts/finalize-latest-json.ts index a2b95d2c4..855c6a387 100644 --- a/packages/desktop/scripts/finalize-latest-json.ts +++ b/packages/desktop/scripts/finalize-latest-json.ts @@ -21,7 +21,7 @@ const releaseId = process.env.OPENCODE_RELEASE if (!releaseId) throw new Error("OPENCODE_RELEASE is required") const version = process.env.OPENCODE_VERSION -if (!releaseId) throw new Error("OPENCODE_VERSION is required") +if (!version) throw new Error("OPENCODE_VERSION is required") const token = process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN if (!token) throw new Error("GH_TOKEN or GITHUB_TOKEN is required") @@ -54,7 +54,10 @@ const assets = release.assets ?? [] const assetByName = new Map(assets.map((asset) => [asset.name, asset])) const latestAsset = assetByName.get("latest.json") -if (!latestAsset) throw new Error("latest.json asset not found") +if (!latestAsset) { + console.log("latest.json not found, skipping tauri finalization") + process.exit(0) +} const latestRes = await fetch(latestAsset.url, { headers: { From eac50f9151be808c06a36612a69a0e4522988cdd Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Thu, 9 Apr 2026 17:06:53 -0400 Subject: [PATCH 041/151] ci: prevent beta branch builds from triggering production release steps Skip Windows and Linux code signing, along with artifact downloads for the beta branch to ensure beta builds don't go through production release processes. --- .github/workflows/publish.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2f305be5c..46a657780 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -114,7 +114,7 @@ jobs: - build-cli - version runs-on: blacksmith-4vcpu-windows-2025 - if: github.repository == 'anomalyco/opencode' + if: github.repository == 'anomalyco/opencode' && github.ref_name != 'beta' env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} @@ -390,6 +390,7 @@ jobs: needs: - build-cli - version + if: github.repository == 'anomalyco/opencode' && github.ref_name != 'beta' continue-on-error: false env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} @@ -422,7 +423,6 @@ jobs: target: aarch64-unknown-linux-gnu platform_flag: --linux runs-on: ${{ matrix.settings.host }} - # if: github.ref_name == 'beta' steps: - uses: actions/checkout@v3 @@ -591,12 +591,13 @@ jobs: path: packages/opencode/dist - uses: actions/download-artifact@v4 + if: github.ref_name != 'beta' with: name: opencode-cli-signed-windows path: packages/opencode/dist - uses: actions/download-artifact@v4 - if: needs.version.outputs.release + if: needs.version.outputs.release && github.ref_name != 'beta' with: pattern: latest-yml-* path: /tmp/latest-yml From 877be7e8e04142cd8fbebcb5e6c4b9617bf28cce Mon Sep 17 00:00:00 2001 From: opencode Date: Fri, 10 Apr 2026 01:00:12 +0000 Subject: [PATCH 042/151] release: v1.4.3 --- bun.lock | 32 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop-electron/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++----- packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 19 files changed, 39 insertions(+), 39 deletions(-) diff --git a/bun.lock b/bun.lock index c700ba66e..deeda0646 100644 --- a/bun.lock +++ b/bun.lock @@ -27,7 +27,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -81,7 +81,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -115,7 +115,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -142,7 +142,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/openai": "3.0.48", @@ -166,7 +166,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -190,7 +190,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -223,7 +223,7 @@ }, "packages/desktop-electron": { "name": "@opencode-ai/desktop-electron", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "effect": "catalog:", "electron-context-menu": "4.1.2", @@ -266,7 +266,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -295,7 +295,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -311,7 +311,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.4.2", + "version": "1.4.3", "bin": { "opencode": "./bin/opencode", }, @@ -447,7 +447,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -481,7 +481,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "cross-spawn": "catalog:", }, @@ -496,7 +496,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -531,7 +531,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -580,7 +580,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "zod": "catalog:", }, @@ -591,7 +591,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index 3e12c492b..2ac271df2 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.4.2", + "version": "1.4.3", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index dc3362e97..bcb02a907 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 9059734cc..e60da9d45 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.4.2", + "version": "1.4.3", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index d8f0e0c0e..d6ad86b8f 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.4.2", + "version": "1.4.3", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 0976bb3e2..898387d01 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.4.2", + "version": "1.4.3", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop-electron/package.json b/packages/desktop-electron/package.json index 48c17d0df..694382045 100644 --- a/packages/desktop-electron/package.json +++ b/packages/desktop-electron/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop-electron", "private": true, - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "homepage": "https://opencode.ai", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 943cbeb20..8815bf7bc 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 10a909c8c..db3da877b 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.4.2", + "version": "1.4.3", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 95fc2b1c5..c13d6c1eb 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.4.2" +version = "1.4.3" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.3/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.3/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.3/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.3/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.2/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.4.3/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index dd54e9c09..76262c25a 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.4.2", + "version": "1.4.3", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 934ef0869..7cce13190 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.4.2", + "version": "1.4.3", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index adfee9c65..ced1523da 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 3dbab2c54..47e09dfab 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index d23b740cd..892c7172e 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 01c6fae86..12325ecc7 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.4.2", + "version": "1.4.3", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 53c170f14..bee3d082a 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.4.2", + "version": "1.4.3", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index d7f627c57..df003f79f 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.4.2", + "version": "1.4.3", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 1d0472d78..290834180 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.4.2", + "version": "1.4.3", "publisher": "sst-dev", "repository": { "type": "git", From 98874a09f76402e9bdc5df197faab24f4e477c2f Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:00:46 +1000 Subject: [PATCH 043/151] fix windows e2e backend not stopping on sigterm waiting 10s for no reason (#21781) --- packages/app/e2e/backend.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/app/e2e/backend.ts b/packages/app/e2e/backend.ts index 9febc4b3f..a03d1d437 100644 --- a/packages/app/e2e/backend.ts +++ b/packages/app/e2e/backend.ts @@ -44,8 +44,12 @@ async function waitForHealth(url: string, probe = "/global/health") { throw new Error(`Timed out waiting for backend health at ${url}${probe}${last ? ` (${last})` : ""}`) } +function done(proc: ReturnType) { + return proc.exitCode !== null || proc.signalCode !== null +} + async function waitExit(proc: ReturnType, timeout = 10_000) { - if (proc.exitCode !== null) return + if (done(proc)) return await Promise.race([ new Promise((resolve) => proc.once("exit", () => resolve())), new Promise((resolve) => setTimeout(resolve, timeout)), @@ -123,11 +127,11 @@ export async function startBackend(label: string, input?: { llmUrl?: string }): return { url, async stop() { - if (proc.exitCode === null) { + if (!done(proc)) { proc.kill("SIGTERM") await waitExit(proc) } - if (proc.exitCode === null) { + if (!done(proc)) { proc.kill("SIGKILL") await waitExit(proc) } From b16ee08fd5c867fa1402237d53bb43d62a61cff2 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:01:10 +1000 Subject: [PATCH 044/151] ci use node 24 in test workflow fixing random ECONNRESET (#21782) --- .github/workflows/test.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 70a8477fb..510f68254 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,6 +17,9 @@ permissions: contents: read checks: write +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + jobs: unit: name: unit (${{ matrix.settings.name }}) @@ -38,6 +41,11 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "24" + - name: Setup Bun uses: ./.github/actions/setup-bun @@ -102,6 +110,11 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "24" + - name: Setup Bun uses: ./.github/actions/setup-bun From 04074d3f4a62e039e11ff73e73b1a2be6f651439 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Thu, 9 Apr 2026 21:34:52 -0400 Subject: [PATCH 045/151] core: enable prod channel to use shared production database Ensures users on the prod channel have their data persisted to the same database as latest and beta channels, preventing data fragmentation across different release channels. --- packages/opencode/src/storage/db.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opencode/src/storage/db.ts b/packages/opencode/src/storage/db.ts index 4cb0dbc3e..78320ac0a 100644 --- a/packages/opencode/src/storage/db.ts +++ b/packages/opencode/src/storage/db.ts @@ -29,7 +29,7 @@ const log = Log.create({ service: "db" }) export namespace Database { export function getChannelPath() { - if (["latest", "beta"].includes(CHANNEL) || Flag.OPENCODE_DISABLE_CHANNEL_DB) + if (["latest", "beta", "prod"].includes(CHANNEL) || Flag.OPENCODE_DISABLE_CHANNEL_DB) return path.join(Global.Path.data, "opencode.db") const safe = CHANNEL.replace(/[^a-zA-Z0-9._-]/g, "-") return path.join(Global.Path.data, `opencode-${safe}.db`) From 16c60c9ee782285530ce88f5f36ea5eb7898d1c2 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 21:47:48 -0400 Subject: [PATCH 046/151] refactor(session): extract sharing orchestration (#21759) --- packages/opencode/src/cli/cmd/github.ts | 3 +- .../opencode/src/server/routes/session.ts | 11 +-- packages/opencode/src/session/index.ts | 40 +---------- packages/opencode/src/share/session.ts | 67 +++++++++++++++++++ packages/opencode/src/share/share-next.ts | 6 +- specs/v2/session.md | 17 +++++ 6 files changed, 100 insertions(+), 44 deletions(-) create mode 100644 packages/opencode/src/share/session.ts create mode 100644 specs/v2/session.md diff --git a/packages/opencode/src/cli/cmd/github.ts b/packages/opencode/src/cli/cmd/github.ts index e8f3e6a11..8b693e79a 100644 --- a/packages/opencode/src/cli/cmd/github.ts +++ b/packages/opencode/src/cli/cmd/github.ts @@ -21,6 +21,7 @@ import { cmd } from "./cmd" import { ModelsDev } from "../../provider/models" import { Instance } from "@/project/instance" import { bootstrap } from "../bootstrap" +import { SessionShare } from "@/share/session" import { Session } from "../../session" import type { SessionID } from "../../session/schema" import { MessageID, PartID } from "../../session/schema" @@ -559,7 +560,7 @@ export const GithubRunCommand = cmd({ shareId = await (async () => { if (share === false) return if (!share && repoData.data.private) return - await Session.share(session.id) + await SessionShare.share(session.id) return session.id.slice(-8) })() console.log("opencode session", session.id) diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index b1a6af582..83658987e 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -9,6 +9,7 @@ import { SessionPrompt } from "../../session/prompt" import { SessionRunState } from "@/session/run-state" import { SessionCompaction } from "../../session/compaction" import { SessionRevert } from "../../session/revert" +import { SessionShare } from "@/share/session" import { SessionStatus } from "@/session/status" import { SessionSummary } from "@/session/summary" import { Todo } from "../../session/todo" @@ -206,10 +207,10 @@ export const SessionRoutes = lazy(() => }, }, }), - validator("json", Session.create.schema.optional()), + validator("json", Session.create.schema), async (c) => { const body = c.req.valid("json") ?? {} - const session = await Session.create(body) + const session = await SessionShare.create(body) return c.json(session) }, ) @@ -426,7 +427,7 @@ export const SessionRoutes = lazy(() => ), async (c) => { const sessionID = c.req.valid("param").sessionID - await Session.share(sessionID) + await SessionShare.share(sessionID) const session = await Session.get(sessionID) return c.json(session) }, @@ -491,12 +492,12 @@ export const SessionRoutes = lazy(() => validator( "param", z.object({ - sessionID: Session.unshare.schema, + sessionID: SessionID.zod, }), ), async (c) => { const sessionID = c.req.valid("param").sessionID - await Session.unshare(sessionID) + await SessionShare.unshare(sessionID) const session = await Session.get(sessionID) return c.json(session) }, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 2e68f22ed..bbd6693c5 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -5,7 +5,6 @@ import { Bus } from "@/bus" import { Decimal } from "decimal.js" import z from "zod" import { type ProviderMetadata } from "ai" -import { Config } from "../config/config" import { Flag } from "../flag/flag" import { Installation } from "../installation" @@ -30,7 +29,7 @@ import type { Provider } from "@/provider/provider" import { Permission } from "@/permission" import { Global } from "@/global" import type { LanguageModelV2Usage } from "@ai-sdk/provider" -import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Effect, Layer, ServiceMap } from "effect" import { makeRuntime } from "@/effect/run-service" export namespace Session { @@ -319,8 +318,6 @@ export namespace Session { readonly fork: (input: { sessionID: SessionID; messageID?: MessageID }) => Effect.Effect readonly touch: (sessionID: SessionID) => Effect.Effect readonly get: (id: SessionID) => Effect.Effect - readonly share: (id: SessionID) => Effect.Effect<{ url: string }> - readonly unshare: (id: SessionID) => Effect.Effect readonly setTitle: (input: { sessionID: SessionID; title: string }) => Effect.Effect readonly setArchived: (input: { sessionID: SessionID; time?: number }) => Effect.Effect readonly setPermission: (input: { sessionID: SessionID; permission: Permission.Ruleset }) => Effect.Effect @@ -364,12 +361,10 @@ export namespace Session { const db = (fn: (d: Parameters[0] extends (trx: infer D) => any ? D : never) => T) => Effect.sync(() => Database.use(fn)) - export const layer: Layer.Layer = Layer.effect( + export const layer: Layer.Layer = Layer.effect( Service, Effect.gen(function* () { const bus = yield* Bus.Service - const config = yield* Config.Service - const scope = yield* Scope.Scope const createNext = Effect.fn("Session.createNext")(function* (input: { id?: SessionID @@ -399,11 +394,6 @@ export namespace Session { yield* Effect.sync(() => SyncEvent.run(Event.Created, { sessionID: result.id, info: result })) - const cfg = yield* config.get() - if (!result.parentID && (Flag.OPENCODE_AUTO_SHARE || cfg.share === "auto")) { - yield* share(result.id).pipe(Effect.ignore, Effect.forkIn(scope)) - } - if (!Flag.OPENCODE_EXPERIMENTAL_WORKSPACES) { // This only exist for backwards compatibility. We should not be // manually publishing this event; it is a sync event now @@ -422,25 +412,6 @@ export namespace Session { return fromRow(row) }) - const share = Effect.fn("Session.share")(function* (id: SessionID) { - const cfg = yield* config.get() - if (cfg.share === "disabled") throw new Error("Sharing is disabled in configuration") - const result = yield* Effect.promise(async () => { - const { ShareNext } = await import("@/share/share-next") - return ShareNext.create(id) - }) - yield* Effect.sync(() => SyncEvent.run(Event.Updated, { sessionID: id, info: { share: { url: result.url } } })) - return result - }) - - const unshare = Effect.fn("Session.unshare")(function* (id: SessionID) { - yield* Effect.promise(async () => { - const { ShareNext } = await import("@/share/share-next") - await ShareNext.remove(id) - }) - yield* Effect.sync(() => SyncEvent.run(Event.Updated, { sessionID: id, info: { share: { url: null } } })) - }) - const children = Effect.fn("Session.children")(function* (parentID: SessionID) { const ctx = yield* InstanceState.context const rows = yield* db((d) => @@ -460,7 +431,6 @@ export namespace Session { for (const child of kids) { yield* remove(child.id) } - yield* unshare(sessionID).pipe(Effect.ignore) yield* Effect.sync(() => { SyncEvent.run(Event.Deleted, { sessionID, info: session }) SyncEvent.remove(sessionID) @@ -661,8 +631,6 @@ export namespace Session { fork, touch, get, - share, - unshare, setTitle, setArchived, setPermission, @@ -683,7 +651,7 @@ export namespace Session { }), ) - export const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Config.defaultLayer)) + export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) const { runPromise } = makeRuntime(Service, defaultLayer) @@ -704,8 +672,6 @@ export namespace Session { ) export const get = fn(SessionID.zod, (id) => runPromise((svc) => svc.get(id))) - export const share = fn(SessionID.zod, (id) => runPromise((svc) => svc.share(id))) - export const unshare = fn(SessionID.zod, (id) => runPromise((svc) => svc.unshare(id))) export const setTitle = fn(z.object({ sessionID: SessionID.zod, title: z.string() }), (input) => runPromise((svc) => svc.setTitle(input)), diff --git a/packages/opencode/src/share/session.ts b/packages/opencode/src/share/session.ts new file mode 100644 index 000000000..1446b5bb4 --- /dev/null +++ b/packages/opencode/src/share/session.ts @@ -0,0 +1,67 @@ +import { makeRuntime } from "@/effect/run-service" +import { Session } from "@/session" +import { SessionID } from "@/session/schema" +import { SyncEvent } from "@/sync" +import { fn } from "@/util/fn" +import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Config } from "../config/config" +import { Flag } from "../flag/flag" +import { ShareNext } from "./share-next" + +export namespace SessionShare { + export interface Interface { + readonly create: (input?: Parameters[0]) => Effect.Effect + readonly share: (sessionID: SessionID) => Effect.Effect<{ url: string }, unknown> + readonly unshare: (sessionID: SessionID) => Effect.Effect + } + + export class Service extends ServiceMap.Service()("@opencode/SessionShare") {} + + export const layer = Layer.effect( + Service, + Effect.gen(function* () { + const cfg = yield* Config.Service + const session = yield* Session.Service + const shareNext = yield* ShareNext.Service + const scope = yield* Scope.Scope + + const share = Effect.fn("SessionShare.share")(function* (sessionID: SessionID) { + const conf = yield* cfg.get() + if (conf.share === "disabled") throw new Error("Sharing is disabled in configuration") + const result = yield* shareNext.create(sessionID) + yield* Effect.sync(() => + SyncEvent.run(Session.Event.Updated, { sessionID, info: { share: { url: result.url } } }), + ) + return result + }) + + const unshare = Effect.fn("SessionShare.unshare")(function* (sessionID: SessionID) { + yield* shareNext.remove(sessionID) + yield* Effect.sync(() => SyncEvent.run(Session.Event.Updated, { sessionID, info: { share: { url: null } } })) + }) + + const create = Effect.fn("SessionShare.create")(function* (input?: Parameters[0]) { + const result = yield* session.create(input) + if (result.parentID) return result + const conf = yield* cfg.get() + if (!(Flag.OPENCODE_AUTO_SHARE || conf.share === "auto")) return result + yield* share(result.id).pipe(Effect.ignore, Effect.forkIn(scope)) + return result + }) + + return Service.of({ create, share, unshare }) + }), + ) + + export const defaultLayer = layer.pipe( + Layer.provide(ShareNext.defaultLayer), + Layer.provide(Session.defaultLayer), + Layer.provide(Config.defaultLayer), + ) + + const { runPromise } = makeRuntime(Service, defaultLayer) + + export const create = fn(Session.create.schema, (input) => runPromise((svc) => svc.create(input))) + export const share = fn(SessionID.zod, (sessionID) => runPromise((svc) => svc.share(sessionID))) + export const unshare = fn(SessionID.zod, (sessionID) => runPromise((svc) => svc.unshare(sessionID))) +} diff --git a/packages/opencode/src/share/share-next.ts b/packages/opencode/src/share/share-next.ts index 0cd0055c8..26b2d2570 100644 --- a/packages/opencode/src/share/share-next.ts +++ b/packages/opencode/src/share/share-next.ts @@ -159,7 +159,10 @@ export namespace ShareNext { if (disabled) return cache - const watch = (def: D, fn: (evt: { properties: any }) => Effect.Effect) => + const watch = ( + def: D, + fn: (evt: { properties: any }) => Effect.Effect, + ) => bus.subscribe(def as never).pipe( Stream.runForEach((evt) => fn(evt).pipe( @@ -194,6 +197,7 @@ export namespace ShareNext { yield* watch(Session.Event.Diff, (evt) => sync(evt.properties.sessionID, [{ type: "session_diff", data: evt.properties.diff }]), ) + yield* watch(Session.Event.Deleted, (evt) => remove(evt.properties.sessionID)) return cache }), diff --git a/specs/v2/session.md b/specs/v2/session.md new file mode 100644 index 000000000..cae90ba7c --- /dev/null +++ b/specs/v2/session.md @@ -0,0 +1,17 @@ +# Session API + +## Remove Dedicated `session.init` Route + +The dedicated `POST /session/:sessionID/init` endpoint exists only as a compatibility wrapper around the normal `/init` command flow. + +Current behavior: + +- the route calls `SessionPrompt.command(...)` +- it sends `Command.Default.INIT` +- it does not provide distinct session-core behavior beyond running the existing init command in an existing session + +V2 plan: + +- remove the dedicated `session.init` endpoint +- rely on the normal `/init` command flow instead +- avoid reintroducing `Session.initialize`-style special cases in the session service layer From 17bd16667c9706c1f210bb36e01a0d23bcdddb02 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 22:20:27 -0400 Subject: [PATCH 047/151] refactor(effect): move tool descriptions into registry (#21795) --- packages/opencode/src/tool/registry.ts | 49 +++++++++++++++++-- packages/opencode/src/tool/skill.ts | 21 -------- packages/opencode/src/tool/task.ts | 16 ------ packages/opencode/src/worktree/index.ts | 6 ++- .../test/session/prompt-effect.test.ts | 2 + .../test/session/snapshot-tool-race.test.ts | 2 + packages/opencode/test/tool/skill.test.ts | 21 +++++--- packages/opencode/test/tool/task.test.ts | 24 +++++++-- 8 files changed, 87 insertions(+), 54 deletions(-) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 800c45ced..dbb8fb286 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -5,12 +5,12 @@ import { EditTool } from "./edit" import { GlobTool } from "./glob" import { GrepTool } from "./grep" import { ReadTool } from "./read" -import { TaskDescription, TaskTool } from "./task" +import { TaskTool } from "./task" import { TodoWriteTool } from "./todo" import { WebFetchTool } from "./webfetch" import { WriteTool } from "./write" import { InvalidTool } from "./invalid" -import { SkillDescription, SkillTool } from "./skill" +import { SkillTool } from "./skill" import { Tool } from "./tool" import { Config } from "../config/config" import { type ToolContext as PluginToolContext, type ToolDefinition } from "@opencode-ai/plugin" @@ -38,6 +38,8 @@ import { FileTime } from "../file/time" import { Instruction } from "../session/instruction" import { AppFileSystem } from "../filesystem" import { Agent } from "../agent/agent" +import { Skill } from "../skill" +import { Permission } from "@/permission" export namespace ToolRegistry { const log = Log.create({ service: "tool.registry" }) @@ -73,6 +75,7 @@ export namespace ToolRegistry { | Question.Service | Todo.Service | Agent.Service + | Skill.Service | LSP.Service | FileTime.Service | Instruction.Service @@ -82,6 +85,8 @@ export namespace ToolRegistry { Effect.gen(function* () { const config = yield* Config.Service const plugin = yield* Plugin.Service + const agents = yield* Agent.Service + const skill = yield* Skill.Service const task = yield* TaskTool const read = yield* ReadTool @@ -199,6 +204,40 @@ export namespace ToolRegistry { return (yield* all()).map((tool) => tool.id) }) + const describeSkill = Effect.fn("ToolRegistry.describeSkill")(function* (agent: Agent.Info) { + const list = yield* skill.available(agent) + if (list.length === 0) return "No skills are currently available." + return [ + "Load a specialized skill that provides domain-specific instructions and workflows.", + "", + "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", + "", + "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", + "", + 'Tool output includes a `` block with the loaded content.', + "", + "The following skills provide specialized sets of instructions for particular tasks", + "Invoke this tool to load a skill when a task matches one of the available skills listed below:", + "", + Skill.fmt(list, { verbose: false }), + ].join("\n") + }) + + const describeTask = Effect.fn("ToolRegistry.describeTask")(function* (agent: Agent.Info) { + const items = (yield* agents.list()).filter((item) => item.mode !== "primary") + const filtered = items.filter( + (item) => Permission.evaluate("task", item.name, agent.permission).action !== "deny", + ) + const list = filtered.toSorted((a, b) => a.name.localeCompare(b.name)) + const description = list + .map( + (item) => + `- ${item.name}: ${item.description ?? "This subagent should only be called manually by the user."}`, + ) + .join("\n") + return ["Available agent types and the tools they have access to:", description].join("\n") + }) + const tools: Interface["tools"] = Effect.fn("ToolRegistry.tools")(function* (input) { const filtered = (yield* all()).filter((tool) => { if (tool.id === CodeSearchTool.id || tool.id === WebSearchTool.id) { @@ -227,8 +266,8 @@ export namespace ToolRegistry { id: tool.id, description: [ output.description, - tool.id === TaskTool.id ? yield* TaskDescription(input.agent) : undefined, - tool.id === SkillTool.id ? yield* SkillDescription(input.agent) : undefined, + tool.id === TaskTool.id ? yield* describeTask(input.agent) : undefined, + tool.id === SkillTool.id ? yield* describeSkill(input.agent) : undefined, ] .filter(Boolean) .join("\n"), @@ -257,7 +296,9 @@ export namespace ToolRegistry { Layer.provide(Plugin.defaultLayer), Layer.provide(Question.defaultLayer), Layer.provide(Todo.defaultLayer), + Layer.provide(Skill.defaultLayer), Layer.provide(Agent.defaultLayer), + Layer.provide(Skill.defaultLayer), Layer.provide(LSP.defaultLayer), Layer.provide(FileTime.defaultLayer), Layer.provide(Instruction.defaultLayer), diff --git a/packages/opencode/src/tool/skill.ts b/packages/opencode/src/tool/skill.ts index 276f3931d..e0777d00f 100644 --- a/packages/opencode/src/tool/skill.ts +++ b/packages/opencode/src/tool/skill.ts @@ -1,4 +1,3 @@ -import { Effect } from "effect" import path from "path" import { pathToFileURL } from "url" import z from "zod" @@ -98,23 +97,3 @@ export const SkillTool = Tool.define("skill", async () => { }, } }) - -export const SkillDescription: Tool.DynamicDescription = (agent) => - Effect.gen(function* () { - const list = yield* Effect.promise(() => Skill.available(agent)) - if (list.length === 0) return "No skills are currently available." - return [ - "Load a specialized skill that provides domain-specific instructions and workflows.", - "", - "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", - "", - "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", - "", - 'Tool output includes a `` block with the loaded content.', - "", - "The following skills provide specialized sets of instructions for particular tasks", - "Invoke this tool to load a skill when a task matches one of the available skills listed below:", - "", - Skill.fmt(list, { verbose: false }), - ].join("\n") - }) diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index b97b53bb9..900938f0d 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -7,7 +7,6 @@ import { MessageV2 } from "../session/message-v2" import { Agent } from "../agent/agent" import { SessionPrompt } from "../session/prompt" import { Config } from "../config/config" -import { Permission } from "@/permission" import { Effect } from "effect" import { Log } from "@/util/log" @@ -176,18 +175,3 @@ export const TaskTool = Tool.defineEffect( } }), ) - -export const TaskDescription: Tool.DynamicDescription = (agent) => - Effect.gen(function* () { - const items = yield* Effect.promise(() => - Agent.list().then((items) => items.filter((item) => item.mode !== "primary")), - ) - const filtered = items.filter((item) => Permission.evaluate(id, item.name, agent.permission).action !== "deny") - const list = filtered.toSorted((a, b) => a.name.localeCompare(b.name)) - const description = list - .map( - (item) => `- ${item.name}: ${item.description ?? "This subagent should only be called manually by the user."}`, - ) - .join("\n") - return ["Available agent types and the tools they have access to:", description].join("\n") - }) diff --git a/packages/opencode/src/worktree/index.ts b/packages/opencode/src/worktree/index.ts index b34364ccd..54986d65c 100644 --- a/packages/opencode/src/worktree/index.ts +++ b/packages/opencode/src/worktree/index.ts @@ -171,7 +171,7 @@ export namespace Worktree { export const layer: Layer.Layer< Service, never, - AppFileSystem.Service | Path.Path | ChildProcessSpawner.ChildProcessSpawner | Project.Service + AppFileSystem.Service | Path.Path | ChildProcessSpawner.ChildProcessSpawner | Git.Service | Project.Service > = Layer.effect( Service, Effect.gen(function* () { @@ -179,6 +179,7 @@ export namespace Worktree { const fs = yield* AppFileSystem.Service const pathSvc = yield* Path.Path const spawner = yield* ChildProcessSpawner.ChildProcessSpawner + const gitSvc = yield* Git.Service const project = yield* Project.Service const git = Effect.fnUntraced( @@ -516,7 +517,7 @@ export namespace Worktree { const worktreePath = entry.path - const base = yield* Effect.promise(() => Git.defaultBranch(Instance.worktree)) + const base = yield* gitSvc.defaultBranch(Instance.worktree) if (!base) { throw new ResetFailedError({ message: "Default branch not found" }) } @@ -583,6 +584,7 @@ export namespace Worktree { ) const defaultLayer = layer.pipe( + Layer.provide(Git.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Project.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index 81288f0ca..e9893760c 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -28,6 +28,7 @@ import { SessionPrompt } from "../../src/session/prompt" import { SessionRunState } from "../../src/session/run-state" import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" +import { Skill } from "../../src/skill" import { Shell } from "../../src/shell/shell" import { Snapshot } from "../../src/snapshot" import { ToolRegistry } from "../../src/tool/registry" @@ -166,6 +167,7 @@ function makeHttp() { const question = Question.layer.pipe(Layer.provideMerge(deps)) const todo = Todo.layer.pipe(Layer.provideMerge(deps)) const registry = ToolRegistry.layer.pipe( + Layer.provide(Skill.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 9cc4d750c..75ba8ef16 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -39,6 +39,7 @@ import { Permission } from "../../src/permission" import { Plugin } from "../../src/plugin" import { Provider as ProviderSvc } from "../../src/provider/provider" import { Question } from "../../src/question" +import { Skill } from "../../src/skill" import { Todo } from "../../src/session/todo" import { SessionCompaction } from "../../src/session/compaction" import { Instruction } from "../../src/session/instruction" @@ -131,6 +132,7 @@ function makeHttp() { const question = Question.layer.pipe(Layer.provideMerge(deps)) const todo = Todo.layer.pipe(Layer.provideMerge(deps)) const registry = ToolRegistry.layer.pipe( + Layer.provide(Skill.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index e6269a4f3..ea9aeeaf9 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -5,7 +5,8 @@ import { pathToFileURL } from "url" import type { Permission } from "../../src/permission" import type { Tool } from "../../src/tool/tool" import { Instance } from "../../src/project/instance" -import { SkillTool, SkillDescription } from "../../src/tool/skill" +import { SkillTool } from "../../src/tool/skill" +import { ToolRegistry } from "../../src/tool/registry" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" @@ -49,9 +50,11 @@ description: Skill for tool tests. await Instance.provide({ directory: tmp.path, fn: async () => { - const desc = await Effect.runPromise( - SkillDescription({ name: "build", mode: "primary" as const, permission: [], options: {} }), - ) + const desc = await ToolRegistry.tools({ + providerID: "opencode" as any, + modelID: "gpt-5" as any, + agent: { name: "build", mode: "primary" as const, permission: [], options: {} }, + }).then((tools) => tools.find((tool) => tool.id === SkillTool.id)?.description ?? "") expect(desc).toContain(`**tool-skill**: Skill for tool tests.`) }, }) @@ -92,8 +95,14 @@ description: ${description} directory: tmp.path, fn: async () => { const agent = { name: "build", mode: "primary" as const, permission: [], options: {} } - const first = await Effect.runPromise(SkillDescription(agent)) - const second = await Effect.runPromise(SkillDescription(agent)) + const load = () => + ToolRegistry.tools({ + providerID: "opencode" as any, + modelID: "gpt-5" as any, + agent, + }).then((tools) => tools.find((tool) => tool.id === SkillTool.id)?.description ?? "") + const first = await load() + const second = await load() expect(first).toBe(second) diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index 8ebfa59d2..e3e6d58d3 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -9,7 +9,8 @@ import { MessageV2 } from "../../src/session/message-v2" import { SessionPrompt } from "../../src/session/prompt" import { MessageID, PartID } from "../../src/session/schema" import { ModelID, ProviderID } from "../../src/provider/schema" -import { TaskDescription, TaskTool } from "../../src/tool/task" +import { TaskTool } from "../../src/tool/task" +import { ToolRegistry } from "../../src/tool/registry" import { provideTmpdirInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" @@ -23,7 +24,13 @@ const ref = { } const it = testEffect( - Layer.mergeAll(Agent.defaultLayer, Config.defaultLayer, CrossSpawnSpawner.defaultLayer, Session.defaultLayer), + Layer.mergeAll( + Agent.defaultLayer, + Config.defaultLayer, + CrossSpawnSpawner.defaultLayer, + Session.defaultLayer, + ToolRegistry.defaultLayer, + ), ) const seed = Effect.fn("TaskToolTest.seed")(function* (title = "Pinned") { @@ -92,8 +99,13 @@ describe("tool.task", () => { Effect.gen(function* () { const agent = yield* Agent.Service const build = yield* agent.get("build") - const first = yield* TaskDescription(build) - const second = yield* TaskDescription(build) + const registry = yield* ToolRegistry.Service + const get = Effect.fnUntraced(function* () { + const tools = yield* registry.tools({ ...ref, agent: build }) + return tools.find((tool) => tool.id === TaskTool.id)?.description ?? "" + }) + const first = yield* get() + const second = yield* get() expect(first).toBe(second) @@ -130,7 +142,9 @@ describe("tool.task", () => { Effect.gen(function* () { const agent = yield* Agent.Service const build = yield* agent.get("build") - const description = yield* TaskDescription(build) + const registry = yield* ToolRegistry.Service + const description = + (yield* registry.tools({ ...ref, agent: build })).find((tool) => tool.id === TaskTool.id)?.description ?? "" expect(description).toContain("- alpha: Alpha agent") expect(description).not.toContain("- zebra: Zebra agent") From eca11ca71ab34d5818a18754981c97bc03b62bc1 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 22:28:11 -0400 Subject: [PATCH 048/151] refactor(effect): use SessionRevert service in prompt (#21796) --- packages/opencode/src/session/compaction.ts | 20 ++++---- packages/opencode/src/session/processor.ts | 24 ++++----- packages/opencode/src/session/prompt.ts | 50 +++++++++---------- packages/opencode/src/session/revert.ts | 19 +++---- packages/opencode/src/session/summary.ts | 14 +++--- packages/opencode/src/tool/registry.ts | 27 +++++----- .../test/session/prompt-effect.test.ts | 2 + .../test/session/snapshot-tool-race.test.ts | 2 + 8 files changed, 75 insertions(+), 83 deletions(-) diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 975327198..937aa7132 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -377,17 +377,15 @@ When constructing the summary, try to stick to this template: }), ) - export const defaultLayer = Layer.unwrap( - Effect.sync(() => - layer.pipe( - Layer.provide(Provider.defaultLayer), - Layer.provide(Session.defaultLayer), - Layer.provide(SessionProcessor.defaultLayer), - Layer.provide(Agent.defaultLayer), - Layer.provide(Plugin.defaultLayer), - Layer.provide(Bus.layer), - Layer.provide(Config.defaultLayer), - ), + export const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(Provider.defaultLayer), + Layer.provide(Session.defaultLayer), + Layer.provide(SessionProcessor.defaultLayer), + Layer.provide(Agent.defaultLayer), + Layer.provide(Plugin.defaultLayer), + Layer.provide(Bus.layer), + Layer.provide(Config.defaultLayer), ), ) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 2e4d34bfc..99389de1e 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -594,19 +594,17 @@ export namespace SessionProcessor { }), ) - export const defaultLayer = Layer.unwrap( - Effect.sync(() => - layer.pipe( - Layer.provide(Session.defaultLayer), - Layer.provide(Snapshot.defaultLayer), - Layer.provide(Agent.defaultLayer), - Layer.provide(LLM.defaultLayer), - Layer.provide(Permission.defaultLayer), - Layer.provide(Plugin.defaultLayer), - Layer.provide(SessionStatus.layer.pipe(Layer.provide(Bus.layer))), - Layer.provide(Bus.layer), - Layer.provide(Config.defaultLayer), - ), + export const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(Session.defaultLayer), + Layer.provide(Snapshot.defaultLayer), + Layer.provide(Agent.defaultLayer), + Layer.provide(LLM.defaultLayer), + Layer.provide(Permission.defaultLayer), + Layer.provide(Plugin.defaultLayer), + Layer.provide(SessionStatus.defaultLayer), + Layer.provide(Bus.layer), + Layer.provide(Config.defaultLayer), ), ) } diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 7f0a014ab..33be6b9c5 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -99,6 +99,7 @@ export namespace SessionPrompt { const scope = yield* Scope.Scope const instruction = yield* Instruction.Service const state = yield* SessionRunState.Service + const revert = yield* SessionRevert.Service const cancel = Effect.fn("SessionPrompt.cancel")(function* (sessionID: SessionID) { log.info("cancel", { sessionID }) @@ -708,7 +709,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the const ctx = yield* InstanceState.context const session = yield* sessions.get(input.sessionID) if (session.revert) { - yield* Effect.promise(() => SessionRevert.cleanup(session)) + yield* revert.cleanup(session) } const agent = yield* agents.get(input.agent) if (!agent) { @@ -1269,7 +1270,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the const prompt: (input: PromptInput) => Effect.Effect = Effect.fn("SessionPrompt.prompt")( function* (input: PromptInput) { const session = yield* sessions.get(input.sessionID) - yield* Effect.promise(() => SessionRevert.cleanup(session)) + yield* revert.cleanup(session) const message = yield* createUserMessage(input) yield* sessions.touch(input.sessionID) @@ -1665,29 +1666,28 @@ NOTE: At any point in time through this workflow you should feel free to ask the }), ) - const defaultLayer = Layer.unwrap( - Effect.sync(() => - layer.pipe( - Layer.provide(SessionRunState.layer), - Layer.provide(SessionStatus.layer), - Layer.provide(SessionCompaction.defaultLayer), - Layer.provide(SessionProcessor.defaultLayer), - Layer.provide(Command.defaultLayer), - Layer.provide(Permission.defaultLayer), - Layer.provide(MCP.defaultLayer), - Layer.provide(LSP.defaultLayer), - Layer.provide(FileTime.defaultLayer), - Layer.provide(ToolRegistry.defaultLayer), - Layer.provide(Truncate.layer), - Layer.provide(Provider.defaultLayer), - Layer.provide(Instruction.defaultLayer), - Layer.provide(AppFileSystem.defaultLayer), - Layer.provide(Plugin.defaultLayer), - Layer.provide(Session.defaultLayer), - Layer.provide(Agent.defaultLayer), - Layer.provide(Bus.layer), - Layer.provide(CrossSpawnSpawner.defaultLayer), - ), + const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(SessionRunState.defaultLayer), + Layer.provide(SessionStatus.defaultLayer), + Layer.provide(SessionCompaction.defaultLayer), + Layer.provide(SessionProcessor.defaultLayer), + Layer.provide(Command.defaultLayer), + Layer.provide(Permission.defaultLayer), + Layer.provide(MCP.defaultLayer), + Layer.provide(LSP.defaultLayer), + Layer.provide(FileTime.defaultLayer), + Layer.provide(ToolRegistry.defaultLayer), + Layer.provide(Truncate.defaultLayer), + Layer.provide(Provider.defaultLayer), + Layer.provide(Instruction.defaultLayer), + Layer.provide(AppFileSystem.defaultLayer), + Layer.provide(Plugin.defaultLayer), + Layer.provide(Session.defaultLayer), + Layer.provide(SessionRevert.defaultLayer), + Layer.provide(Agent.defaultLayer), + Layer.provide(Bus.layer), + Layer.provide(CrossSpawnSpawner.defaultLayer), ), ) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts index a2d517f77..1216362ca 100644 --- a/packages/opencode/src/session/revert.ts +++ b/packages/opencode/src/session/revert.ts @@ -150,17 +150,14 @@ export namespace SessionRevert { }), ) - export const defaultLayer = Layer.unwrap( - Effect.sync(() => - layer.pipe( - Layer.provide(SessionRunState.layer), - Layer.provide(SessionStatus.layer), - Layer.provide(Session.defaultLayer), - Layer.provide(Snapshot.defaultLayer), - Layer.provide(Storage.defaultLayer), - Layer.provide(Bus.layer), - Layer.provide(SessionSummary.defaultLayer), - ), + export const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(SessionRunState.defaultLayer), + Layer.provide(Session.defaultLayer), + Layer.provide(Snapshot.defaultLayer), + Layer.provide(Storage.defaultLayer), + Layer.provide(Bus.layer), + Layer.provide(SessionSummary.defaultLayer), ), ) diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index f2b53f3ba..2f07a0f5d 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -150,14 +150,12 @@ export namespace SessionSummary { }), ) - export const defaultLayer = Layer.unwrap( - Effect.sync(() => - layer.pipe( - Layer.provide(Session.defaultLayer), - Layer.provide(Snapshot.defaultLayer), - Layer.provide(Storage.defaultLayer), - Layer.provide(Bus.layer), - ), + export const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(Session.defaultLayer), + Layer.provide(Snapshot.defaultLayer), + Layer.provide(Storage.defaultLayer), + Layer.provide(Bus.layer), ), ) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index dbb8fb286..9c0771b8d 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -289,21 +289,18 @@ export namespace ToolRegistry { }), ) - export const defaultLayer = Layer.unwrap( - Effect.sync(() => - layer.pipe( - Layer.provide(Config.defaultLayer), - Layer.provide(Plugin.defaultLayer), - Layer.provide(Question.defaultLayer), - Layer.provide(Todo.defaultLayer), - Layer.provide(Skill.defaultLayer), - Layer.provide(Agent.defaultLayer), - Layer.provide(Skill.defaultLayer), - Layer.provide(LSP.defaultLayer), - Layer.provide(FileTime.defaultLayer), - Layer.provide(Instruction.defaultLayer), - Layer.provide(AppFileSystem.defaultLayer), - ), + export const defaultLayer = Layer.suspend(() => + layer.pipe( + Layer.provide(Config.defaultLayer), + Layer.provide(Plugin.defaultLayer), + Layer.provide(Question.defaultLayer), + Layer.provide(Todo.defaultLayer), + Layer.provide(Skill.defaultLayer), + Layer.provide(Agent.defaultLayer), + Layer.provide(LSP.defaultLayer), + Layer.provide(FileTime.defaultLayer), + Layer.provide(Instruction.defaultLayer), + Layer.provide(AppFileSystem.defaultLayer), ), ) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index e9893760c..215f6668c 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -25,6 +25,7 @@ import { SessionCompaction } from "../../src/session/compaction" import { Instruction } from "../../src/session/instruction" import { SessionProcessor } from "../../src/session/processor" import { SessionPrompt } from "../../src/session/prompt" +import { SessionRevert } from "../../src/session/revert" import { SessionRunState } from "../../src/session/run-state" import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" @@ -178,6 +179,7 @@ function makeHttp() { return Layer.mergeAll( TestLLMServer.layer, SessionPrompt.layer.pipe( + Layer.provide(SessionRevert.defaultLayer), Layer.provideMerge(run), Layer.provideMerge(compact), Layer.provideMerge(proc), diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 75ba8ef16..ae67983bf 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -18,6 +18,7 @@ import path from "path" import { Session } from "../../src/session" import { LLM } from "../../src/session/llm" import { SessionPrompt } from "../../src/session/prompt" +import { SessionRevert } from "../../src/session/revert" import { SessionSummary } from "../../src/session/summary" import { MessageV2 } from "../../src/session/message-v2" import { Log } from "../../src/util/log" @@ -143,6 +144,7 @@ function makeHttp() { return Layer.mergeAll( TestLLMServer.layer, SessionPrompt.layer.pipe( + Layer.provide(SessionRevert.defaultLayer), Layer.provideMerge(run), Layer.provideMerge(compact), Layer.provideMerge(proc), From 91786d2fc18c09a4b08846396e4d7f21b03e0c5c Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 9 Apr 2026 22:49:36 -0400 Subject: [PATCH 049/151] refactor(effect): use Git service in file and storage (#21803) --- packages/opencode/src/file/index.ts | 193 ++++++++---------- packages/opencode/src/file/watcher.ts | 11 +- packages/opencode/src/storage/storage.ts | 21 +- packages/opencode/test/file/watcher.test.ts | 2 + .../opencode/test/storage/storage.test.ts | 3 +- 5 files changed, 109 insertions(+), 121 deletions(-) diff --git a/packages/opencode/src/file/index.ts b/packages/opencode/src/file/index.ts index cdcf80a99..47d15fbb0 100644 --- a/packages/opencode/src/file/index.ts +++ b/packages/opencode/src/file/index.ts @@ -11,7 +11,6 @@ import path from "path" import z from "zod" import { Global } from "../global" import { Instance } from "../project/instance" -import { Filesystem } from "../util/filesystem" import { Log } from "../util/log" import { Protected } from "./protected" import { Ripgrep } from "./ripgrep" @@ -344,6 +343,7 @@ export namespace File { Service, Effect.gen(function* () { const appFs = yield* AppFileSystem.Service + const git = yield* Git.Service const state = yield* InstanceState.make( Effect.fn("File.state")(() => @@ -410,6 +410,10 @@ export namespace File { cachedScan = yield* Effect.cached(scan().pipe(Effect.catchCause(() => Effect.void))) }) + const gitText = Effect.fnUntraced(function* (args: string[]) { + return (yield* git.run(args, { cwd: Instance.directory })).text() + }) + const init = Effect.fn("File.init")(function* () { yield* ensure() }) @@ -417,100 +421,87 @@ export namespace File { const status = Effect.fn("File.status")(function* () { if (Instance.project.vcs !== "git") return [] - return yield* Effect.promise(async () => { - const diffOutput = ( - await Git.run(["-c", "core.fsmonitor=false", "-c", "core.quotepath=false", "diff", "--numstat", "HEAD"], { - cwd: Instance.directory, + const diffOutput = yield* gitText([ + "-c", + "core.fsmonitor=false", + "-c", + "core.quotepath=false", + "diff", + "--numstat", + "HEAD", + ]) + + const changed: File.Info[] = [] + + if (diffOutput.trim()) { + for (const line of diffOutput.trim().split("\n")) { + const [added, removed, file] = line.split("\t") + changed.push({ + path: file, + added: added === "-" ? 0 : parseInt(added, 10), + removed: removed === "-" ? 0 : parseInt(removed, 10), + status: "modified", }) - ).text() - - const changed: File.Info[] = [] - - if (diffOutput.trim()) { - for (const line of diffOutput.trim().split("\n")) { - const [added, removed, file] = line.split("\t") - changed.push({ - path: file, - added: added === "-" ? 0 : parseInt(added, 10), - removed: removed === "-" ? 0 : parseInt(removed, 10), - status: "modified", - }) - } } + } - const untrackedOutput = ( - await Git.run( - [ - "-c", - "core.fsmonitor=false", - "-c", - "core.quotepath=false", - "ls-files", - "--others", - "--exclude-standard", - ], - { - cwd: Instance.directory, - }, - ) - ).text() + const untrackedOutput = yield* gitText([ + "-c", + "core.fsmonitor=false", + "-c", + "core.quotepath=false", + "ls-files", + "--others", + "--exclude-standard", + ]) - if (untrackedOutput.trim()) { - for (const file of untrackedOutput.trim().split("\n")) { - try { - const content = await Filesystem.readText(path.join(Instance.directory, file)) - changed.push({ - path: file, - added: content.split("\n").length, - removed: 0, - status: "added", - }) - } catch { - continue - } - } + if (untrackedOutput.trim()) { + for (const file of untrackedOutput.trim().split("\n")) { + const content = yield* appFs + .readFileString(path.join(Instance.directory, file)) + .pipe(Effect.catch(() => Effect.succeed(undefined))) + if (content === undefined) continue + changed.push({ + path: file, + added: content.split("\n").length, + removed: 0, + status: "added", + }) } + } - const deletedOutput = ( - await Git.run( - [ - "-c", - "core.fsmonitor=false", - "-c", - "core.quotepath=false", - "diff", - "--name-only", - "--diff-filter=D", - "HEAD", - ], - { - cwd: Instance.directory, - }, - ) - ).text() + const deletedOutput = yield* gitText([ + "-c", + "core.fsmonitor=false", + "-c", + "core.quotepath=false", + "diff", + "--name-only", + "--diff-filter=D", + "HEAD", + ]) - if (deletedOutput.trim()) { - for (const file of deletedOutput.trim().split("\n")) { - changed.push({ - path: file, - added: 0, - removed: 0, - status: "deleted", - }) - } + if (deletedOutput.trim()) { + for (const file of deletedOutput.trim().split("\n")) { + changed.push({ + path: file, + added: 0, + removed: 0, + status: "deleted", + }) } + } - return changed.map((item) => { - const full = path.isAbsolute(item.path) ? item.path : path.join(Instance.directory, item.path) - return { - ...item, - path: path.relative(Instance.directory, full), - } - }) + return changed.map((item) => { + const full = path.isAbsolute(item.path) ? item.path : path.join(Instance.directory, item.path) + return { + ...item, + path: path.relative(Instance.directory, full), + } }) }) - const read = Effect.fn("File.read")(function* (file: string) { + const read: Interface["read"] = Effect.fn("File.read")(function* (file: string) { using _ = log.time("read", { file }) const full = path.join(Instance.directory, file) @@ -558,27 +549,19 @@ export namespace File { ) if (Instance.project.vcs === "git") { - return yield* Effect.promise(async (): Promise => { - let diff = ( - await Git.run(["-c", "core.fsmonitor=false", "diff", "--", file], { cwd: Instance.directory }) - ).text() - if (!diff.trim()) { - diff = ( - await Git.run(["-c", "core.fsmonitor=false", "diff", "--staged", "--", file], { - cwd: Instance.directory, - }) - ).text() - } - if (diff.trim()) { - const original = (await Git.run(["show", `HEAD:${file}`], { cwd: Instance.directory })).text() - const patch = structuredPatch(file, file, original, content, "old", "new", { - context: Infinity, - ignoreWhitespace: true, - }) - return { type: "text", content, patch, diff: formatPatch(patch) } - } - return { type: "text", content } - }) + let diff = yield* gitText(["-c", "core.fsmonitor=false", "diff", "--", file]) + if (!diff.trim()) { + diff = yield* gitText(["-c", "core.fsmonitor=false", "diff", "--staged", "--", file]) + } + if (diff.trim()) { + const original = yield* git.show(Instance.directory, "HEAD", file) + const patch = structuredPatch(file, file, original, content, "old", "new", { + context: Infinity, + ignoreWhitespace: true, + }) + return { type: "text" as const, content, patch, diff: formatPatch(patch) } + } + return { type: "text" as const, content } } return { type: "text" as const, content } @@ -660,7 +643,7 @@ export namespace File { }), ) - export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer)) + export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer), Layer.provide(Git.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/file/watcher.ts b/packages/opencode/src/file/watcher.ts index b78b3a33a..dd8b5798c 100644 --- a/packages/opencode/src/file/watcher.ts +++ b/packages/opencode/src/file/watcher.ts @@ -71,6 +71,7 @@ export namespace FileWatcher { Service, Effect.gen(function* () { const config = yield* Config.Service + const git = yield* Git.Service const state = yield* InstanceState.make( Effect.fn("FileWatcher.state")( @@ -131,11 +132,9 @@ export namespace FileWatcher { } if (Instance.project.vcs === "git") { - const result = yield* Effect.promise(() => - Git.run(["rev-parse", "--git-dir"], { - cwd: Instance.project.worktree, - }), - ) + const result = yield* git.run(["rev-parse", "--git-dir"], { + cwd: Instance.project.worktree, + }) const vcsDir = result.exitCode === 0 ? path.resolve(Instance.project.worktree, result.text().trim()) : undefined if (vcsDir && !cfgIgnores.includes(".git") && !cfgIgnores.includes(vcsDir)) { @@ -161,7 +160,7 @@ export namespace FileWatcher { }), ) - export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer)) + export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer), Layer.provide(Git.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts index 0d0dce726..c30089a18 100644 --- a/packages/opencode/src/storage/storage.ts +++ b/packages/opencode/src/storage/storage.ts @@ -11,7 +11,11 @@ import { Git } from "@/git" export namespace Storage { const log = Log.create({ service: "storage" }) - type Migration = (dir: string, fs: AppFileSystem.Interface) => Effect.Effect + type Migration = ( + dir: string, + fs: AppFileSystem.Interface, + git: Git.Interface, + ) => Effect.Effect export const NotFoundError = NamedError.create( "NotFoundError", @@ -83,7 +87,7 @@ export namespace Storage { } const MIGRATIONS: Migration[] = [ - Effect.fn("Storage.migration.1")(function* (dir: string, fs: AppFileSystem.Interface) { + Effect.fn("Storage.migration.1")(function* (dir: string, fs: AppFileSystem.Interface, git: Git.Interface) { const project = path.resolve(dir, "../project") if (!(yield* fs.isDir(project))) return const projectDirs = yield* fs.glob("*", { @@ -110,11 +114,9 @@ export namespace Storage { } if (!worktree) continue if (!(yield* fs.isDir(worktree))) continue - const result = yield* Effect.promise(() => - Git.run(["rev-list", "--max-parents=0", "--all"], { - cwd: worktree, - }), - ) + const result = yield* git.run(["rev-list", "--max-parents=0", "--all"], { + cwd: worktree, + }) const [id] = result .text() .split("\n") @@ -220,6 +222,7 @@ export namespace Storage { Service, Effect.gen(function* () { const fs = yield* AppFileSystem.Service + const git = yield* Git.Service const locks = yield* RcMap.make({ lookup: () => TxReentrantLock.make(), idleTimeToLive: 0, @@ -236,7 +239,7 @@ export namespace Storage { for (let i = migration; i < MIGRATIONS.length; i++) { log.info("running migration", { index: i }) const step = MIGRATIONS[i]! - const exit = yield* Effect.exit(step(dir, fs)) + const exit = yield* Effect.exit(step(dir, fs, git)) if (Exit.isFailure(exit)) { log.error("failed to run migration", { index: i, cause: exit.cause }) break @@ -327,7 +330,7 @@ export namespace Storage { }), ) - export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer)) + export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer), Layer.provide(Git.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/test/file/watcher.test.ts b/packages/opencode/test/file/watcher.test.ts index 2224a80e6..0c8968d94 100644 --- a/packages/opencode/test/file/watcher.test.ts +++ b/packages/opencode/test/file/watcher.test.ts @@ -7,6 +7,7 @@ import { tmpdir } from "../fixture/fixture" import { Bus } from "../../src/bus" import { Config } from "../../src/config/config" import { FileWatcher } from "../../src/file/watcher" +import { Git } from "../../src/git" import { Instance } from "../../src/project/instance" // Native @parcel/watcher bindings aren't reliably available in CI (missing on Linux, flaky on Windows) @@ -32,6 +33,7 @@ function withWatcher(directory: string, body: Effect.Effect) { fn: async () => { const layer: Layer.Layer = FileWatcher.layer.pipe( Layer.provide(Config.defaultLayer), + Layer.provide(Git.defaultLayer), Layer.provide(watcherConfigLayer), ) const rt = ManagedRuntime.make(layer) diff --git a/packages/opencode/test/storage/storage.test.ts b/packages/opencode/test/storage/storage.test.ts index e5a04c082..1ff40b4b9 100644 --- a/packages/opencode/test/storage/storage.test.ts +++ b/packages/opencode/test/storage/storage.test.ts @@ -3,6 +3,7 @@ import fs from "fs/promises" import path from "path" import { Effect, Layer, ManagedRuntime } from "effect" import { AppFileSystem } from "../../src/filesystem" +import { Git } from "../../src/git" import { Global } from "../../src/global" import { Storage } from "../../src/storage/storage" import { tmpdir } from "../fixture/fixture" @@ -47,7 +48,7 @@ async function withStorage( root: string, fn: (run: (body: Effect.Effect) => Promise) => Promise, ) { - const rt = ManagedRuntime.make(Storage.layer.pipe(Layer.provide(layer(root)))) + const rt = ManagedRuntime.make(Storage.layer.pipe(Layer.provide(layer(root)), Layer.provide(Git.defaultLayer))) try { return await fn((body) => rt.runPromise(body)) } finally { From ce19c051be86b5d0fff458bf4d74803c40c06350 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 10 Apr 2026 00:15:45 -0500 Subject: [PATCH 050/151] fix: ts lsp (#21827) --- packages/opencode/src/lsp/server.ts | 12 +--- packages/opencode/test/lsp/index.test.ts | 78 ------------------------ 2 files changed, 1 insertion(+), 89 deletions(-) diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index f50c858e9..abfb31ead 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -105,17 +105,7 @@ export namespace LSPServer { if (!tsserver) return const bin = await Npm.which("typescript-language-server") if (!bin) return - - const args = ["--stdio", "--tsserver-log-verbosity", "off", "--tsserver-path", tsserver] - - if ( - !(await pathExists(path.join(root, "tsconfig.json"))) && - !(await pathExists(path.join(root, "jsconfig.json"))) - ) { - args.push("--ignore-node-modules") - } - - const proc = spawn(bin, args, { + const proc = spawn(bin, ["--stdio"], { cwd: root, env: { ...process.env, diff --git a/packages/opencode/test/lsp/index.test.ts b/packages/opencode/test/lsp/index.test.ts index cfab72d83..7e514e39b 100644 --- a/packages/opencode/test/lsp/index.test.ts +++ b/packages/opencode/test/lsp/index.test.ts @@ -1,8 +1,6 @@ import { describe, expect, spyOn, test } from "bun:test" import path from "path" -import fs from "fs/promises" import * as Lsp from "../../src/lsp/index" -import * as launch from "../../src/lsp/launch" import { LSPServer } from "../../src/lsp/server" import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" @@ -54,80 +52,4 @@ describe("lsp.spawn", () => { await Instance.disposeAll() } }) - - test("spawns builtin Typescript LSP with correct arguments", async () => { - await using tmp = await tmpdir() - - // Create dummy tsserver to satisfy Module.resolve - const tsdk = path.join(tmp.path, "node_modules", "typescript", "lib") - await fs.mkdir(tsdk, { recursive: true }) - await fs.writeFile(path.join(tsdk, "tsserver.js"), "") - - const spawnSpy = spyOn(launch, "spawn").mockImplementation( - () => - ({ - stdin: {}, - stdout: {}, - stderr: {}, - on: () => {}, - kill: () => {}, - }) as any, - ) - - try { - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await LSPServer.Typescript.spawn(tmp.path) - }, - }) - - expect(spawnSpy).toHaveBeenCalled() - const args = spawnSpy.mock.calls[0][1] as string[] - - expect(args).toContain("--tsserver-path") - expect(args).toContain("--tsserver-log-verbosity") - expect(args).toContain("off") - } finally { - spawnSpy.mockRestore() - } - }) - - test("spawns builtin Typescript LSP with --ignore-node-modules if no config is found", async () => { - await using tmp = await tmpdir() - - // Create dummy tsserver to satisfy Module.resolve - const tsdk = path.join(tmp.path, "node_modules", "typescript", "lib") - await fs.mkdir(tsdk, { recursive: true }) - await fs.writeFile(path.join(tsdk, "tsserver.js"), "") - - // NO tsconfig.json or jsconfig.json created here - - const spawnSpy = spyOn(launch, "spawn").mockImplementation( - () => - ({ - stdin: {}, - stdout: {}, - stderr: {}, - on: () => {}, - kill: () => {}, - }) as any, - ) - - try { - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await LSPServer.Typescript.spawn(tmp.path) - }, - }) - - expect(spawnSpy).toHaveBeenCalled() - const args = spawnSpy.mock.calls[0][1] as string[] - - expect(args).toContain("--ignore-node-modules") - } finally { - spawnSpy.mockRestore() - } - }) }) From 157c5d77f80571906ad3b5ac5527fa62b84adf23 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 09:42:06 -0400 Subject: [PATCH 051/151] refactor(tool): convert question tool internals to Effect (#21808) --- packages/opencode/src/tool/question.ts | 29 +++++++++++++------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/opencode/src/tool/question.ts b/packages/opencode/src/tool/question.ts index 23c9b35c8..f7adbadcf 100644 --- a/packages/opencode/src/tool/question.ts +++ b/packages/opencode/src/tool/question.ts @@ -20,27 +20,26 @@ export const QuestionTool = Tool.defineEffect, ctx: Tool.Context) { - const answers = await question - .ask({ + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const answers = yield* question.ask({ sessionID: ctx.sessionID, questions: params.questions, tool: ctx.callID ? { messageID: ctx.messageID, callID: ctx.callID } : undefined, }) - .pipe(Effect.runPromise) - const formatted = params.questions - .map((q, i) => `"${q.question}"="${answers[i]?.length ? answers[i].join(", ") : "Unanswered"}"`) - .join(", ") + const formatted = params.questions + .map((q, i) => `"${q.question}"="${answers[i]?.length ? answers[i].join(", ") : "Unanswered"}"`) + .join(", ") - return { - title: `Asked ${params.questions.length} question${params.questions.length > 1 ? "s" : ""}`, - output: `User has answered your questions: ${formatted}. You can now continue with the user's answers in mind.`, - metadata: { - answers, - }, - } - }, + return { + title: `Asked ${params.questions.length} question${params.questions.length > 1 ? "s" : ""}`, + output: `User has answered your questions: ${formatted}. You can now continue with the user's answers in mind.`, + metadata: { + answers, + }, + } + }).pipe(Effect.runPromise), } }), ) From 8063e0b5c67de4622c3c77867c84734260f220fe Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 10:07:19 -0400 Subject: [PATCH 052/151] refactor(tool): convert lsp tool internals to Effect (#21806) --- packages/opencode/src/tool/lsp.ts | 141 ++++++++++++------------- packages/opencode/src/tool/registry.ts | 3 +- 2 files changed, 69 insertions(+), 75 deletions(-) diff --git a/packages/opencode/src/tool/lsp.ts b/packages/opencode/src/tool/lsp.ts index 52aef0f9e..f58dc82d4 100644 --- a/packages/opencode/src/tool/lsp.ts +++ b/packages/opencode/src/tool/lsp.ts @@ -1,12 +1,13 @@ import z from "zod" +import { Effect } from "effect" import { Tool } from "./tool" import path from "path" import { LSP } from "../lsp" import DESCRIPTION from "./lsp.txt" import { Instance } from "../project/instance" import { pathToFileURL } from "url" -import { assertExternalDirectory } from "./external-directory" -import { Filesystem } from "../util/filesystem" +import { assertExternalDirectoryEffect } from "./external-directory" +import { AppFileSystem } from "../filesystem" const operations = [ "goToDefinition", @@ -20,78 +21,70 @@ const operations = [ "outgoingCalls", ] as const -export const LspTool = Tool.define("lsp", { - description: DESCRIPTION, - parameters: z.object({ - operation: z.enum(operations).describe("The LSP operation to perform"), - filePath: z.string().describe("The absolute or relative path to the file"), - line: z.number().int().min(1).describe("The line number (1-based, as shown in editors)"), - character: z.number().int().min(1).describe("The character offset (1-based, as shown in editors)"), - }), - execute: async (args, ctx) => { - const file = path.isAbsolute(args.filePath) ? args.filePath : path.join(Instance.directory, args.filePath) - await assertExternalDirectory(ctx, file) - - await ctx.ask({ - permission: "lsp", - patterns: ["*"], - always: ["*"], - metadata: {}, - }) - const uri = pathToFileURL(file).href - const position = { - file, - line: args.line - 1, - character: args.character - 1, - } - - const relPath = path.relative(Instance.worktree, file) - const title = `${args.operation} ${relPath}:${args.line}:${args.character}` - - const exists = await Filesystem.exists(file) - if (!exists) { - throw new Error(`File not found: ${file}`) - } - - const available = await LSP.hasClients(file) - if (!available) { - throw new Error("No LSP server available for this file type.") - } - - await LSP.touchFile(file, true) - - const result: unknown[] = await (async () => { - switch (args.operation) { - case "goToDefinition": - return LSP.definition(position) - case "findReferences": - return LSP.references(position) - case "hover": - return LSP.hover(position) - case "documentSymbol": - return LSP.documentSymbol(uri) - case "workspaceSymbol": - return LSP.workspaceSymbol("") - case "goToImplementation": - return LSP.implementation(position) - case "prepareCallHierarchy": - return LSP.prepareCallHierarchy(position) - case "incomingCalls": - return LSP.incomingCalls(position) - case "outgoingCalls": - return LSP.outgoingCalls(position) - } - })() - - const output = (() => { - if (result.length === 0) return `No results found for ${args.operation}` - return JSON.stringify(result, null, 2) - })() +export const LspTool = Tool.defineEffect( + "lsp", + Effect.gen(function* () { + const lsp = yield* LSP.Service + const fs = yield* AppFileSystem.Service return { - title, - metadata: { result }, - output, + description: DESCRIPTION, + parameters: z.object({ + operation: z.enum(operations).describe("The LSP operation to perform"), + filePath: z.string().describe("The absolute or relative path to the file"), + line: z.number().int().min(1).describe("The line number (1-based, as shown in editors)"), + character: z.number().int().min(1).describe("The character offset (1-based, as shown in editors)"), + }), + execute: (args: { operation: (typeof operations)[number]; filePath: string; line: number; character: number }, ctx: Tool.Context) => + Effect.gen(function* () { + const file = path.isAbsolute(args.filePath) ? args.filePath : path.join(Instance.directory, args.filePath) + yield* assertExternalDirectoryEffect(ctx, file) + yield* Effect.promise(() => + ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} }), + ) + + const uri = pathToFileURL(file).href + const position = { file, line: args.line - 1, character: args.character - 1 } + const relPath = path.relative(Instance.worktree, file) + const title = `${args.operation} ${relPath}:${args.line}:${args.character}` + + const exists = yield* fs.existsSafe(file) + if (!exists) throw new Error(`File not found: ${file}`) + + const available = yield* lsp.hasClients(file) + if (!available) throw new Error("No LSP server available for this file type.") + + yield* lsp.touchFile(file, true) + + const result: unknown[] = yield* (() => { + switch (args.operation) { + case "goToDefinition": + return lsp.definition(position) + case "findReferences": + return lsp.references(position) + case "hover": + return lsp.hover(position) + case "documentSymbol": + return lsp.documentSymbol(uri) + case "workspaceSymbol": + return lsp.workspaceSymbol("") + case "goToImplementation": + return lsp.implementation(position) + case "prepareCallHierarchy": + return lsp.prepareCallHierarchy(position) + case "incomingCalls": + return lsp.incomingCalls(position) + case "outgoingCalls": + return lsp.outgoingCalls(position) + } + })() + + return { + title, + metadata: { result }, + output: result.length === 0 ? `No results found for ${args.operation}` : JSON.stringify(result, null, 2), + } + }).pipe(Effect.runPromise), } - }, -}) + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 9c0771b8d..b653c336e 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -92,6 +92,7 @@ export namespace ToolRegistry { const read = yield* ReadTool const question = yield* QuestionTool const todo = yield* TodoWriteTool + const lsptool = yield* LspTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -164,7 +165,7 @@ export namespace ToolRegistry { skill: Tool.init(SkillTool), patch: Tool.init(ApplyPatchTool), question: Tool.init(question), - lsp: Tool.init(LspTool), + lsp: Tool.init(lsptool), plan: Tool.init(PlanExitTool), }) From 9a6b455bfe0a4ad4ab45382e4cfb1be1e797723f Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 14:08:27 +0000 Subject: [PATCH 053/151] chore: generate --- packages/opencode/src/tool/lsp.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/tool/lsp.ts b/packages/opencode/src/tool/lsp.ts index f58dc82d4..ac0b4c6fc 100644 --- a/packages/opencode/src/tool/lsp.ts +++ b/packages/opencode/src/tool/lsp.ts @@ -35,13 +35,14 @@ export const LspTool = Tool.defineEffect( line: z.number().int().min(1).describe("The line number (1-based, as shown in editors)"), character: z.number().int().min(1).describe("The character offset (1-based, as shown in editors)"), }), - execute: (args: { operation: (typeof operations)[number]; filePath: string; line: number; character: number }, ctx: Tool.Context) => + execute: ( + args: { operation: (typeof operations)[number]; filePath: string; line: number; character: number }, + ctx: Tool.Context, + ) => Effect.gen(function* () { const file = path.isAbsolute(args.filePath) ? args.filePath : path.join(Instance.directory, args.filePath) yield* assertExternalDirectoryEffect(ctx, file) - yield* Effect.promise(() => - ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} }), - ) + yield* Effect.promise(() => ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} })) const uri = pathToFileURL(file).href const position = { file, line: args.line - 1, character: args.character - 1 } From 44f38193c0ea4ffeb5bd9faa13598ffaca7c29e9 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 10:38:46 -0400 Subject: [PATCH 054/151] refactor(tool): convert plan tool internals to Effect (#21807) --- packages/opencode/src/tool/plan.ts | 175 +++++++++---------------- packages/opencode/src/tool/registry.ts | 9 +- 2 files changed, 70 insertions(+), 114 deletions(-) diff --git a/packages/opencode/src/tool/plan.ts b/packages/opencode/src/tool/plan.ts index e91bc3faa..aa9c69884 100644 --- a/packages/opencode/src/tool/plan.ts +++ b/packages/opencode/src/tool/plan.ts @@ -1,5 +1,6 @@ import z from "zod" import path from "path" +import { Effect } from "effect" import { Tool } from "./tool" import { Question } from "../question" import { Session } from "../session" @@ -9,123 +10,71 @@ import { Instance } from "../project/instance" import { type SessionID, MessageID, PartID } from "../session/schema" import EXIT_DESCRIPTION from "./plan-exit.txt" -async function getLastModel(sessionID: SessionID) { - for await (const item of MessageV2.stream(sessionID)) { +function getLastModel(sessionID: SessionID) { + for (const item of MessageV2.stream(sessionID)) { if (item.info.role === "user" && item.info.model) return item.info.model } - return Provider.defaultModel() + return undefined } -export const PlanExitTool = Tool.define("plan_exit", { - description: EXIT_DESCRIPTION, - parameters: z.object({}), - async execute(_params, ctx) { - const session = await Session.get(ctx.sessionID) - const plan = path.relative(Instance.worktree, Session.plan(session)) - const answers = await Question.ask({ - sessionID: ctx.sessionID, - questions: [ - { - question: `Plan at ${plan} is complete. Would you like to switch to the build agent and start implementing?`, - header: "Build Agent", - custom: false, - options: [ - { label: "Yes", description: "Switch to build agent and start implementing the plan" }, - { label: "No", description: "Stay with plan agent to continue refining the plan" }, - ], - }, - ], - tool: ctx.callID ? { messageID: ctx.messageID, callID: ctx.callID } : undefined, - }) - - const answer = answers[0]?.[0] - if (answer === "No") throw new Question.RejectedError() - - const model = await getLastModel(ctx.sessionID) - - const userMsg: MessageV2.User = { - id: MessageID.ascending(), - sessionID: ctx.sessionID, - role: "user", - time: { - created: Date.now(), - }, - agent: "build", - model, - } - await Session.updateMessage(userMsg) - await Session.updatePart({ - id: PartID.ascending(), - messageID: userMsg.id, - sessionID: ctx.sessionID, - type: "text", - text: `The plan at ${plan} has been approved, you can now edit files. Execute the plan`, - synthetic: true, - } satisfies MessageV2.TextPart) +export const PlanExitTool = Tool.defineEffect( + "plan_exit", + Effect.gen(function* () { + const session = yield* Session.Service + const question = yield* Question.Service + const provider = yield* Provider.Service return { - title: "Switching to build agent", - output: "User approved switching to build agent. Wait for further instructions.", - metadata: {}, + description: EXIT_DESCRIPTION, + parameters: z.object({}), + execute: (_params: {}, ctx: Tool.Context) => + Effect.gen(function* () { + const info = yield* session.get(ctx.sessionID) + const plan = path.relative(Instance.worktree, Session.plan(info)) + const answers = yield* question.ask({ + sessionID: ctx.sessionID, + questions: [ + { + question: `Plan at ${plan} is complete. Would you like to switch to the build agent and start implementing?`, + header: "Build Agent", + custom: false, + options: [ + { label: "Yes", description: "Switch to build agent and start implementing the plan" }, + { label: "No", description: "Stay with plan agent to continue refining the plan" }, + ], + }, + ], + tool: ctx.callID ? { messageID: ctx.messageID, callID: ctx.callID } : undefined, + }) + + if (answers[0]?.[0] === "No") yield* new Question.RejectedError() + + const model = getLastModel(ctx.sessionID) ?? (yield* provider.defaultModel()) + + const msg: MessageV2.User = { + id: MessageID.ascending(), + sessionID: ctx.sessionID, + role: "user", + time: { created: Date.now() }, + agent: "build", + model, + } + yield* session.updateMessage(msg) + yield* session.updatePart({ + id: PartID.ascending(), + messageID: msg.id, + sessionID: ctx.sessionID, + type: "text", + text: `The plan at ${plan} has been approved, you can now edit files. Execute the plan`, + synthetic: true, + } satisfies MessageV2.TextPart) + + return { + title: "Switching to build agent", + output: "User approved switching to build agent. Wait for further instructions.", + metadata: {}, + } + }).pipe(Effect.runPromise), } - }, -}) - -/* -export const PlanEnterTool = Tool.define("plan_enter", { - description: ENTER_DESCRIPTION, - parameters: z.object({}), - async execute(_params, ctx) { - const session = await Session.get(ctx.sessionID) - const plan = path.relative(Instance.worktree, Session.plan(session)) - - const answers = await Question.ask({ - sessionID: ctx.sessionID, - questions: [ - { - question: `Would you like to switch to the plan agent and create a plan saved to ${plan}?`, - header: "Plan Mode", - custom: false, - options: [ - { label: "Yes", description: "Switch to plan agent for research and planning" }, - { label: "No", description: "Stay with build agent to continue making changes" }, - ], - }, - ], - tool: ctx.callID ? { messageID: ctx.messageID, callID: ctx.callID } : undefined, - }) - - const answer = answers[0]?.[0] - - if (answer === "No") throw new Question.RejectedError() - - const model = await getLastModel(ctx.sessionID) - - const userMsg: MessageV2.User = { - id: MessageID.ascending(), - sessionID: ctx.sessionID, - role: "user", - time: { - created: Date.now(), - }, - agent: "plan", - model, - } - await Session.updateMessage(userMsg) - await Session.updatePart({ - id: PartID.ascending(), - messageID: userMsg.id, - sessionID: ctx.sessionID, - type: "text", - text: "User has requested to enter plan mode. Switch to plan mode and begin planning.", - synthetic: true, - } satisfies MessageV2.TextPart) - - return { - title: "Switching to plan agent", - output: `User confirmed to switch to plan mode. A new message has been created to switch you to plan mode. The plan file will be at ${plan}. Begin planning.`, - metadata: {}, - } - }, -}) -*/ + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index b653c336e..716a8ca4e 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -1,4 +1,5 @@ import { PlanExitTool } from "./plan" +import { Session } from "../session" import { QuestionTool } from "./question" import { BashTool } from "./bash" import { EditTool } from "./edit" @@ -16,6 +17,7 @@ import { Config } from "../config/config" import { type ToolContext as PluginToolContext, type ToolDefinition } from "@opencode-ai/plugin" import z from "zod" import { Plugin } from "../plugin" +import { Provider } from "../provider/provider" import { ProviderID, type ModelID } from "../provider/schema" import { WebSearchTool } from "./websearch" import { CodeSearchTool } from "./codesearch" @@ -76,6 +78,8 @@ export namespace ToolRegistry { | Todo.Service | Agent.Service | Skill.Service + | Session.Service + | Provider.Service | LSP.Service | FileTime.Service | Instruction.Service @@ -93,6 +97,7 @@ export namespace ToolRegistry { const question = yield* QuestionTool const todo = yield* TodoWriteTool const lsptool = yield* LspTool + const plan = yield* PlanExitTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -166,7 +171,7 @@ export namespace ToolRegistry { patch: Tool.init(ApplyPatchTool), question: Tool.init(question), lsp: Tool.init(lsptool), - plan: Tool.init(PlanExitTool), + plan: Tool.init(plan), }) return { @@ -298,6 +303,8 @@ export namespace ToolRegistry { Layer.provide(Todo.defaultLayer), Layer.provide(Skill.defaultLayer), Layer.provide(Agent.defaultLayer), + Layer.provide(Session.defaultLayer), + Layer.provide(Provider.defaultLayer), Layer.provide(LSP.defaultLayer), Layer.provide(FileTime.defaultLayer), Layer.provide(Instruction.defaultLayer), From 42206da1f8f42add18b6a107f5df9b96a3bd59f9 Mon Sep 17 00:00:00 2001 From: James Long Date: Fri, 10 Apr 2026 10:47:27 -0400 Subject: [PATCH 055/151] refactor(tui): switch to global events and start passing workspace param (#21719) --- packages/opencode/src/bus/global.ts | 2 + packages/opencode/src/bus/index.ts | 7 +- packages/opencode/src/cli/cmd/tui/app.tsx | 65 ++-- .../tui/component/dialog-workspace-list.tsx | 21 +- .../cmd/tui/component/prompt/autocomplete.tsx | 2 +- .../cli/cmd/tui/component/prompt/index.tsx | 4 +- .../src/cli/cmd/tui/context/directory.ts | 4 +- .../opencode/src/cli/cmd/tui/context/event.ts | 41 +++ .../src/cli/cmd/tui/context/project.tsx | 65 ++++ .../src/cli/cmd/tui/context/route.tsx | 1 - .../opencode/src/cli/cmd/tui/context/sdk.tsx | 17 +- .../opencode/src/cli/cmd/tui/context/sync.tsx | 90 ++++-- .../opencode/src/cli/cmd/tui/plugin/api.tsx | 6 +- .../opencode/src/cli/cmd/tui/routes/home.tsx | 13 +- .../src/cli/cmd/tui/routes/session/index.tsx | 23 +- packages/opencode/src/cli/cmd/tui/thread.ts | 16 +- packages/opencode/src/cli/cmd/tui/worker.ts | 96 +----- .../src/control-plane/workspace-context.ts | 22 ++ .../opencode/src/control-plane/workspace.ts | 12 +- packages/opencode/src/effect/instance-ref.ts | 4 + .../opencode/src/effect/instance-state.ts | 7 +- packages/opencode/src/effect/run-service.ts | 6 +- packages/opencode/src/project/instance.ts | 44 ++- packages/opencode/src/project/project.ts | 2 + packages/opencode/src/server/router.ts | 41 ++- packages/opencode/src/server/routes/global.ts | 2 + packages/opencode/src/worktree/index.ts | 7 + .../test/cli/tui/sync-provider.test.tsx | 293 ++++++++++++++++++ .../opencode/test/cli/tui/use-event.test.tsx | 175 +++++++++++ packages/sdk/js/src/v2/gen/types.gen.ts | 2 + packages/sdk/openapi.json | 6 + 31 files changed, 850 insertions(+), 246 deletions(-) create mode 100644 packages/opencode/src/cli/cmd/tui/context/event.ts create mode 100644 packages/opencode/src/cli/cmd/tui/context/project.tsx create mode 100644 packages/opencode/src/control-plane/workspace-context.ts create mode 100644 packages/opencode/test/cli/tui/sync-provider.test.tsx create mode 100644 packages/opencode/test/cli/tui/use-event.test.tsx diff --git a/packages/opencode/src/bus/global.ts b/packages/opencode/src/bus/global.ts index 43386dd6b..e751b59fa 100644 --- a/packages/opencode/src/bus/global.ts +++ b/packages/opencode/src/bus/global.ts @@ -4,6 +4,8 @@ export const GlobalBus = new EventEmitter<{ event: [ { directory?: string + project?: string + workspace?: string payload: any }, ] diff --git a/packages/opencode/src/bus/index.ts b/packages/opencode/src/bus/index.ts index fe26a6672..6db4eb04f 100644 --- a/packages/opencode/src/bus/index.ts +++ b/packages/opencode/src/bus/index.ts @@ -1,9 +1,9 @@ import z from "zod" import { Effect, Exit, Layer, PubSub, Scope, ServiceMap, Stream } from "effect" import { Log } from "../util/log" -import { Instance } from "../project/instance" import { BusEvent } from "./bus-event" import { GlobalBus } from "./global" +import { WorkspaceContext } from "@/control-plane/workspace-context" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -91,8 +91,13 @@ export namespace Bus { yield* PubSub.publish(s.wildcard, payload) const dir = yield* InstanceState.directory + const context = yield* InstanceState.context + const workspace = yield* InstanceState.workspaceID + GlobalBus.emit("event", { directory: dir, + project: context.project.id, + workspace, payload, }) }) diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 4161c025c..2f8d1f7bb 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -14,7 +14,6 @@ import { batch, Show, on, - onCleanup, } from "solid-js" import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32" import { Flag } from "@/flag/flag" @@ -23,6 +22,8 @@ import { DialogProvider, useDialog } from "@tui/ui/dialog" import { DialogProvider as DialogProviderList } from "@tui/component/dialog-provider" import { ErrorComponent } from "@tui/component/error-component" import { PluginRouteMissing } from "@tui/component/plugin-route-missing" +import { ProjectProvider } from "@tui/context/project" +import { useEvent } from "@tui/context/event" import { SDKProvider, useSDK } from "@tui/context/sdk" import { StartupLoading } from "@tui/component/startup-loading" import { SyncProvider, useSync } from "@tui/context/sync" @@ -54,7 +55,6 @@ import { KVProvider, useKV } from "./context/kv" import { Provider } from "@/provider/provider" import { ArgsProvider, useArgs, type Args } from "./context/args" import open from "open" -import { writeHeapSnapshot } from "v8" import { PromptRefProvider, usePromptRef } from "./context/prompt" import { TuiConfigProvider, useTuiConfig } from "./context/tui-config" import { TuiConfig } from "@/config/tui" @@ -216,27 +216,29 @@ export function tui(input: { headers={input.headers} events={input.events} > - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -260,6 +262,7 @@ function App(props: { onSnapshot?: () => Promise }) { const kv = useKV() const command = useCommandDialog() const keybind = useKeybind() + const event = useEvent() const sdk = useSDK() const toast = useToast() const themeState = useTheme() @@ -283,6 +286,7 @@ function App(props: { onSnapshot?: () => Promise }) { route, routes, bump: () => setRouteRev((x) => x + 1), + event, sdk, sync, theme: themeState, @@ -491,12 +495,9 @@ function App(props: { onSnapshot?: () => Promise }) { const current = promptRef.current // Don't require focus - if there's any text, preserve it const currentPrompt = current?.current?.input ? current.current : undefined - const workspaceID = - route.data.type === "session" ? sync.session.get(route.data.sessionID)?.workspaceID : undefined route.navigate({ type: "home", initialPrompt: currentPrompt, - workspaceID, }) dialog.clear() }, @@ -806,11 +807,11 @@ function App(props: { onSnapshot?: () => Promise }) { }, ]) - sdk.event.on(TuiEvent.CommandExecute.type, (evt) => { + event.on(TuiEvent.CommandExecute.type, (evt) => { command.trigger(evt.properties.command) }) - sdk.event.on(TuiEvent.ToastShow.type, (evt) => { + event.on(TuiEvent.ToastShow.type, (evt) => { toast.show({ title: evt.properties.title, message: evt.properties.message, @@ -819,14 +820,14 @@ function App(props: { onSnapshot?: () => Promise }) { }) }) - sdk.event.on(TuiEvent.SessionSelect.type, (evt) => { + event.on(TuiEvent.SessionSelect.type, (evt) => { route.navigate({ type: "session", sessionID: evt.properties.sessionID, }) }) - sdk.event.on("session.deleted", (evt) => { + event.on("session.deleted", (evt) => { if (route.data.type === "session" && route.data.sessionID === evt.properties.info.id) { route.navigate({ type: "home" }) toast.show({ @@ -836,7 +837,7 @@ function App(props: { onSnapshot?: () => Promise }) { } }) - sdk.event.on("session.error", (evt) => { + event.on("session.error", (evt) => { const error = evt.properties.error if (error && typeof error === "object" && error.name === "MessageAbortedError") return const message = errorMessage(error) @@ -848,7 +849,7 @@ function App(props: { onSnapshot?: () => Promise }) { }) }) - sdk.event.on("installation.update-available", async (evt) => { + event.on("installation.update-available", async (evt) => { const version = evt.properties.version const skipped = kv.get("skipped_version") diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx index 84127b576..037cebb72 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx @@ -1,5 +1,6 @@ import { useDialog } from "@tui/ui/dialog" import { DialogSelect } from "@tui/ui/dialog-select" +import { useProject } from "@tui/context/project" import { useRoute } from "@tui/context/route" import { useSync } from "@tui/context/sync" import { createEffect, createMemo, createSignal, onMount } from "solid-js" @@ -14,7 +15,7 @@ function scoped(sdk: ReturnType, sync: ReturnType return createOpencodeClient({ baseUrl: sdk.url, fetch: sdk.fetch, - directory: sync.data.path.directory || sdk.directory, + directory: sync.path.directory || sdk.directory, experimental_workspaceID: workspaceID, }) } @@ -149,6 +150,7 @@ function DialogWorkspaceCreate(props: { onSelect: (workspaceID: string) => Promi export function DialogWorkspaceList() { const dialog = useDialog() + const project = useProject() const route = useRoute() const sync = useSync() const sdk = useSDK() @@ -168,8 +170,9 @@ export function DialogWorkspaceList() { forceCreate, }) - async function selectWorkspace(workspaceID: string) { - if (workspaceID === "__local__") { + async function selectWorkspace(workspaceID: string | null) { + if (workspaceID == null) { + project.workspace.set(undefined) if (localCount() > 0) { dialog.replace(() => ) return @@ -199,12 +202,7 @@ export function DialogWorkspaceList() { await open(workspaceID) } - const currentWorkspaceID = createMemo(() => { - if (route.data.type === "session") { - return sync.session.get(route.data.sessionID)?.workspaceID ?? "__local__" - } - return "__local__" - }) + const currentWorkspaceID = createMemo(() => project.workspace.current()) const localCount = createMemo( () => sync.data.session.filter((session) => !session.workspaceID && !session.parentID).length, @@ -234,7 +232,7 @@ export function DialogWorkspaceList() { const options = createMemo(() => [ { title: "Local", - value: "__local__", + value: null, category: "Workspace", description: "Use the local machine", footer: `${localCount()} session${localCount() === 1 ? "" : "s"}`, @@ -292,7 +290,7 @@ export function DialogWorkspaceList() { keybind: keybind.all.session_delete?.[0], title: "delete", onTrigger: async (option) => { - if (option.value === "__create__" || option.value === "__local__") return + if (option.value === "__create__" || option.value === null) return if (toDelete() !== option.value) { setToDelete(option.value) return @@ -307,6 +305,7 @@ export function DialogWorkspaceList() { return } if (currentWorkspaceID() === option.value) { + project.workspace.set(undefined) route.navigate({ type: "home", }) diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx index 1c5ede4d7..2118fe98e 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx @@ -250,7 +250,7 @@ export function Autocomplete(props: { const width = props.anchor().width - 4 options.push( ...sortedFiles.map((item): AutocompleteOption => { - const baseDir = (sync.data.path.directory || process.cwd()).replace(/\/+$/, "") + const baseDir = (sync.path.directory || process.cwd()).replace(/\/+$/, "") const fullPath = `${baseDir}/${item}` const urlObj = pathToFileURL(fullPath) let filename = item diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index 747c61fd0..ba6df1d6b 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -10,6 +10,7 @@ import { EmptyBorder, SplitBorder } from "@tui/component/border" import { useSDK } from "@tui/context/sdk" import { useRoute } from "@tui/context/route" import { useSync } from "@tui/context/sync" +import { useEvent } from "@tui/context/event" import { MessageID, PartID } from "@/session/schema" import { createStore, produce } from "solid-js/store" import { useKeybind } from "@tui/context/keybind" @@ -115,8 +116,9 @@ export function Prompt(props: PromptProps) { const agentStyleId = syntax().getStyleId("extmark.agent")! const pasteStyleId = syntax().getStyleId("extmark.paste")! let promptPartTypeId = 0 + const event = useEvent() - sdk.event.on(TuiEvent.PromptAppend.type, (evt) => { + event.on(TuiEvent.PromptAppend.type, (evt) => { if (!input || input.isDestroyed) return input.insertText(evt.properties.text) setTimeout(() => { diff --git a/packages/opencode/src/cli/cmd/tui/context/directory.ts b/packages/opencode/src/cli/cmd/tui/context/directory.ts index 17e5c180a..81f217398 100644 --- a/packages/opencode/src/cli/cmd/tui/context/directory.ts +++ b/packages/opencode/src/cli/cmd/tui/context/directory.ts @@ -1,11 +1,13 @@ import { createMemo } from "solid-js" +import { useProject } from "./project" import { useSync } from "./sync" import { Global } from "@/global" export function useDirectory() { + const project = useProject() const sync = useSync() return createMemo(() => { - const directory = sync.data.path.directory || process.cwd() + const directory = project.instance.path().directory || process.cwd() const result = directory.replace(Global.Path.home, "~") if (sync.data.vcs?.branch) return result + ":" + sync.data.vcs.branch return result diff --git a/packages/opencode/src/cli/cmd/tui/context/event.ts b/packages/opencode/src/cli/cmd/tui/context/event.ts new file mode 100644 index 000000000..da073f6e9 --- /dev/null +++ b/packages/opencode/src/cli/cmd/tui/context/event.ts @@ -0,0 +1,41 @@ +import type { Event } from "@opencode-ai/sdk/v2" +import { useProject } from "./project" +import { useSDK } from "./sdk" + +export function useEvent() { + const project = useProject() + const sdk = useSDK() + + function subscribe(handler: (event: Event) => void) { + return sdk.event.on("event", (event) => { + // Special hack for truly global events + if (event.directory === "global") { + handler(event.payload) + } + + if (project.workspace.current()) { + if (event.workspace === project.workspace.current()) { + handler(event.payload) + } + + return + } + + if (event.directory === project.instance.directory()) { + handler(event.payload) + } + }) + } + + function on(type: T, handler: (event: Extract) => void) { + return subscribe((event) => { + if (event.type !== type) return + handler(event as Extract) + }) + } + + return { + subscribe, + on, + } +} diff --git a/packages/opencode/src/cli/cmd/tui/context/project.tsx b/packages/opencode/src/cli/cmd/tui/context/project.tsx new file mode 100644 index 000000000..522e72401 --- /dev/null +++ b/packages/opencode/src/cli/cmd/tui/context/project.tsx @@ -0,0 +1,65 @@ +import { batch } from "solid-js" +import type { Path } from "@opencode-ai/sdk" +import { createStore, reconcile } from "solid-js/store" +import { createSimpleContext } from "./helper" +import { useSDK } from "./sdk" + +export const { use: useProject, provider: ProjectProvider } = createSimpleContext({ + name: "Project", + init: () => { + const sdk = useSDK() + const [store, setStore] = createStore({ + project: { + id: undefined as string | undefined, + }, + instance: { + path: { + state: "", + config: "", + worktree: "", + directory: sdk.directory ?? "", + } satisfies Path, + }, + workspace: undefined as string | undefined, + }) + + async function sync() { + const workspace = store.workspace + const [path, project] = await Promise.all([ + sdk.client.path.get({ workspace }), + sdk.client.project.current({ workspace }), + ]) + + batch(() => { + setStore("instance", "path", reconcile(path.data!)) + setStore("project", "id", project.data?.id) + }) + } + + return { + data: store, + project() { + return store.project.id + }, + instance: { + path() { + return store.instance.path + }, + directory() { + return store.instance.path.directory + }, + }, + workspace: { + current() { + return store.workspace + }, + set(next?: string | null) { + const workspace = next ?? undefined + if (store.workspace === workspace) return + setStore("workspace", workspace) + }, + }, + sync, + } + }, +}) diff --git a/packages/opencode/src/cli/cmd/tui/context/route.tsx b/packages/opencode/src/cli/cmd/tui/context/route.tsx index 939c2d5dc..e9f463a13 100644 --- a/packages/opencode/src/cli/cmd/tui/context/route.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/route.tsx @@ -5,7 +5,6 @@ import type { PromptInfo } from "../component/prompt/history" export type HomeRoute = { type: "home" initialPrompt?: PromptInfo - workspaceID?: string } export type SessionRoute = { diff --git a/packages/opencode/src/cli/cmd/tui/context/sdk.tsx b/packages/opencode/src/cli/cmd/tui/context/sdk.tsx index 348c3ca1d..ad35aa45c 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sdk.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sdk.tsx @@ -1,10 +1,11 @@ -import { createOpencodeClient, type Event } from "@opencode-ai/sdk/v2" +import { createOpencodeClient } from "@opencode-ai/sdk/v2" +import type { GlobalEvent, Event } from "@opencode-ai/sdk/v2" import { createSimpleContext } from "./helper" import { createGlobalEmitter } from "@solid-primitives/event-bus" import { batch, onCleanup, onMount } from "solid-js" export type EventSource = { - subscribe: (directory: string | undefined, handler: (event: Event) => void) => Promise<() => void> + subscribe: (handler: (event: GlobalEvent) => void) => Promise<() => void> } export const { use: useSDK, provider: SDKProvider } = createSimpleContext({ @@ -32,10 +33,10 @@ export const { use: useSDK, provider: SDKProvider } = createSimpleContext({ let sdk = createSDK() const emitter = createGlobalEmitter<{ - [key in Event["type"]]: Extract + event: GlobalEvent }>() - let queue: Event[] = [] + let queue: GlobalEvent[] = [] let timer: Timer | undefined let last = 0 @@ -48,12 +49,12 @@ export const { use: useSDK, provider: SDKProvider } = createSimpleContext({ // Batch all event emissions so all store updates result in a single render batch(() => { for (const event of events) { - emitter.emit(event.type, event) + emitter.emit("event", event) } }) } - const handleEvent = (event: Event) => { + const handleEvent = (event: GlobalEvent) => { queue.push(event) const elapsed = Date.now() - last @@ -74,7 +75,7 @@ export const { use: useSDK, provider: SDKProvider } = createSimpleContext({ ;(async () => { while (true) { if (abort.signal.aborted || ctrl.signal.aborted) break - const events = await sdk.event.subscribe({}, { signal: ctrl.signal }) + const events = await sdk.global.event({ signal: ctrl.signal }) for await (const event of events.stream) { if (ctrl.signal.aborted) break @@ -89,7 +90,7 @@ export const { use: useSDK, provider: SDKProvider } = createSimpleContext({ onMount(async () => { if (props.events) { - const unsub = await props.events.subscribe(props.directory, handleEvent) + const unsub = await props.events.subscribe(handleEvent) onCleanup(unsub) } else { startSSE() diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx index 11336d500..bbdc74328 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx @@ -17,18 +17,19 @@ import type { ProviderListResponse, ProviderAuthMethod, VcsInfo, + Workspace, } from "@opencode-ai/sdk/v2" import { createStore, produce, reconcile } from "solid-js/store" +import { useProject } from "@tui/context/project" +import { useEvent } from "@tui/context/event" import { useSDK } from "@tui/context/sdk" import { Binary } from "@opencode-ai/util/binary" import { createSimpleContext } from "./helper" import type { Snapshot } from "@/snapshot" import { useExit } from "./exit" import { useArgs } from "./args" -import { batch, onMount } from "solid-js" +import { batch, createEffect, on } from "solid-js" import { Log } from "@/util/log" -import type { Path } from "@opencode-ai/sdk" -import type { Workspace } from "@opencode-ai/sdk/v2" import { ConsoleState, emptyConsoleState, type ConsoleState as ConsoleStateType } from "@/config/console-state" export const { use: useSync, provider: SyncProvider } = createSimpleContext({ @@ -74,9 +75,8 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ [key: string]: McpResource } formatter: FormatterStatus[] - vcs: VcsInfo | undefined - path: Path workspaceList: Workspace[] + vcs: VcsInfo | undefined }>({ provider_next: { all: [], @@ -103,21 +103,25 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ mcp: {}, mcp_resource: {}, formatter: [], - vcs: undefined, - path: { state: "", config: "", worktree: "", directory: "" }, workspaceList: [], + vcs: undefined, }) + const event = useEvent() + const project = useProject() const sdk = useSDK() async function syncWorkspaces() { + const workspace = project.workspace.current() const result = await sdk.client.experimental.workspace.list().catch(() => undefined) if (!result?.data) return setStore("workspaceList", reconcile(result.data)) + if (!result.data.some((item) => item.id === workspace)) { + project.workspace.set(undefined) + } } - sdk.event.listen((e) => { - const event = e.details + event.subscribe((event) => { switch (event.type) { case "server.instance.disposed": bootstrap() @@ -344,7 +348,8 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ } case "lsp.updated": { - sdk.client.lsp.status().then((x) => setStore("lsp", x.data!)) + const workspace = project.workspace.current() + sdk.client.lsp.status({ workspace }).then((x) => setStore("lsp", x.data!)) break } @@ -360,25 +365,28 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ async function bootstrap() { console.log("bootstrapping") + const workspace = project.workspace.current() const start = Date.now() - 30 * 24 * 60 * 60 * 1000 const sessionListPromise = sdk.client.session - .list({ start: start }) + .list({ start: start, workspace }) .then((x) => (x.data ?? []).toSorted((a, b) => a.id.localeCompare(b.id))) // blocking - include session.list when continuing a session - const providersPromise = sdk.client.config.providers({}, { throwOnError: true }) - const providerListPromise = sdk.client.provider.list({}, { throwOnError: true }) + const providersPromise = sdk.client.config.providers({ workspace }, { throwOnError: true }) + const providerListPromise = sdk.client.provider.list({ workspace }, { throwOnError: true }) const consoleStatePromise = sdk.client.experimental.console - .get({}, { throwOnError: true }) + .get({ workspace }, { throwOnError: true }) .then((x) => ConsoleState.parse(x.data)) .catch(() => emptyConsoleState) - const agentsPromise = sdk.client.app.agents({}, { throwOnError: true }) - const configPromise = sdk.client.config.get({}, { throwOnError: true }) + const agentsPromise = sdk.client.app.agents({ workspace }, { throwOnError: true }) + const configPromise = sdk.client.config.get({ workspace }, { throwOnError: true }) + const projectPromise = project.sync() const blockingRequests: Promise[] = [ providersPromise, providerListPromise, agentsPromise, configPromise, + projectPromise, ...(args.continue ? [sessionListPromise] : []), ] @@ -423,17 +431,18 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ Promise.all([ ...(args.continue ? [] : [sessionListPromise.then((sessions) => setStore("session", reconcile(sessions)))]), consoleStatePromise.then((consoleState) => setStore("console_state", reconcile(consoleState))), - sdk.client.command.list().then((x) => setStore("command", reconcile(x.data ?? []))), - sdk.client.lsp.status().then((x) => setStore("lsp", reconcile(x.data!))), - sdk.client.mcp.status().then((x) => setStore("mcp", reconcile(x.data!))), - sdk.client.experimental.resource.list().then((x) => setStore("mcp_resource", reconcile(x.data ?? {}))), - sdk.client.formatter.status().then((x) => setStore("formatter", reconcile(x.data!))), - sdk.client.session.status().then((x) => { + sdk.client.command.list({ workspace }).then((x) => setStore("command", reconcile(x.data ?? []))), + sdk.client.lsp.status({ workspace }).then((x) => setStore("lsp", reconcile(x.data!))), + sdk.client.mcp.status({ workspace }).then((x) => setStore("mcp", reconcile(x.data!))), + sdk.client.experimental.resource + .list({ workspace }) + .then((x) => setStore("mcp_resource", reconcile(x.data ?? {}))), + sdk.client.formatter.status({ workspace }).then((x) => setStore("formatter", reconcile(x.data!))), + sdk.client.session.status({ workspace }).then((x) => { setStore("session_status", reconcile(x.data!)) }), - sdk.client.provider.auth().then((x) => setStore("provider_auth", reconcile(x.data ?? {}))), - sdk.client.vcs.get().then((x) => setStore("vcs", reconcile(x.data))), - sdk.client.path.get().then((x) => setStore("path", reconcile(x.data!))), + sdk.client.provider.auth({ workspace }).then((x) => setStore("provider_auth", reconcile(x.data ?? {}))), + sdk.client.vcs.get({ workspace }).then((x) => setStore("vcs", reconcile(x.data))), syncWorkspaces(), ]).then(() => { setStore("status", "complete") @@ -449,11 +458,17 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }) } - onMount(() => { - bootstrap() - }) - const fullSyncedSessions = new Set() + createEffect( + on( + () => project.workspace.current(), + () => { + fullSyncedSessions.clear() + void bootstrap() + }, + ), + ) + const result = { data: store, set: setStore, @@ -463,6 +478,9 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ get ready() { return store.status !== "loading" }, + get path() { + return project.instance.path() + }, session: { get(sessionID: string) { const match = Binary.search(store.session, sessionID, (s) => s.id) @@ -481,11 +499,12 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }, async sync(sessionID: string) { if (fullSyncedSessions.has(sessionID)) return + const workspace = project.workspace.current() const [session, messages, todo, diff] = await Promise.all([ - sdk.client.session.get({ sessionID }, { throwOnError: true }), - sdk.client.session.messages({ sessionID, limit: 100 }), - sdk.client.session.todo({ sessionID }), - sdk.client.session.diff({ sessionID }), + sdk.client.session.get({ sessionID, workspace }, { throwOnError: true }), + sdk.client.session.messages({ sessionID, limit: 100, workspace }), + sdk.client.session.todo({ sessionID, workspace }), + sdk.client.session.diff({ sessionID, workspace }), ]) setStore( produce((draft) => { @@ -504,8 +523,11 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }, }, workspace: { + list() { + return store.workspaceList + }, get(workspaceID: string) { - return store.workspaceList.find((workspace) => workspace.id === workspaceID) + return store.workspaceList.find((item) => item.id === workspaceID) }, sync: syncWorkspaces, }, diff --git a/packages/opencode/src/cli/cmd/tui/plugin/api.tsx b/packages/opencode/src/cli/cmd/tui/plugin/api.tsx index 3609f6cc1..e43a9cc37 100644 --- a/packages/opencode/src/cli/cmd/tui/plugin/api.tsx +++ b/packages/opencode/src/cli/cmd/tui/plugin/api.tsx @@ -1,6 +1,7 @@ import type { ParsedKey } from "@opentui/core" import type { TuiDialogSelectOption, TuiPluginApi, TuiRouteDefinition, TuiSlotProps } from "@opencode-ai/plugin/tui" import type { useCommandDialog } from "@tui/component/dialog-command" +import type { useEvent } from "@tui/context/event" import type { useKeybind } from "@tui/context/keybind" import type { useRoute } from "@tui/context/route" import type { useSDK } from "@tui/context/sdk" @@ -36,6 +37,7 @@ type Input = { route: ReturnType routes: RouteMap bump: () => void + event: ReturnType sdk: ReturnType sync: ReturnType theme: ReturnType @@ -136,7 +138,7 @@ function stateApi(sync: ReturnType): TuiPluginApi["state"] { return sync.data.provider }, get path() { - return sync.data.path + return sync.path }, get vcs() { if (!sync.data.vcs) return @@ -342,7 +344,7 @@ export function createTuiApi(input: Input): TuiPluginApi { get client() { return input.sdk.client }, - event: input.sdk.event, + event: input.event, renderer: input.renderer, slots: { register() { diff --git a/packages/opencode/src/cli/cmd/tui/routes/home.tsx b/packages/opencode/src/cli/cmd/tui/routes/home.tsx index 79b5c4d7a..1cce7fb39 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/home.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/home.tsx @@ -1,6 +1,7 @@ import { Prompt, type PromptRef } from "@tui/component/prompt" import { createEffect, createSignal } from "solid-js" import { Logo } from "../component/logo" +import { useProject } from "../context/project" import { useSync } from "../context/sync" import { Toast } from "../ui/toast" import { useArgs } from "../context/args" @@ -18,6 +19,7 @@ const placeholder = { export function Home() { const sync = useSync() + const project = useProject() const route = useRouteData("home") const promptRef = usePromptRef() const [ref, setRef] = createSignal() @@ -63,11 +65,16 @@ export function Home() { - + } + workspaceID={project.workspace.current()} + right={} placeholders={placeholder} /> diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 32a9d1336..c6bc231fc 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -15,7 +15,9 @@ import { import { Dynamic } from "solid-js/web" import path from "path" import { useRoute, useRouteData } from "@tui/context/route" +import { useProject } from "@tui/context/project" import { useSync } from "@tui/context/sync" +import { useEvent } from "@tui/context/event" import { SplitBorder } from "@tui/component/border" import { Spinner } from "@tui/component/spinner" import { selectedForeground, useTheme } from "@tui/context/theme" @@ -116,6 +118,8 @@ export function Session() { const route = useRouteData("session") const { navigate } = useRoute() const sync = useSync() + const event = useEvent() + const project = useProject() const tuiConfig = useTuiConfig() const kv = useKV() const { theme } = useTheme() @@ -172,10 +176,16 @@ export function Session() { const providers = createMemo(() => Model.index(sync.data.provider)) const scrollAcceleration = createMemo(() => getScrollAcceleration(tuiConfig)) + const toast = useToast() + const sdk = useSDK() createEffect(async () => { - await sync.session - .sync(route.sessionID) + await sdk.client.session + .get({ sessionID: route.sessionID }, { throwOnError: true }) + .then((x) => { + project.workspace.set(x.data?.workspaceID) + }) + .then(() => sync.session.sync(route.sessionID)) .then(() => { if (scroll) scroll.scrollBy(100_000) }) @@ -189,13 +199,10 @@ export function Session() { }) }) - const toast = useToast() - const sdk = useSDK() - // Handle initial prompt from fork let seeded = false let lastSwitch: string | undefined = undefined - sdk.event.on("message.part.updated", (evt) => { + event.on("message.part.updated", (evt) => { const part = evt.properties.part if (part.type !== "tool") return if (part.sessionID !== route.sessionID) return @@ -224,7 +231,7 @@ export function Session() { const dialog = useDialog() const renderer = useRenderer() - sdk.event.on("session.status", (evt) => { + event.on("session.status", (evt) => { if (evt.properties.sessionID !== route.sessionID) return if (evt.properties.status.type !== "retry") return if (evt.properties.status.message !== SessionRetry.GO_UPSELL_MESSAGE) return @@ -1791,7 +1798,7 @@ function Bash(props: ToolProps) { const workdir = props.input.workdir if (!workdir || workdir === ".") return undefined - const base = sync.data.path.directory + const base = sync.path.directory if (!base) return undefined const absolute = path.resolve(base, workdir) diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index df5c41677..0534b147a 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -10,7 +10,7 @@ import { errorMessage } from "@/util/error" import { withTimeout } from "@/util/timeout" import { withNetworkOptions, resolveNetworkOptions } from "@/cli/network" import { Filesystem } from "@/util/filesystem" -import type { Event } from "@opencode-ai/sdk/v2" +import type { GlobalEvent } from "@opencode-ai/sdk/v2" import type { EventSource } from "./context/sdk" import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32" import { TuiConfig } from "@/config/tui" @@ -43,18 +43,10 @@ function createWorkerFetch(client: RpcClient): typeof fetch { function createEventSource(client: RpcClient): EventSource { return { - subscribe: async (directory, handler) => { - const id = await client.call("subscribe", { directory }) - const unsub = client.on<{ id: string; event: Event }>("event", (e) => { - if (e.id === id) { - handler(e.event) - } + subscribe: async (handler) => { + return client.on("global.event", (e) => { + handler(e) }) - - return () => { - unsub() - client.call("unsubscribe", { id }) - } }, } } diff --git a/packages/opencode/src/cli/cmd/tui/worker.ts b/packages/opencode/src/cli/cmd/tui/worker.ts index 15e02b863..a71b95ce4 100644 --- a/packages/opencode/src/cli/cmd/tui/worker.ts +++ b/packages/opencode/src/cli/cmd/tui/worker.ts @@ -6,13 +6,10 @@ import { InstanceBootstrap } from "@/project/bootstrap" import { Rpc } from "@/util/rpc" import { upgrade } from "@/cli/upgrade" import { Config } from "@/config/config" -import { Bus } from "@/bus" import { GlobalBus } from "@/bus/global" -import type { Event } from "@opencode-ai/sdk/v2" +import type { GlobalEvent } from "@opencode-ai/sdk/v2" import { Flag } from "@/flag/flag" -import { setTimeout as sleep } from "node:timers/promises" import { writeHeapSnapshot } from "node:v8" -import { WorkspaceID } from "@/control-plane/schema" import { Heap } from "@/cli/heap" await Log.init({ @@ -45,87 +42,6 @@ GlobalBus.on("event", (event) => { let server: Awaited> | undefined -const eventStreams = new Map() - -function startEventStream(directory: string) { - const id = crypto.randomUUID() - - const abort = new AbortController() - const signal = abort.signal - - eventStreams.set(id, abort) - - async function run() { - while (!signal.aborted) { - const shouldReconnect = await Instance.provide({ - directory, - init: InstanceBootstrap, - fn: () => - new Promise((resolve) => { - Rpc.emit("event", { - type: "server.connected", - properties: {}, - } satisfies Event) - - let settled = false - const settle = (value: boolean) => { - if (settled) return - settled = true - signal.removeEventListener("abort", onAbort) - unsub() - resolve(value) - } - - const unsub = Bus.subscribeAll((event) => { - Rpc.emit("event", { - id, - event: event as Event, - }) - if (event.type === Bus.InstanceDisposed.type) { - settle(true) - } - }) - - const onAbort = () => { - settle(false) - } - - signal.addEventListener("abort", onAbort, { once: true }) - }), - }).catch((error) => { - Log.Default.error("event stream subscribe error", { - error: error instanceof Error ? error.message : error, - }) - return false - }) - - if (!shouldReconnect || signal.aborted) { - break - } - - if (!signal.aborted) { - await sleep(250) - } - } - } - - run().catch((error) => { - Log.Default.error("event stream error", { - error: error instanceof Error ? error.message : error, - }) - }) - - return id -} - -function stopEventStream(id: string) { - const abortController = eventStreams.get(id) - if (!abortController) return - - abortController.abort() - eventStreams.delete(id) -} - export const rpc = { async fetch(input: { url: string; method: string; headers: Record; body?: string }) { const headers = { ...input.headers } @@ -167,19 +83,9 @@ export const rpc = { async reload() { await Config.invalidate(true) }, - async subscribe(input: { directory: string | undefined }) { - return startEventStream(input.directory || process.cwd()) - }, - async unsubscribe(input: { id: string }) { - stopEventStream(input.id) - }, async shutdown() { Log.Default.info("worker shutting down") - for (const id of [...eventStreams.keys()]) { - stopEventStream(id) - } - await Instance.disposeAll() if (server) await server.stop(true) }, diff --git a/packages/opencode/src/control-plane/workspace-context.ts b/packages/opencode/src/control-plane/workspace-context.ts new file mode 100644 index 000000000..37204d17d --- /dev/null +++ b/packages/opencode/src/control-plane/workspace-context.ts @@ -0,0 +1,22 @@ +import { Context } from "../util/context" +import type { WorkspaceID } from "../control-plane/schema" + +export interface WorkspaceContext { + workspaceID: string +} + +const context = Context.create("instance") + +export const WorkspaceContext = { + async provide(input: { workspaceID: WorkspaceID; fn: () => R }): Promise { + return context.provide({ workspaceID: input.workspaceID as string }, () => input.fn()) + }, + + get workspaceID() { + try { + return context.use().workspaceID + } catch (err) { + return undefined + } + }, +} diff --git a/packages/opencode/src/control-plane/workspace.ts b/packages/opencode/src/control-plane/workspace.ts index bb0fd6002..a030d0b6c 100644 --- a/packages/opencode/src/control-plane/workspace.ts +++ b/packages/opencode/src/control-plane/workspace.ts @@ -134,12 +134,12 @@ export namespace Workspace { continue } - await parseSSE(res.body, stop, (event) => { - GlobalBus.emit("event", { - directory: space.id, - payload: event, - }) - }) + // await parseSSE(res.body, stop, (event) => { + // GlobalBus.emit("event", { + // directory: space.id, + // payload: event, + // }) + // }) // Wait 250ms and retry if SSE connection fails await sleep(250) diff --git a/packages/opencode/src/effect/instance-ref.ts b/packages/opencode/src/effect/instance-ref.ts index d3939b264..07a510a4f 100644 --- a/packages/opencode/src/effect/instance-ref.ts +++ b/packages/opencode/src/effect/instance-ref.ts @@ -4,3 +4,7 @@ import type { InstanceContext } from "@/project/instance" export const InstanceRef = ServiceMap.Reference("~opencode/InstanceRef", { defaultValue: () => undefined, }) + +export const WorkspaceRef = ServiceMap.Reference("~opencode/WorkspaceRef", { + defaultValue: () => undefined, +}) diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index a379d3afc..878648855 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -1,8 +1,9 @@ import { Effect, Fiber, ScopedCache, Scope, ServiceMap } from "effect" import { Instance, type InstanceContext } from "@/project/instance" import { Context } from "@/util/context" -import { InstanceRef } from "./instance-ref" +import { InstanceRef, WorkspaceRef } from "./instance-ref" import { registerDisposer } from "./instance-registry" +import { WorkspaceContext } from "@/control-plane/workspace-context" const TypeId = "~opencode/InstanceState" @@ -28,6 +29,10 @@ export namespace InstanceState { return (yield* InstanceRef) ?? Instance.current }) + export const workspaceID = Effect.gen(function* () { + return (yield* WorkspaceRef) ?? WorkspaceContext.workspaceID + }) + export const directory = Effect.map(context, (ctx) => ctx.directory) export const make = ( diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index f609986b5..c16adec62 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -2,15 +2,17 @@ import { Effect, Layer, ManagedRuntime } from "effect" import * as ServiceMap from "effect/ServiceMap" import { Instance } from "@/project/instance" import { Context } from "@/util/context" -import { InstanceRef } from "./instance-ref" +import { InstanceRef, WorkspaceRef } from "./instance-ref" import { Observability } from "./oltp" +import { WorkspaceContext } from "@/control-plane/workspace-context" export const memoMap = Layer.makeMemoMapUnsafe() function attach(effect: Effect.Effect): Effect.Effect { try { const ctx = Instance.current - return Effect.provideService(effect, InstanceRef, ctx) + const workspaceID = WorkspaceContext.workspaceID + return effect.pipe(Effect.provideService(InstanceRef, ctx), Effect.provideService(WorkspaceRef, workspaceID)) } catch (err) { if (!(err instanceof Context.NotFound)) throw err } diff --git a/packages/opencode/src/project/instance.ts b/packages/opencode/src/project/instance.ts index a0d6f2414..33078183b 100644 --- a/packages/opencode/src/project/instance.ts +++ b/packages/opencode/src/project/instance.ts @@ -5,6 +5,7 @@ import { iife } from "@/util/iife" import { Log } from "@/util/log" import { Context } from "../util/context" import { Project } from "./project" +import { WorkspaceContext } from "@/control-plane/workspace-context" import { State } from "./state" export interface InstanceContext { @@ -20,19 +21,9 @@ const disposal = { all: undefined as Promise | undefined, } -function emit(directory: string) { - GlobalBus.emit("event", { - directory, - payload: { - type: "server.instance.disposed", - properties: { - directory, - }, - }, - }) -} +function emitDisposed(directory: string) {} -function boot(input: { directory: string; init?: () => Promise; project?: Project.Info; worktree?: string }) { +function boot(input: { directory: string; init?: () => Promise; worktree?: string; project?: Project.Info }) { return iife(async () => { const ctx = input.project && input.worktree @@ -93,6 +84,7 @@ export const Instance = { get project() { return context.use().project }, + /** * Check if a path is within the project boundary. * Returns true if path is inside Instance.directory OR Instance.worktree. @@ -131,15 +123,39 @@ export const Instance = { await Promise.all([State.dispose(directory), disposeInstance(directory)]) cache.delete(directory) const next = track(directory, boot({ ...input, directory })) - emit(directory) + + GlobalBus.emit("event", { + directory, + project: input.project?.id, + workspace: WorkspaceContext.workspaceID, + payload: { + type: "server.instance.disposed", + properties: { + directory, + }, + }, + }) + return await next }, async dispose() { const directory = Instance.directory + const project = Instance.project Log.Default.info("disposing instance", { directory }) await Promise.all([State.dispose(directory), disposeInstance(directory)]) cache.delete(directory) - emit(directory) + + GlobalBus.emit("event", { + directory, + project: project.id, + workspace: WorkspaceContext.workspaceID, + payload: { + type: "server.instance.disposed", + properties: { + directory, + }, + }, + }) }, async disposeAll() { if (disposal.all) return disposal.all diff --git a/packages/opencode/src/project/project.ts b/packages/opencode/src/project/project.ts index f587f50b3..8db8df5d5 100644 --- a/packages/opencode/src/project/project.ts +++ b/packages/opencode/src/project/project.ts @@ -137,6 +137,8 @@ export namespace Project { const emitUpdated = (data: Info) => Effect.sync(() => GlobalBus.emit("event", { + directory: "global", + project: data.id, payload: { type: Event.Updated.type, properties: data }, }), ) diff --git a/packages/opencode/src/server/router.ts b/packages/opencode/src/server/router.ts index 55853d974..dcc7924c6 100644 --- a/packages/opencode/src/server/router.ts +++ b/packages/opencode/src/server/router.ts @@ -9,6 +9,9 @@ import { Filesystem } from "@/util/filesystem" import { Instance } from "@/project/instance" import { InstanceBootstrap } from "@/project/bootstrap" import { InstanceRoutes } from "./instance" +import { Session } from "@/session" +import { SessionID } from "@/session/schema" +import { WorkspaceContext } from "@/control-plane/workspace-context" type Rule = { method?: string; path: string; exact?: boolean; action: "local" | "forward" } @@ -26,6 +29,16 @@ function local(method: string, path: string) { return false } +async function getSessionWorkspace(url: URL) { + if (url.pathname === "/session/status") return null + + const id = url.pathname.match(/^\/session\/([^/]+)(?:\/|$)/)?.[1] + if (!id) return null + + const session = await Session.get(SessionID.make(id)).catch(() => undefined) + return session?.workspaceID +} + export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): MiddlewareHandler { const routes = lazy(() => InstanceRoutes(upgrade)) @@ -42,13 +55,12 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware ) const url = new URL(c.req.url) - const workspaceParam = url.searchParams.get("workspace") || c.req.header("x-opencode-workspace") - // TODO: If session is being routed, force it to lookup the - // project/workspace + const sessionWorkspaceID = await getSessionWorkspace(url) + const workspaceID = sessionWorkspaceID || url.searchParams.get("workspace") - // If no workspace is provided we use the "project" workspace - if (!workspaceParam) { + // If no workspace is provided we use the project + if (!workspaceID) { return Instance.provide({ directory, init: InstanceBootstrap, @@ -58,8 +70,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware }) } - const workspaceID = WorkspaceID.make(workspaceParam) - const workspace = await Workspace.get(workspaceID) + const workspace = await Workspace.get(WorkspaceID.make(workspaceID)) if (!workspace) { return new Response(`Workspace not found: ${workspaceID}`, { status: 500, @@ -73,12 +84,16 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware const target = await adaptor.target(workspace) if (target.type === "local") { - return Instance.provide({ - directory: target.directory, - init: InstanceBootstrap, - async fn() { - return routes().fetch(c.req.raw, c.env) - }, + return WorkspaceContext.provide({ + workspaceID: WorkspaceID.make(workspaceID), + fn: () => + Instance.provide({ + directory: target.directory, + init: InstanceBootstrap, + async fn() { + return routes().fetch(c.req.raw, c.env) + }, + }), }) } diff --git a/packages/opencode/src/server/routes/global.ts b/packages/opencode/src/server/routes/global.ts index 16b9e559f..ec7afcf23 100644 --- a/packages/opencode/src/server/routes/global.ts +++ b/packages/opencode/src/server/routes/global.ts @@ -105,6 +105,8 @@ export const GlobalRoutes = lazy(() => z .object({ directory: z.string(), + project: z.string().optional(), + workspace: z.string().optional(), payload: BusEvent.payloads(), }) .meta({ diff --git a/packages/opencode/src/worktree/index.ts b/packages/opencode/src/worktree/index.ts index 54986d65c..e0e7dab4c 100644 --- a/packages/opencode/src/worktree/index.ts +++ b/packages/opencode/src/worktree/index.ts @@ -246,6 +246,7 @@ export namespace Worktree { const boot = Effect.fnUntraced(function* (info: Info, startCommand?: string) { const ctx = yield* InstanceState.context + const workspaceID = yield* InstanceState.workspaceID const projectID = ctx.project.id const extra = startCommand?.trim() @@ -255,6 +256,8 @@ export namespace Worktree { log.error("worktree checkout failed", { directory: info.directory, message }) GlobalBus.emit("event", { directory: info.directory, + project: ctx.project.id, + workspace: workspaceID, payload: { type: Event.Failed.type, properties: { message } }, }) return @@ -272,6 +275,8 @@ export namespace Worktree { log.error("worktree bootstrap failed", { directory: info.directory, message }) GlobalBus.emit("event", { directory: info.directory, + project: ctx.project.id, + workspace: workspaceID, payload: { type: Event.Failed.type, properties: { message } }, }) return false @@ -281,6 +286,8 @@ export namespace Worktree { GlobalBus.emit("event", { directory: info.directory, + project: ctx.project.id, + workspace: workspaceID, payload: { type: Event.Ready.type, properties: { name: info.name, branch: info.branch }, diff --git a/packages/opencode/test/cli/tui/sync-provider.test.tsx b/packages/opencode/test/cli/tui/sync-provider.test.tsx new file mode 100644 index 000000000..ec686b368 --- /dev/null +++ b/packages/opencode/test/cli/tui/sync-provider.test.tsx @@ -0,0 +1,293 @@ +/** @jsxImportSource @opentui/solid */ +import { afterEach, describe, expect, test } from "bun:test" +import { testRender } from "@opentui/solid" +import { onMount } from "solid-js" +import { ArgsProvider } from "../../../src/cli/cmd/tui/context/args" +import { ExitProvider } from "../../../src/cli/cmd/tui/context/exit" +import { ProjectProvider, useProject } from "../../../src/cli/cmd/tui/context/project" +import { SDKProvider } from "../../../src/cli/cmd/tui/context/sdk" +import { SyncProvider, useSync } from "../../../src/cli/cmd/tui/context/sync" + +const sighup = new Set(process.listeners("SIGHUP")) + +afterEach(() => { + for (const fn of process.listeners("SIGHUP")) { + if (!sighup.has(fn)) process.off("SIGHUP", fn) + } +}) + +function json(data: unknown) { + return new Response(JSON.stringify(data), { + headers: { + "content-type": "application/json", + }, + }) +} + +async function wait(fn: () => boolean, timeout = 2000) { + const start = Date.now() + while (!fn()) { + if (Date.now() - start > timeout) throw new Error("timed out waiting for condition") + await Bun.sleep(10) + } +} + +function data(workspace?: string | null) { + const tag = workspace ?? "root" + return { + session: { + id: "ses_1", + title: `session-${tag}`, + workspaceID: workspace ?? undefined, + time: { + updated: 1, + }, + }, + message: { + info: { + id: "msg_1", + sessionID: "ses_1", + role: "assistant", + time: { + created: 1, + completed: 1, + }, + }, + parts: [ + { + id: "part_1", + messageID: "msg_1", + sessionID: "ses_1", + type: "text", + text: `part-${tag}`, + }, + ], + }, + todo: [ + { + id: `todo-${tag}`, + content: `todo-${tag}`, + status: "pending", + priority: "medium", + }, + ], + diff: [ + { + file: `${tag}.ts`, + patch: "", + additions: 0, + deletions: 0, + }, + ], + } +} + +type Hit = { + path: string + workspace?: string +} + +function createFetch(log: Hit[]) { + return Object.assign( + async (input: RequestInfo | URL, init?: RequestInit) => { + const req = new Request(input, init) + const url = new URL(req.url) + const workspace = url.searchParams.get("workspace") ?? req.headers.get("x-opencode-workspace") ?? undefined + log.push({ + path: url.pathname, + workspace, + }) + + if (url.pathname === "/config/providers") { + return json({ providers: [], default: {} }) + } + if (url.pathname === "/provider") { + return json({ all: [], default: {}, connected: [] }) + } + if (url.pathname === "/experimental/console") { + return json({}) + } + if (url.pathname === "/agent") { + return json([]) + } + if (url.pathname === "/config") { + return json({}) + } + if (url.pathname === "/project/current") { + return json({ id: `proj-${workspace ?? "root"}` }) + } + if (url.pathname === "/path") { + return json({ + state: `/tmp/${workspace ?? "root"}/state`, + config: `/tmp/${workspace ?? "root"}/config`, + worktree: "/tmp/worktree", + directory: `/tmp/${workspace ?? "root"}`, + }) + } + if (url.pathname === "/session") { + return json([]) + } + if (url.pathname === "/command") { + return json([]) + } + if (url.pathname === "/lsp") { + return json([]) + } + if (url.pathname === "/mcp") { + return json({}) + } + if (url.pathname === "/experimental/resource") { + return json({}) + } + if (url.pathname === "/formatter") { + return json([]) + } + if (url.pathname === "/session/status") { + return json({}) + } + if (url.pathname === "/provider/auth") { + return json({}) + } + if (url.pathname === "/vcs") { + return json({ branch: "main" }) + } + if (url.pathname === "/experimental/workspace") { + return json([{ id: "ws_a" }, { id: "ws_b" }]) + } + if (url.pathname === "/session/ses_1") { + return json(data(workspace).session) + } + if (url.pathname === "/session/ses_1/message") { + return json([data(workspace).message]) + } + if (url.pathname === "/session/ses_1/todo") { + return json(data(workspace).todo) + } + if (url.pathname === "/session/ses_1/diff") { + return json(data(workspace).diff) + } + + throw new Error(`unexpected request: ${req.method} ${url.pathname}`) + }, + { preconnect: fetch.preconnect.bind(fetch) }, + ) satisfies typeof fetch +} + +async function mount(log: Hit[]) { + let project!: ReturnType + let sync!: ReturnType + let done!: () => void + const ready = new Promise((resolve) => { + done = resolve + }) + + const app = await testRender(() => ( + () => {} }} + > + + + + + { + project = ctx.project + sync = ctx.sync + done() + }} + /> + + + + + + )) + + await ready + return { app, project, sync } +} + +async function waitBoot(log: Hit[], workspace?: string) { + await wait(() => log.some((item) => item.path === "/experimental/workspace")) + if (!workspace) return + await wait(() => log.some((item) => item.path === "/project/current" && item.workspace === workspace)) +} + +function Probe(props: { + onReady: (ctx: { project: ReturnType; sync: ReturnType }) => void +}) { + const project = useProject() + const sync = useSync() + + onMount(() => { + props.onReady({ project, sync }) + }) + + return +} + +describe("SyncProvider", () => { + test("re-runs bootstrap requests when the active workspace changes", async () => { + const log: Hit[] = [] + const { app, project } = await mount(log) + + try { + await waitBoot(log) + log.length = 0 + + project.workspace.set("ws_a") + + await waitBoot(log, "ws_a") + + expect(log.some((item) => item.path === "/path" && item.workspace === "ws_a")).toBe(true) + expect(log.some((item) => item.path === "/config" && item.workspace === "ws_a")).toBe(true) + expect(log.some((item) => item.path === "/session" && item.workspace === "ws_a")).toBe(true) + expect(log.some((item) => item.path === "/command" && item.workspace === "ws_a")).toBe(true) + } finally { + app.renderer.destroy() + } + }) + + test("clears full-sync cache when the active workspace changes", async () => { + const log: Hit[] = [] + const { app, project, sync } = await mount(log) + + try { + await waitBoot(log) + + log.length = 0 + project.workspace.set("ws_a") + await waitBoot(log, "ws_a") + expect(project.workspace.current()).toBe("ws_a") + + log.length = 0 + await sync.session.sync("ses_1") + + expect(log.filter((item) => item.path === "/session/ses_1" && item.workspace === "ws_a")).toHaveLength(1) + expect(sync.data.todo.ses_1[0]?.content).toBe("todo-ws_a") + expect(sync.data.message.ses_1[0]?.id).toBe("msg_1") + expect(sync.data.part.msg_1[0]).toMatchObject({ type: "text", text: "part-ws_a" }) + expect(sync.data.session_diff.ses_1[0]?.file).toBe("ws_a.ts") + + log.length = 0 + project.workspace.set("ws_b") + await waitBoot(log, "ws_b") + expect(project.workspace.current()).toBe("ws_b") + + log.length = 0 + await sync.session.sync("ses_1") + await wait(() => log.some((item) => item.path === "/session/ses_1" && item.workspace === "ws_b")) + + expect(log.filter((item) => item.path === "/session/ses_1" && item.workspace === "ws_b")).toHaveLength(1) + expect(sync.data.todo.ses_1[0]?.content).toBe("todo-ws_b") + expect(sync.data.message.ses_1[0]?.id).toBe("msg_1") + expect(sync.data.part.msg_1[0]).toMatchObject({ type: "text", text: "part-ws_b" }) + expect(sync.data.session_diff.ses_1[0]?.file).toBe("ws_b.ts") + } finally { + app.renderer.destroy() + } + }) +}) diff --git a/packages/opencode/test/cli/tui/use-event.test.tsx b/packages/opencode/test/cli/tui/use-event.test.tsx new file mode 100644 index 000000000..5b0fcad3c --- /dev/null +++ b/packages/opencode/test/cli/tui/use-event.test.tsx @@ -0,0 +1,175 @@ +/** @jsxImportSource @opentui/solid */ +import { describe, expect, test } from "bun:test" +import { testRender } from "@opentui/solid" +import type { Event, GlobalEvent } from "@opencode-ai/sdk/v2" +import { onMount } from "solid-js" +import { ProjectProvider, useProject } from "../../../src/cli/cmd/tui/context/project" +import { SDKProvider } from "../../../src/cli/cmd/tui/context/sdk" +import { useEvent } from "../../../src/cli/cmd/tui/context/event" + +async function wait(fn: () => boolean, timeout = 2000) { + const start = Date.now() + while (!fn()) { + if (Date.now() - start > timeout) throw new Error("timed out waiting for condition") + await Bun.sleep(10) + } +} + +function event(payload: Event, input: { directory: string; workspace?: string }): GlobalEvent { + return { + directory: input.directory, + workspace: input.workspace, + payload, + } +} + +function vcs(branch: string): Event { + return { + type: "vcs.branch.updated", + properties: { + branch, + }, + } +} + +function update(version: string): Event { + return { + type: "installation.update-available", + properties: { + version, + }, + } +} + +function createSource() { + let fn: ((event: GlobalEvent) => void) | undefined + + return { + source: { + subscribe: async (handler: (event: GlobalEvent) => void) => { + fn = handler + return () => { + if (fn === handler) fn = undefined + } + }, + }, + emit(evt: GlobalEvent) { + if (!fn) throw new Error("event source not ready") + fn(evt) + }, + } +} + +async function mount() { + const source = createSource() + const seen: Event[] = [] + let project!: ReturnType + let done!: () => void + const ready = new Promise((resolve) => { + done = resolve + }) + + const app = await testRender(() => ( + + + { + project = ctx.project + done() + }} + seen={seen} + /> + + + )) + + await ready + return { app, emit: source.emit, project, seen } +} + +function Probe(props: { seen: Event[]; onReady: (ctx: { project: ReturnType }) => void }) { + const project = useProject() + const event = useEvent() + + onMount(() => { + event.subscribe((evt) => { + props.seen.push(evt) + }) + props.onReady({ project }) + }) + + return +} + +describe("useEvent", () => { + test("delivers matching directory events without an active workspace", async () => { + const { app, emit, seen } = await mount() + + try { + emit(event(vcs("main"), { directory: "/tmp/root" })) + + await wait(() => seen.length === 1) + + expect(seen).toEqual([vcs("main")]) + } finally { + app.renderer.destroy() + } + }) + + test("ignores non-matching directory events without an active workspace", async () => { + const { app, emit, seen } = await mount() + + try { + emit(event(vcs("other"), { directory: "/tmp/other" })) + await Bun.sleep(30) + + expect(seen).toHaveLength(0) + } finally { + app.renderer.destroy() + } + }) + + test("delivers matching workspace events when a workspace is active", async () => { + const { app, emit, project, seen } = await mount() + + try { + project.workspace.set("ws_a") + emit(event(vcs("ws"), { directory: "/tmp/other", workspace: "ws_a" })) + + await wait(() => seen.length === 1) + + expect(seen).toEqual([vcs("ws")]) + } finally { + app.renderer.destroy() + } + }) + + test("ignores non-matching workspace events when a workspace is active", async () => { + const { app, emit, project, seen } = await mount() + + try { + project.workspace.set("ws_a") + emit(event(vcs("ws"), { directory: "/tmp/root", workspace: "ws_b" })) + await Bun.sleep(30) + + expect(seen).toHaveLength(0) + } finally { + app.renderer.destroy() + } + }) + + test("delivers truly global events even when a workspace is active", async () => { + const { app, emit, project, seen } = await mount() + + try { + project.workspace.set("ws_a") + emit(event(update("1.2.3"), { directory: "global" })) + + await wait(() => seen.length === 1) + + expect(seen).toEqual([update("1.2.3")]) + } finally { + app.renderer.destroy() + } + }) +}) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 62c62e138..823c452f9 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1011,6 +1011,8 @@ export type Event = export type GlobalEvent = { directory: string + project?: string + workspace?: string payload: Event } diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 450de5131..40361c280 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -9926,6 +9926,12 @@ "directory": { "type": "string" }, + "project": { + "type": "string" + }, + "workspace": { + "type": "string" + }, "payload": { "$ref": "#/components/schemas/Event" } From e83404367c31cca12dd828203741690c1890f16d Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 10:50:13 -0400 Subject: [PATCH 056/151] refactor(tool): convert webfetch tool internals to Effect (#21809) --- packages/opencode/src/tool/registry.ts | 6 +- packages/opencode/src/tool/webfetch.ts | 306 +++++++++--------- .../opencode/test/memory/abort-leak.test.ts | 8 +- .../test/session/prompt-effect.test.ts | 2 + .../test/session/snapshot-tool-race.test.ts | 5 +- packages/opencode/test/tool/webfetch.test.ts | 16 +- 6 files changed, 180 insertions(+), 163 deletions(-) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 716a8ca4e..6d0a6e0cd 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -30,6 +30,7 @@ import { Glob } from "../util/glob" import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, ServiceMap } from "effect" +import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { Env } from "../env" @@ -84,6 +85,7 @@ export namespace ToolRegistry { | FileTime.Service | Instruction.Service | AppFileSystem.Service + | HttpClient.HttpClient > = Layer.effect( Service, Effect.gen(function* () { @@ -98,6 +100,7 @@ export namespace ToolRegistry { const todo = yield* TodoWriteTool const lsptool = yield* LspTool const plan = yield* PlanExitTool + const webfetch = yield* WebFetchTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -163,7 +166,7 @@ export namespace ToolRegistry { edit: Tool.init(EditTool), write: Tool.init(WriteTool), task: Tool.init(task), - fetch: Tool.init(WebFetchTool), + fetch: Tool.init(webfetch), todo: Tool.init(todo), search: Tool.init(WebSearchTool), code: Tool.init(CodeSearchTool), @@ -309,6 +312,7 @@ export namespace ToolRegistry { Layer.provide(FileTime.defaultLayer), Layer.provide(Instruction.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), + Layer.provide(FetchHttpClient.layer), ), ) diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts index 559afd677..515b88e25 100644 --- a/packages/opencode/src/tool/webfetch.ts +++ b/packages/opencode/src/tool/webfetch.ts @@ -1,170 +1,164 @@ import z from "zod" +import { Effect } from "effect" +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { Tool } from "./tool" import TurndownService from "turndown" import DESCRIPTION from "./webfetch.txt" -import { abortAfterAny } from "../util/abort" -import { iife } from "@/util/iife" const MAX_RESPONSE_SIZE = 5 * 1024 * 1024 // 5MB const DEFAULT_TIMEOUT = 30 * 1000 // 30 seconds const MAX_TIMEOUT = 120 * 1000 // 2 minutes -export const WebFetchTool = Tool.define("webfetch", { - description: DESCRIPTION, - parameters: z.object({ - url: z.string().describe("The URL to fetch content from"), - format: z - .enum(["text", "markdown", "html"]) - .default("markdown") - .describe("The format to return the content in (text, markdown, or html). Defaults to markdown."), - timeout: z.number().describe("Optional timeout in seconds (max 120)").optional(), - }), - async execute(params, ctx) { - // Validate URL - if (!params.url.startsWith("http://") && !params.url.startsWith("https://")) { - throw new Error("URL must start with http:// or https://") - } - - await ctx.ask({ - permission: "webfetch", - patterns: [params.url], - always: ["*"], - metadata: { - url: params.url, - format: params.format, - timeout: params.timeout, - }, - }) - - const timeout = Math.min((params.timeout ?? DEFAULT_TIMEOUT / 1000) * 1000, MAX_TIMEOUT) - - const { signal, clearTimeout } = abortAfterAny(timeout, ctx.abort) - - // Build Accept header based on requested format with q parameters for fallbacks - let acceptHeader = "*/*" - switch (params.format) { - case "markdown": - acceptHeader = "text/markdown;q=1.0, text/x-markdown;q=0.9, text/plain;q=0.8, text/html;q=0.7, */*;q=0.1" - break - case "text": - acceptHeader = "text/plain;q=1.0, text/markdown;q=0.9, text/html;q=0.8, */*;q=0.1" - break - case "html": - acceptHeader = "text/html;q=1.0, application/xhtml+xml;q=0.9, text/plain;q=0.8, text/markdown;q=0.7, */*;q=0.1" - break - default: - acceptHeader = - "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8" - } - const headers = { - "User-Agent": - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36", - Accept: acceptHeader, - "Accept-Language": "en-US,en;q=0.9", - } - - const response = await iife(async () => { - try { - const initial = await fetch(params.url, { signal, headers }) - - // Retry with honest UA if blocked by Cloudflare bot detection (TLS fingerprint mismatch) - return initial.status === 403 && initial.headers.get("cf-mitigated") === "challenge" - ? await fetch(params.url, { signal, headers: { ...headers, "User-Agent": "opencode" } }) - : initial - } finally { - clearTimeout() - } - }) - - if (!response.ok) { - throw new Error(`Request failed with status code: ${response.status}`) - } - - // Check content length - const contentLength = response.headers.get("content-length") - if (contentLength && parseInt(contentLength) > MAX_RESPONSE_SIZE) { - throw new Error("Response too large (exceeds 5MB limit)") - } - - const arrayBuffer = await response.arrayBuffer() - if (arrayBuffer.byteLength > MAX_RESPONSE_SIZE) { - throw new Error("Response too large (exceeds 5MB limit)") - } - - const contentType = response.headers.get("content-type") || "" - const mime = contentType.split(";")[0]?.trim().toLowerCase() || "" - const title = `${params.url} (${contentType})` - - // Check if response is an image - const isImage = mime.startsWith("image/") && mime !== "image/svg+xml" && mime !== "image/vnd.fastbidsheet" - - if (isImage) { - const base64Content = Buffer.from(arrayBuffer).toString("base64") - return { - title, - output: "Image fetched successfully", - metadata: {}, - attachments: [ - { - type: "file", - mime, - url: `data:${mime};base64,${base64Content}`, - }, - ], - } - } - - const content = new TextDecoder().decode(arrayBuffer) - - // Handle content based on requested format and actual content type - switch (params.format) { - case "markdown": - if (contentType.includes("text/html")) { - const markdown = convertHTMLToMarkdown(content) - return { - output: markdown, - title, - metadata: {}, - } - } - return { - output: content, - title, - metadata: {}, - } - - case "text": - if (contentType.includes("text/html")) { - const text = await extractTextFromHTML(content) - return { - output: text, - title, - metadata: {}, - } - } - return { - output: content, - title, - metadata: {}, - } - - case "html": - return { - output: content, - title, - metadata: {}, - } - - default: - return { - output: content, - title, - metadata: {}, - } - } - }, +const parameters = z.object({ + url: z.string().describe("The URL to fetch content from"), + format: z + .enum(["text", "markdown", "html"]) + .default("markdown") + .describe("The format to return the content in (text, markdown, or html). Defaults to markdown."), + timeout: z.number().describe("Optional timeout in seconds (max 120)").optional(), }) +export const WebFetchTool = Tool.defineEffect( + "webfetch", + Effect.gen(function* () { + const http = yield* HttpClient.HttpClient + const httpOk = HttpClient.filterStatusOk(http) + + return { + description: DESCRIPTION, + parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + if (!params.url.startsWith("http://") && !params.url.startsWith("https://")) { + throw new Error("URL must start with http:// or https://") + } + + yield* Effect.promise(() => + ctx.ask({ + permission: "webfetch", + patterns: [params.url], + always: ["*"], + metadata: { + url: params.url, + format: params.format, + timeout: params.timeout, + }, + }), + ) + + const timeout = Math.min((params.timeout ?? DEFAULT_TIMEOUT / 1000) * 1000, MAX_TIMEOUT) + + // Build Accept header based on requested format with q parameters for fallbacks + let acceptHeader = "*/*" + switch (params.format) { + case "markdown": + acceptHeader = + "text/markdown;q=1.0, text/x-markdown;q=0.9, text/plain;q=0.8, text/html;q=0.7, */*;q=0.1" + break + case "text": + acceptHeader = "text/plain;q=1.0, text/markdown;q=0.9, text/html;q=0.8, */*;q=0.1" + break + case "html": + acceptHeader = + "text/html;q=1.0, application/xhtml+xml;q=0.9, text/plain;q=0.8, text/markdown;q=0.7, */*;q=0.1" + break + default: + acceptHeader = + "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8" + } + const headers = { + "User-Agent": + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36", + Accept: acceptHeader, + "Accept-Language": "en-US,en;q=0.9", + } + + const request = HttpClientRequest.get(params.url).pipe(HttpClientRequest.setHeaders(headers)) + + // Retry with honest UA if blocked by Cloudflare bot detection (TLS fingerprint mismatch) + const response = yield* httpOk.execute(request).pipe( + Effect.catchIf( + (err) => + err.reason._tag === "StatusCodeError" && + err.reason.response.status === 403 && + err.reason.response.headers["cf-mitigated"] === "challenge", + () => + httpOk.execute( + HttpClientRequest.get(params.url).pipe( + HttpClientRequest.setHeaders({ ...headers, "User-Agent": "opencode" }), + ), + ), + ), + Effect.timeoutOrElse({ duration: timeout, orElse: () => Effect.die(new Error("Request timed out")) }), + ) + + // Check content length + const contentLength = response.headers["content-length"] + if (contentLength && parseInt(contentLength) > MAX_RESPONSE_SIZE) { + throw new Error("Response too large (exceeds 5MB limit)") + } + + const arrayBuffer = yield* response.arrayBuffer + if (arrayBuffer.byteLength > MAX_RESPONSE_SIZE) { + throw new Error("Response too large (exceeds 5MB limit)") + } + + const contentType = response.headers["content-type"] || "" + const mime = contentType.split(";")[0]?.trim().toLowerCase() || "" + const title = `${params.url} (${contentType})` + + // Check if response is an image + const isImage = mime.startsWith("image/") && mime !== "image/svg+xml" && mime !== "image/vnd.fastbidsheet" + + if (isImage) { + const base64Content = Buffer.from(arrayBuffer).toString("base64") + return { + title, + output: "Image fetched successfully", + metadata: {}, + attachments: [ + { + type: "file" as const, + mime, + url: `data:${mime};base64,${base64Content}`, + }, + ], + } + } + + const content = new TextDecoder().decode(arrayBuffer) + + // Handle content based on requested format and actual content type + switch (params.format) { + case "markdown": + if (contentType.includes("text/html")) { + const markdown = convertHTMLToMarkdown(content) + return { + output: markdown, + title, + metadata: {}, + } + } + return { output: content, title, metadata: {} } + + case "text": + if (contentType.includes("text/html")) { + const text = yield* Effect.promise(() => extractTextFromHTML(content)) + return { output: text, title, metadata: {} } + } + return { output: content, title, metadata: {} } + + case "html": + return { output: content, title, metadata: {} } + + default: + return { output: content, title, metadata: {} } + } + }).pipe(Effect.runPromise), + } + }), +) + async function extractTextFromHTML(html: string) { let text = "" let skipContent = false diff --git a/packages/opencode/test/memory/abort-leak.test.ts b/packages/opencode/test/memory/abort-leak.test.ts index eebb651a5..2d0180783 100644 --- a/packages/opencode/test/memory/abort-leak.test.ts +++ b/packages/opencode/test/memory/abort-leak.test.ts @@ -1,5 +1,7 @@ import { describe, test, expect } from "bun:test" import path from "path" +import { Effect } from "effect" +import { FetchHttpClient } from "effect/unstable/http" import { Instance } from "../../src/project/instance" import { WebFetchTool } from "../../src/tool/webfetch" import { SessionID, MessageID } from "../../src/session/schema" @@ -30,7 +32,11 @@ describe("memory: abort controller leak", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const tool = await WebFetchTool.init() + const tool = await WebFetchTool.pipe( + Effect.flatMap((info) => Effect.promise(() => info.init())), + Effect.provide(FetchHttpClient.layer), + Effect.runPromise, + ) // Warm up await tool.execute({ url: "https://example.com", format: "text" }, ctx).catch(() => {}) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index 215f6668c..ef8512bad 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -1,6 +1,7 @@ import { NodeFileSystem } from "@effect/platform-node" import { expect } from "bun:test" import { Cause, Effect, Exit, Fiber, Layer } from "effect" +import { FetchHttpClient } from "effect/unstable/http" import path from "path" import z from "zod" import { Agent as AgentSvc } from "../../src/agent/agent" @@ -169,6 +170,7 @@ function makeHttp() { const todo = Todo.layer.pipe(Layer.provideMerge(deps)) const registry = ToolRegistry.layer.pipe( Layer.provide(Skill.defaultLayer), + Layer.provide(FetchHttpClient.layer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index ae67983bf..b8ee6b284 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -12,7 +12,8 @@ * tools internally during multi-step processing before emitting events. */ import { expect } from "bun:test" -import { Effect } from "effect" +import { Effect, Layer } from "effect" +import { FetchHttpClient } from "effect/unstable/http" import fs from "fs/promises" import path from "path" import { Session } from "../../src/session" @@ -28,7 +29,6 @@ import { TestLLMServer } from "../lib/llm-server" // Same layer setup as prompt-effect.test.ts import { NodeFileSystem } from "@effect/platform-node" -import { Layer } from "effect" import { Agent as AgentSvc } from "../../src/agent/agent" import { Bus } from "../../src/bus" import { Command } from "../../src/command" @@ -134,6 +134,7 @@ function makeHttp() { const todo = Todo.layer.pipe(Layer.provideMerge(deps)) const registry = ToolRegistry.layer.pipe( Layer.provide(Skill.defaultLayer), + Layer.provide(FetchHttpClient.layer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index 00e9dcc96..a26be24ae 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -1,5 +1,7 @@ import { describe, expect, test } from "bun:test" import path from "path" +import { Effect } from "effect" +import { FetchHttpClient } from "effect/unstable/http" import { Instance } from "../../src/project/instance" import { WebFetchTool } from "../../src/tool/webfetch" import { SessionID, MessageID } from "../../src/session/schema" @@ -22,6 +24,14 @@ async function withFetch(fetch: (req: Request) => Response | Promise, await fn(server.url) } +function initTool() { + return WebFetchTool.pipe( + Effect.flatMap((info) => Effect.promise(() => info.init())), + Effect.provide(FetchHttpClient.layer), + Effect.runPromise, + ) +} + describe("tool.webfetch", () => { test("returns image responses as file attachments", async () => { const bytes = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]) @@ -31,7 +41,7 @@ describe("tool.webfetch", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const webfetch = await WebFetchTool.init() + const webfetch = await initTool() const result = await webfetch.execute( { url: new URL("/image.png", url).toString(), format: "markdown" }, ctx, @@ -63,7 +73,7 @@ describe("tool.webfetch", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const webfetch = await WebFetchTool.init() + const webfetch = await initTool() const result = await webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx) expect(result.output).toContain(" { await Instance.provide({ directory: projectRoot, fn: async () => { - const webfetch = await WebFetchTool.init() + const webfetch = await initTool() const result = await webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx) expect(result.output).toBe("hello from webfetch") expect(result.attachments).toBeUndefined() From aedc4e964fce0be8dd15ed1a19836827b43acfab Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 14:51:27 +0000 Subject: [PATCH 057/151] chore: generate --- packages/opencode/src/tool/webfetch.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts index 515b88e25..1c89d950a 100644 --- a/packages/opencode/src/tool/webfetch.ts +++ b/packages/opencode/src/tool/webfetch.ts @@ -52,8 +52,7 @@ export const WebFetchTool = Tool.defineEffect( let acceptHeader = "*/*" switch (params.format) { case "markdown": - acceptHeader = - "text/markdown;q=1.0, text/x-markdown;q=0.9, text/plain;q=0.8, text/html;q=0.7, */*;q=0.1" + acceptHeader = "text/markdown;q=1.0, text/x-markdown;q=0.9, text/plain;q=0.8, text/html;q=0.7, */*;q=0.1" break case "text": acceptHeader = "text/plain;q=1.0, text/markdown;q=0.9, text/html;q=0.8, */*;q=0.1" From 46b74e0873de310ef66c894012e19ac498cae4ac Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 11:30:38 -0400 Subject: [PATCH 058/151] refactor(tool): convert websearch tool internals to Effect (#21810) --- packages/opencode/src/tool/mcp-exa.ts | 74 ++++++++ packages/opencode/src/tool/registry.ts | 3 +- packages/opencode/src/tool/websearch.ts | 172 +++++------------- .../test/session/prompt-effect.test.ts | 2 +- 4 files changed, 126 insertions(+), 125 deletions(-) create mode 100644 packages/opencode/src/tool/mcp-exa.ts diff --git a/packages/opencode/src/tool/mcp-exa.ts b/packages/opencode/src/tool/mcp-exa.ts new file mode 100644 index 000000000..fe56eb22d --- /dev/null +++ b/packages/opencode/src/tool/mcp-exa.ts @@ -0,0 +1,74 @@ +import { Duration, Effect, Schema } from "effect" +import { HttpClient, HttpClientRequest } from "effect/unstable/http" + +const URL = "https://mcp.exa.ai/mcp" + +const McpResult = Schema.Struct({ + result: Schema.Struct({ + content: Schema.Array( + Schema.Struct({ + type: Schema.String, + text: Schema.String, + }), + ), + }), +}) + +const decode = Schema.decodeUnknownEffect(Schema.fromJsonString(McpResult)) + +const parseSse = Effect.fn("McpExa.parseSse")(function* (body: string) { + for (const line of body.split("\n")) { + if (!line.startsWith("data: ")) continue + const data = yield* decode(line.substring(6)) + if (data.result.content[0]?.text) return data.result.content[0].text + } + return undefined +}) + +export const SearchArgs = Schema.Struct({ + query: Schema.String, + type: Schema.String, + numResults: Schema.Number, + livecrawl: Schema.String, + contextMaxCharacters: Schema.optional(Schema.Number), +}) + +export const CodeArgs = Schema.Struct({ + query: Schema.String, + tokensNum: Schema.Number, +}) + +const McpRequest = (args: Schema.Struct) => + Schema.Struct({ + jsonrpc: Schema.Literal("2.0"), + id: Schema.Literal(1), + method: Schema.Literal("tools/call"), + params: Schema.Struct({ + name: Schema.String, + arguments: args, + }), + }) + +export const call = ( + http: HttpClient.HttpClient, + tool: string, + args: Schema.Struct, + value: Schema.Struct.Type, + timeout: Duration.Input, +) => + Effect.gen(function* () { + const request = yield* HttpClientRequest.post(URL).pipe( + HttpClientRequest.accept("application/json, text/event-stream"), + HttpClientRequest.schemaBodyJson(McpRequest(args))({ + jsonrpc: "2.0" as const, + id: 1 as const, + method: "tools/call" as const, + params: { name: tool, arguments: value }, + }), + ) + const response = yield* HttpClient.filterStatusOk(http).execute(request).pipe( + Effect.timeoutOrElse({ duration: timeout, orElse: () => Effect.die(new Error(`${tool} request timed out`)) }), + ) + const body = yield* response.text + return yield* parseSse(body) + }) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 6d0a6e0cd..389d3d6cd 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -101,6 +101,7 @@ export namespace ToolRegistry { const lsptool = yield* LspTool const plan = yield* PlanExitTool const webfetch = yield* WebFetchTool + const websearch = yield* WebSearchTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -168,7 +169,7 @@ export namespace ToolRegistry { task: Tool.init(task), fetch: Tool.init(webfetch), todo: Tool.init(todo), - search: Tool.init(WebSearchTool), + search: Tool.init(websearch), code: Tool.init(CodeSearchTool), skill: Tool.init(SkillTool), patch: Tool.init(ApplyPatchTool), diff --git a/packages/opencode/src/tool/websearch.ts b/packages/opencode/src/tool/websearch.ts index c0f1c8d10..be7b9b399 100644 --- a/packages/opencode/src/tool/websearch.ts +++ b/packages/opencode/src/tool/websearch.ts @@ -1,15 +1,9 @@ import z from "zod" +import { Effect } from "effect" +import { HttpClient } from "effect/unstable/http" import { Tool } from "./tool" +import * as McpExa from "./mcp-exa" import DESCRIPTION from "./websearch.txt" -import { abortAfterAny } from "../util/abort" - -const API_CONFIG = { - BASE_URL: "https://mcp.exa.ai", - ENDPOINTS: { - SEARCH: "/mcp", - }, - DEFAULT_NUM_RESULTS: 8, -} as const const Parameters = z.object({ query: z.string().describe("Websearch query"), @@ -30,121 +24,53 @@ const Parameters = z.object({ .describe("Maximum characters for context string optimized for LLMs (default: 10000)"), }) -interface McpSearchRequest { - jsonrpc: string - id: number - method: string - params: { - name: string - arguments: { - query: string - numResults?: number - livecrawl?: "fallback" | "preferred" - type?: "auto" | "fast" | "deep" - contextMaxCharacters?: number - } - } -} +export const WebSearchTool = Tool.defineEffect( + "websearch", + Effect.gen(function* () { + const http = yield* HttpClient.HttpClient -interface McpSearchResponse { - jsonrpc: string - result: { - content: Array<{ - type: string - text: string - }> - } -} + return { + get description() { + return DESCRIPTION.replace("{{year}}", new Date().getFullYear().toString()) + }, + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + yield* Effect.promise(() => + ctx.ask({ + permission: "websearch", + patterns: [params.query], + always: ["*"], + metadata: { + query: params.query, + numResults: params.numResults, + livecrawl: params.livecrawl, + type: params.type, + contextMaxCharacters: params.contextMaxCharacters, + }, + }), + ) -export const WebSearchTool = Tool.define("websearch", async () => { - return { - get description() { - return DESCRIPTION.replace("{{year}}", new Date().getFullYear().toString()) - }, - parameters: Parameters, - async execute(params, ctx) { - await ctx.ask({ - permission: "websearch", - patterns: [params.query], - always: ["*"], - metadata: { - query: params.query, - numResults: params.numResults, - livecrawl: params.livecrawl, - type: params.type, - contextMaxCharacters: params.contextMaxCharacters, - }, - }) + const result = yield* McpExa.call( + http, + "web_search_exa", + McpExa.SearchArgs, + { + query: params.query, + type: params.type || "auto", + numResults: params.numResults || 8, + livecrawl: params.livecrawl || "fallback", + contextMaxCharacters: params.contextMaxCharacters, + }, + "25 seconds", + ) - const searchRequest: McpSearchRequest = { - jsonrpc: "2.0", - id: 1, - method: "tools/call", - params: { - name: "web_search_exa", - arguments: { - query: params.query, - type: params.type || "auto", - numResults: params.numResults || API_CONFIG.DEFAULT_NUM_RESULTS, - livecrawl: params.livecrawl || "fallback", - contextMaxCharacters: params.contextMaxCharacters, - }, - }, - } - - const { signal, clearTimeout } = abortAfterAny(25000, ctx.abort) - - try { - const headers: Record = { - accept: "application/json, text/event-stream", - "content-type": "application/json", - } - - const response = await fetch(`${API_CONFIG.BASE_URL}${API_CONFIG.ENDPOINTS.SEARCH}`, { - method: "POST", - headers, - body: JSON.stringify(searchRequest), - signal, - }) - - clearTimeout() - - if (!response.ok) { - const errorText = await response.text() - throw new Error(`Search error (${response.status}): ${errorText}`) - } - - const responseText = await response.text() - - // Parse SSE response - const lines = responseText.split("\n") - for (const line of lines) { - if (line.startsWith("data: ")) { - const data: McpSearchResponse = JSON.parse(line.substring(6)) - if (data.result && data.result.content && data.result.content.length > 0) { - return { - output: data.result.content[0].text, - title: `Web search: ${params.query}`, - metadata: {}, - } - } + return { + output: result ?? "No search results found. Please try a different query.", + title: `Web search: ${params.query}`, + metadata: {}, } - } - - return { - output: "No search results found. Please try a different query.", - title: `Web search: ${params.query}`, - metadata: {}, - } - } catch (error) { - clearTimeout() - - if (error instanceof Error && error.name === "AbortError") { - throw new Error("Search request timed out") - } - - throw error - } - }, - } -}) + }).pipe(Effect.runPromise), + } + }), +) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index ef8512bad..c114af651 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -1,7 +1,7 @@ import { NodeFileSystem } from "@effect/platform-node" +import { FetchHttpClient } from "effect/unstable/http" import { expect } from "bun:test" import { Cause, Effect, Exit, Fiber, Layer } from "effect" -import { FetchHttpClient } from "effect/unstable/http" import path from "path" import z from "zod" import { Agent as AgentSvc } from "../../src/agent/agent" From 00e39d211482115245149b2b036625faa7f4d973 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 15:31:39 +0000 Subject: [PATCH 059/151] chore: generate --- packages/opencode/src/tool/mcp-exa.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/tool/mcp-exa.ts b/packages/opencode/src/tool/mcp-exa.ts index fe56eb22d..638d68c24 100644 --- a/packages/opencode/src/tool/mcp-exa.ts +++ b/packages/opencode/src/tool/mcp-exa.ts @@ -66,9 +66,11 @@ export const call = ( params: { name: tool, arguments: value }, }), ) - const response = yield* HttpClient.filterStatusOk(http).execute(request).pipe( - Effect.timeoutOrElse({ duration: timeout, orElse: () => Effect.die(new Error(`${tool} request timed out`)) }), - ) + const response = yield* HttpClient.filterStatusOk(http) + .execute(request) + .pipe( + Effect.timeoutOrElse({ duration: timeout, orElse: () => Effect.die(new Error(`${tool} request timed out`)) }), + ) const body = yield* response.text return yield* parseSse(body) }) From bf601628db3c187478ff853fe33b91cec652355e Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 11:49:20 -0400 Subject: [PATCH 060/151] refactor(tool): convert codesearch tool internals to Effect (#21811) --- packages/opencode/src/tool/codesearch.ts | 179 +++++++---------------- packages/opencode/src/tool/registry.ts | 3 +- 2 files changed, 58 insertions(+), 124 deletions(-) diff --git a/packages/opencode/src/tool/codesearch.ts b/packages/opencode/src/tool/codesearch.ts index 28dd4eb49..7e167df55 100644 --- a/packages/opencode/src/tool/codesearch.ts +++ b/packages/opencode/src/tool/codesearch.ts @@ -1,132 +1,65 @@ import z from "zod" +import { Effect } from "effect" +import { HttpClient } from "effect/unstable/http" import { Tool } from "./tool" +import * as McpExa from "./mcp-exa" import DESCRIPTION from "./codesearch.txt" -import { abortAfterAny } from "../util/abort" -const API_CONFIG = { - BASE_URL: "https://mcp.exa.ai", - ENDPOINTS: { - CONTEXT: "/mcp", - }, -} as const +export const CodeSearchTool = Tool.defineEffect( + "codesearch", + Effect.gen(function* () { + const http = yield* HttpClient.HttpClient -interface McpCodeRequest { - jsonrpc: string - id: number - method: string - params: { - name: string - arguments: { - query: string - tokensNum: number - } - } -} + return { + description: DESCRIPTION, + parameters: z.object({ + query: z + .string() + .describe( + "Search query to find relevant context for APIs, Libraries, and SDKs. For example, 'React useState hook examples', 'Python pandas dataframe filtering', 'Express.js middleware', 'Next js partial prerendering configuration'", + ), + tokensNum: z + .number() + .min(1000) + .max(50000) + .default(5000) + .describe( + "Number of tokens to return (1000-50000). Default is 5000 tokens. Adjust this value based on how much context you need - use lower values for focused queries and higher values for comprehensive documentation.", + ), + }), + execute: (params: { query: string; tokensNum: number }, ctx: Tool.Context) => + Effect.gen(function* () { + yield* Effect.promise(() => + ctx.ask({ + permission: "codesearch", + patterns: [params.query], + always: ["*"], + metadata: { + query: params.query, + tokensNum: params.tokensNum, + }, + }), + ) -interface McpCodeResponse { - jsonrpc: string - result: { - content: Array<{ - type: string - text: string - }> - } -} + const result = yield* McpExa.call( + http, + "get_code_context_exa", + McpExa.CodeArgs, + { + query: params.query, + tokensNum: params.tokensNum || 5000, + }, + "30 seconds", + ) -export const CodeSearchTool = Tool.define("codesearch", { - description: DESCRIPTION, - parameters: z.object({ - query: z - .string() - .describe( - "Search query to find relevant context for APIs, Libraries, and SDKs. For example, 'React useState hook examples', 'Python pandas dataframe filtering', 'Express.js middleware', 'Next js partial prerendering configuration'", - ), - tokensNum: z - .number() - .min(1000) - .max(50000) - .default(5000) - .describe( - "Number of tokens to return (1000-50000). Default is 5000 tokens. Adjust this value based on how much context you need - use lower values for focused queries and higher values for comprehensive documentation.", - ), - }), - async execute(params, ctx) { - await ctx.ask({ - permission: "codesearch", - patterns: [params.query], - always: ["*"], - metadata: { - query: params.query, - tokensNum: params.tokensNum, - }, - }) - - const codeRequest: McpCodeRequest = { - jsonrpc: "2.0", - id: 1, - method: "tools/call", - params: { - name: "get_code_context_exa", - arguments: { - query: params.query, - tokensNum: params.tokensNum || 5000, - }, - }, - } - - const { signal, clearTimeout } = abortAfterAny(30000, ctx.abort) - - try { - const headers: Record = { - accept: "application/json, text/event-stream", - "content-type": "application/json", - } - - const response = await fetch(`${API_CONFIG.BASE_URL}${API_CONFIG.ENDPOINTS.CONTEXT}`, { - method: "POST", - headers, - body: JSON.stringify(codeRequest), - signal, - }) - - clearTimeout() - - if (!response.ok) { - const errorText = await response.text() - throw new Error(`Code search error (${response.status}): ${errorText}`) - } - - const responseText = await response.text() - - // Parse SSE response - const lines = responseText.split("\n") - for (const line of lines) { - if (line.startsWith("data: ")) { - const data: McpCodeResponse = JSON.parse(line.substring(6)) - if (data.result && data.result.content && data.result.content.length > 0) { - return { - output: data.result.content[0].text, - title: `Code search: ${params.query}`, - metadata: {}, - } + return { + output: + result ?? + "No code snippets or documentation found. Please try a different query, be more specific about the library or programming concept, or check the spelling of framework names.", + title: `Code search: ${params.query}`, + metadata: {}, } - } - } - - return { - output: - "No code snippets or documentation found. Please try a different query, be more specific about the library or programming concept, or check the spelling of framework names.", - title: `Code search: ${params.query}`, - metadata: {}, - } - } catch (error) { - clearTimeout() - - if (error instanceof Error && error.name === "AbortError") { - throw new Error("Code search request timed out") - } - - throw error + }).pipe(Effect.runPromise), } - }, -}) + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 389d3d6cd..7a70c7729 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -102,6 +102,7 @@ export namespace ToolRegistry { const plan = yield* PlanExitTool const webfetch = yield* WebFetchTool const websearch = yield* WebSearchTool + const codesearch = yield* CodeSearchTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -170,7 +171,7 @@ export namespace ToolRegistry { fetch: Tool.init(webfetch), todo: Tool.init(todo), search: Tool.init(websearch), - code: Tool.init(CodeSearchTool), + code: Tool.init(codesearch), skill: Tool.init(SkillTool), patch: Tool.init(ApplyPatchTool), question: Tool.init(question), From 180ded6a27c49c0f95c8af5ff17ccacaa54eceab Mon Sep 17 00:00:00 2001 From: James Long Date: Fri, 10 Apr 2026 13:03:20 -0400 Subject: [PATCH 061/151] rector(core,tui): handle workspace state in project context, add workspace status, improve ui (#21896) --- packages/opencode/specs/tui-plugins.md | 5 +- packages/opencode/src/cli/cmd/tui/app.tsx | 19 +- .../cmd/tui/component/dialog-session-list.tsx | 80 ++++- .../tui/component/dialog-workspace-create.tsx | 121 +++++++ .../tui/component/dialog-workspace-list.tsx | 319 ------------------ .../workspace/dialog-session-list.tsx | 151 --------- .../src/cli/cmd/tui/context/project.tsx | 53 ++- .../opencode/src/cli/cmd/tui/context/sync.tsx | 26 +- .../opencode/src/cli/cmd/tui/plugin/api.tsx | 8 - .../src/cli/cmd/tui/ui/dialog-select.tsx | 53 ++- .../opencode/src/control-plane/workspace.ts | 143 +++++--- packages/opencode/src/server/router.ts | 22 +- .../opencode/src/server/routes/workspace.ts | 22 ++ packages/opencode/src/session/index.ts | 17 +- packages/opencode/src/sync/index.ts | 10 +- .../test/cli/tui/sync-provider.test.tsx | 1 - packages/opencode/test/fixture/tui-plugin.ts | 7 +- .../opencode/test/session/session.test.ts | 23 ++ packages/plugin/src/tui.ts | 4 - packages/sdk/js/src/v2/gen/sdk.gen.ts | 31 ++ packages/sdk/js/src/v2/gen/types.gen.ts | 34 ++ packages/sdk/openapi.json | 88 +++++ 22 files changed, 628 insertions(+), 609 deletions(-) create mode 100644 packages/opencode/src/cli/cmd/tui/component/dialog-workspace-create.tsx delete mode 100644 packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx delete mode 100644 packages/opencode/src/cli/cmd/tui/component/workspace/dialog-session-list.tsx diff --git a/packages/opencode/specs/tui-plugins.md b/packages/opencode/specs/tui-plugins.md index c5420586e..943125b79 100644 --- a/packages/opencode/specs/tui-plugins.md +++ b/packages/opencode/specs/tui-plugins.md @@ -202,7 +202,7 @@ Top-level API groups exposed to `tui(api, options, meta)`: - `api.kv.get`, `set`, `ready` - `api.state` - `api.theme.current`, `selected`, `has`, `set`, `install`, `mode`, `ready` -- `api.client`, `api.scopedClient(workspaceID?)`, `api.workspace.current()`, `api.workspace.set(workspaceID?)` +- `api.client` - `api.event.on(type, handler)` - `api.renderer` - `api.slots.register(plugin)` @@ -270,7 +270,6 @@ Command behavior: - `provider` - `path.{state,config,worktree,directory}` - `vcs?.branch` - - `workspace.list()` / `workspace.get(workspaceID)` - `session.count()` - `session.diff(sessionID)` - `session.todo(sessionID)` @@ -282,8 +281,6 @@ Command behavior: - `lsp()` - `mcp()` - `api.client` always reflects the current runtime client. -- `api.scopedClient(workspaceID?)` creates or reuses a client bound to a workspace. -- `api.workspace.set(...)` rebinds the active workspace; `api.client` follows that rebind. - `api.event.on(type, handler)` subscribes to the TUI event stream and returns an unsubscribe function. - `api.renderer` exposes the raw `CliRenderer`. diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 2f8d1f7bb..8c4f596fd 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -22,7 +22,7 @@ import { DialogProvider, useDialog } from "@tui/ui/dialog" import { DialogProvider as DialogProviderList } from "@tui/component/dialog-provider" import { ErrorComponent } from "@tui/component/error-component" import { PluginRouteMissing } from "@tui/component/plugin-route-missing" -import { ProjectProvider } from "@tui/context/project" +import { ProjectProvider, useProject } from "@tui/context/project" import { useEvent } from "@tui/context/event" import { SDKProvider, useSDK } from "@tui/context/sdk" import { StartupLoading } from "@tui/component/startup-loading" @@ -36,7 +36,6 @@ import { DialogHelp } from "./ui/dialog-help" import { CommandProvider, useCommandDialog } from "@tui/component/dialog-command" import { DialogAgent } from "@tui/component/dialog-agent" import { DialogSessionList } from "@tui/component/dialog-session-list" -import { DialogWorkspaceList } from "@tui/component/dialog-workspace-list" import { DialogConsoleOrg } from "@tui/component/dialog-console-org" import { KeybindProvider, useKeybind } from "@tui/context/keybind" import { ThemeProvider, useTheme } from "@tui/context/theme" @@ -465,22 +464,6 @@ function App(props: { onSnapshot?: () => Promise }) { dialog.replace(() => ) }, }, - ...(Flag.OPENCODE_EXPERIMENTAL_WORKSPACES - ? [ - { - title: "Manage workspaces", - value: "workspace.list", - category: "Workspace", - suggested: true, - slash: { - name: "workspaces", - }, - onSelect: () => { - dialog.replace(() => ) - }, - }, - ] - : []), { title: "New session", suggested: route.data.type === "session", diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx index 775969bfc..9ecb21e82 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx @@ -2,25 +2,31 @@ import { useDialog } from "@tui/ui/dialog" import { DialogSelect } from "@tui/ui/dialog-select" import { useRoute } from "@tui/context/route" import { useSync } from "@tui/context/sync" -import { createMemo, createSignal, createResource, onMount, Show } from "solid-js" +import { createMemo, createResource, createSignal, onMount } from "solid-js" import { Locale } from "@/util/locale" +import { useProject } from "@tui/context/project" import { useKeybind } from "../context/keybind" import { useTheme } from "../context/theme" import { useSDK } from "../context/sdk" +import { Flag } from "@/flag/flag" import { DialogSessionRename } from "./dialog-session-rename" -import { useKV } from "../context/kv" +import { Keybind } from "@/util/keybind" import { createDebouncedSignal } from "../util/signal" +import { useToast } from "../ui/toast" +import { DialogWorkspaceCreate, openWorkspaceSession } from "./dialog-workspace-create" import { Spinner } from "./spinner" +type WorkspaceStatus = "connected" | "connecting" | "disconnected" | "error" + export function DialogSessionList() { const dialog = useDialog() const route = useRoute() const sync = useSync() + const project = useProject() const keybind = useKeybind() const { theme } = useTheme() const sdk = useSDK() - const kv = useKV() - + const toast = useToast() const [toDelete, setToDelete] = createSignal() const [search, setSearch] = createDebouncedSignal("", 150) @@ -31,15 +37,68 @@ export function DialogSessionList() { }) const currentSessionID = createMemo(() => (route.data.type === "session" ? route.data.sessionID : undefined)) - const sessions = createMemo(() => searchResults() ?? sync.data.session) + function createWorkspace() { + dialog.replace(() => ( + + openWorkspaceSession({ + dialog, + route, + sdk, + sync, + toast, + workspaceID, + }) + } + /> + )) + } + const options = createMemo(() => { const today = new Date().toDateString() return sessions() .filter((x) => x.parentID === undefined) .toSorted((a, b) => b.time.updated - a.time.updated) .map((x) => { + const workspace = x.workspaceID ? project.workspace.get(x.workspaceID) : undefined + + let workspaceStatus: WorkspaceStatus | null = null + if (x.workspaceID) { + workspaceStatus = project.workspace.status(x.workspaceID) || "error" + } + + let footer = "" + if (Flag.OPENCODE_EXPERIMENTAL_WORKSPACES) { + if (x.workspaceID) { + let desc = "unknown" + if (workspace) { + desc = `${workspace.type}: ${workspace.name}` + } + + footer = ( + <> + {desc}{" "} + + ■ + + + ) + } + } else { + footer = Locale.time(x.time.updated) + } + const date = new Date(x.time.updated) let category = date.toDateString() if (category === today) { @@ -53,7 +112,7 @@ export function DialogSessionList() { bg: isDeleting ? theme.error : undefined, value: x.id, category, - footer: Locale.time(x.time.updated), + footer, gutter: isWorking ? : undefined, } }) @@ -102,6 +161,15 @@ export function DialogSessionList() { dialog.replace(() => ) }, }, + { + keybind: Keybind.parse("ctrl+w")[0], + title: "new workspace", + side: "right", + disabled: !Flag.OPENCODE_EXPERIMENTAL_WORKSPACES, + onTrigger: () => { + createWorkspace() + }, + }, ]} /> ) diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-create.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-create.tsx new file mode 100644 index 000000000..40cc1013e --- /dev/null +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-create.tsx @@ -0,0 +1,121 @@ +import { createOpencodeClient } from "@opencode-ai/sdk/v2" +import { useDialog } from "@tui/ui/dialog" +import { DialogSelect } from "@tui/ui/dialog-select" +import { useRoute } from "@tui/context/route" +import { useSync } from "@tui/context/sync" +import { useProject } from "@tui/context/project" +import { createMemo, createSignal, onMount } from "solid-js" +import { setTimeout as sleep } from "node:timers/promises" +import { useSDK } from "../context/sdk" +import { useToast } from "../ui/toast" + +function scoped(sdk: ReturnType, sync: ReturnType, workspaceID: string) { + return createOpencodeClient({ + baseUrl: sdk.url, + fetch: sdk.fetch, + directory: sync.path.directory || sdk.directory, + experimental_workspaceID: workspaceID, + }) +} + +export async function openWorkspaceSession(input: { + dialog: ReturnType + route: ReturnType + sdk: ReturnType + sync: ReturnType + toast: ReturnType + workspaceID: string +}) { + const client = scoped(input.sdk, input.sync, input.workspaceID) + while (true) { + const result = await client.session.create({ workspaceID: input.workspaceID }).catch(() => undefined) + if (!result) { + input.toast.show({ + message: "Failed to create workspace session", + variant: "error", + }) + return + } + if (result.response.status >= 500 && result.response.status < 600) { + await sleep(1000) + continue + } + if (!result.data) { + input.toast.show({ + message: "Failed to create workspace session", + variant: "error", + }) + return + } + input.route.navigate({ + type: "session", + sessionID: result.data.id, + }) + input.dialog.clear() + return + } +} + +export function DialogWorkspaceCreate(props: { onSelect: (workspaceID: string) => Promise | void }) { + const dialog = useDialog() + const sync = useSync() + const project = useProject() + const sdk = useSDK() + const toast = useToast() + const [creating, setCreating] = createSignal() + + onMount(() => { + dialog.setSize("medium") + }) + + const options = createMemo(() => { + const type = creating() + if (type) { + return [ + { + title: `Creating ${type} workspace...`, + value: "creating" as const, + description: "This can take a while for remote environments", + }, + ] + } + return [ + { + title: "Worktree", + value: "worktree" as const, + description: "Create a local git worktree", + }, + ] + }) + + const create = async (type: string) => { + if (creating()) return + setCreating(type) + + const result = await sdk.client.experimental.workspace.create({ type, branch: null }).catch(() => undefined) + const workspace = result?.data + if (!workspace) { + setCreating(undefined) + toast.show({ + message: "Failed to create workspace", + variant: "error", + }) + return + } + await project.workspace.sync() + await props.onSelect(workspace.id) + setCreating(undefined) + } + + return ( + { + if (option.value === "creating") return + void create(option.value) + }} + /> + ) +} diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx deleted file mode 100644 index 037cebb72..000000000 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-workspace-list.tsx +++ /dev/null @@ -1,319 +0,0 @@ -import { useDialog } from "@tui/ui/dialog" -import { DialogSelect } from "@tui/ui/dialog-select" -import { useProject } from "@tui/context/project" -import { useRoute } from "@tui/context/route" -import { useSync } from "@tui/context/sync" -import { createEffect, createMemo, createSignal, onMount } from "solid-js" -import { createOpencodeClient, type Session } from "@opencode-ai/sdk/v2" -import { useSDK } from "../context/sdk" -import { useToast } from "../ui/toast" -import { useKeybind } from "../context/keybind" -import { DialogSessionList } from "./workspace/dialog-session-list" -import { setTimeout as sleep } from "node:timers/promises" - -function scoped(sdk: ReturnType, sync: ReturnType, workspaceID?: string) { - return createOpencodeClient({ - baseUrl: sdk.url, - fetch: sdk.fetch, - directory: sync.path.directory || sdk.directory, - experimental_workspaceID: workspaceID, - }) -} - -async function openWorkspace(input: { - dialog: ReturnType - route: ReturnType - sdk: ReturnType - sync: ReturnType - toast: ReturnType - workspaceID: string - forceCreate?: boolean -}) { - const cacheSession = (session: Session) => { - input.sync.set( - "session", - [...input.sync.data.session.filter((item) => item.id !== session.id), session].toSorted((a, b) => - a.id.localeCompare(b.id), - ), - ) - } - - const client = scoped(input.sdk, input.sync, input.workspaceID) - const listed = input.forceCreate ? undefined : await client.session.list({ roots: true, limit: 1 }) - const session = listed?.data?.[0] - if (session?.id) { - cacheSession(session) - input.route.navigate({ - type: "session", - sessionID: session.id, - }) - input.dialog.clear() - return - } - let created: Session | undefined - while (!created) { - const result = await client.session.create({ workspaceID: input.workspaceID }).catch(() => undefined) - if (!result) { - input.toast.show({ - message: "Failed to open workspace", - variant: "error", - }) - return - } - if (result.response.status >= 500 && result.response.status < 600) { - await sleep(1000) - continue - } - if (!result.data) { - input.toast.show({ - message: "Failed to open workspace", - variant: "error", - }) - return - } - created = result.data - } - cacheSession(created) - input.route.navigate({ - type: "session", - sessionID: created.id, - }) - input.dialog.clear() -} - -function DialogWorkspaceCreate(props: { onSelect: (workspaceID: string) => Promise }) { - const dialog = useDialog() - const sync = useSync() - const sdk = useSDK() - const toast = useToast() - const [creating, setCreating] = createSignal() - - onMount(() => { - dialog.setSize("medium") - }) - - const options = createMemo(() => { - const type = creating() - if (type) { - return [ - { - title: `Creating ${type} workspace...`, - value: "creating" as const, - description: "This can take a while for remote environments", - }, - ] - } - return [ - { - title: "Worktree", - value: "worktree" as const, - description: "Create a local git worktree", - }, - ] - }) - - const createWorkspace = async (type: string) => { - if (creating()) return - setCreating(type) - - const result = await sdk.client.experimental.workspace.create({ type, branch: null }).catch((err) => { - console.log(err) - return undefined - }) - console.log(JSON.stringify(result, null, 2)) - const workspace = result?.data - if (!workspace) { - setCreating(undefined) - toast.show({ - message: "Failed to create workspace", - variant: "error", - }) - return - } - await sync.workspace.sync() - await props.onSelect(workspace.id) - setCreating(undefined) - } - - return ( - { - if (option.value === "creating") return - void createWorkspace(option.value) - }} - /> - ) -} - -export function DialogWorkspaceList() { - const dialog = useDialog() - const project = useProject() - const route = useRoute() - const sync = useSync() - const sdk = useSDK() - const toast = useToast() - const keybind = useKeybind() - const [toDelete, setToDelete] = createSignal() - const [counts, setCounts] = createSignal>({}) - - const open = (workspaceID: string, forceCreate?: boolean) => - openWorkspace({ - dialog, - route, - sdk, - sync, - toast, - workspaceID, - forceCreate, - }) - - async function selectWorkspace(workspaceID: string | null) { - if (workspaceID == null) { - project.workspace.set(undefined) - if (localCount() > 0) { - dialog.replace(() => ) - return - } - route.navigate({ - type: "home", - }) - dialog.clear() - return - } - const count = counts()[workspaceID] - if (count && count > 0) { - dialog.replace(() => ) - return - } - - if (count === 0) { - await open(workspaceID) - return - } - const client = scoped(sdk, sync, workspaceID) - const listed = await client.session.list({ roots: true, limit: 1 }).catch(() => undefined) - if (listed?.data?.length) { - dialog.replace(() => ) - return - } - await open(workspaceID) - } - - const currentWorkspaceID = createMemo(() => project.workspace.current()) - - const localCount = createMemo( - () => sync.data.session.filter((session) => !session.workspaceID && !session.parentID).length, - ) - - let run = 0 - createEffect(() => { - const workspaces = sync.data.workspaceList - const next = ++run - if (!workspaces.length) { - setCounts({}) - return - } - setCounts(Object.fromEntries(workspaces.map((workspace) => [workspace.id, undefined]))) - void Promise.all( - workspaces.map(async (workspace) => { - const client = scoped(sdk, sync, workspace.id) - const result = await client.session.list({ roots: true }).catch(() => undefined) - return [workspace.id, result ? (result.data?.length ?? 0) : null] as const - }), - ).then((entries) => { - if (run !== next) return - setCounts(Object.fromEntries(entries)) - }) - }) - - const options = createMemo(() => [ - { - title: "Local", - value: null, - category: "Workspace", - description: "Use the local machine", - footer: `${localCount()} session${localCount() === 1 ? "" : "s"}`, - }, - ...sync.data.workspaceList.map((workspace) => { - const count = counts()[workspace.id] - return { - title: - toDelete() === workspace.id - ? `Delete ${workspace.id}? Press ${keybind.print("session_delete")} again` - : workspace.id, - value: workspace.id, - category: workspace.type, - description: workspace.branch ? `Branch ${workspace.branch}` : undefined, - footer: - count === undefined - ? "Loading sessions..." - : count === null - ? "Sessions unavailable" - : `${count} session${count === 1 ? "" : "s"}`, - } - }), - { - title: "+ New workspace", - value: "__create__", - category: "Actions", - description: "Create a new workspace", - }, - ]) - - onMount(() => { - dialog.setSize("large") - void sync.workspace.sync() - }) - - return ( - { - setToDelete(undefined) - }} - onSelect={(option) => { - setToDelete(undefined) - if (option.value === "__create__") { - dialog.replace(() => open(workspaceID, true)} />) - return - } - void selectWorkspace(option.value) - }} - keybind={[ - { - keybind: keybind.all.session_delete?.[0], - title: "delete", - onTrigger: async (option) => { - if (option.value === "__create__" || option.value === null) return - if (toDelete() !== option.value) { - setToDelete(option.value) - return - } - const result = await sdk.client.experimental.workspace.remove({ id: option.value }).catch(() => undefined) - setToDelete(undefined) - if (result?.error) { - toast.show({ - message: "Failed to delete workspace", - variant: "error", - }) - return - } - if (currentWorkspaceID() === option.value) { - project.workspace.set(undefined) - route.navigate({ - type: "home", - }) - } - await sync.workspace.sync() - }, - }, - ]} - /> - ) -} diff --git a/packages/opencode/src/cli/cmd/tui/component/workspace/dialog-session-list.tsx b/packages/opencode/src/cli/cmd/tui/component/workspace/dialog-session-list.tsx deleted file mode 100644 index 326f094a5..000000000 --- a/packages/opencode/src/cli/cmd/tui/component/workspace/dialog-session-list.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import { useDialog } from "@tui/ui/dialog" -import { DialogSelect } from "@tui/ui/dialog-select" -import { useRoute } from "@tui/context/route" -import { useSync } from "@tui/context/sync" -import { createMemo, createSignal, createResource, onMount, Show } from "solid-js" -import { Locale } from "@/util/locale" -import { useKeybind } from "../../context/keybind" -import { useTheme } from "../../context/theme" -import { useSDK } from "../../context/sdk" -import { DialogSessionRename } from "../dialog-session-rename" -import { useKV } from "../../context/kv" -import { createDebouncedSignal } from "../../util/signal" -import { Spinner } from "../spinner" -import { useToast } from "../../ui/toast" - -export function DialogSessionList(props: { workspaceID?: string; localOnly?: boolean } = {}) { - const dialog = useDialog() - const route = useRoute() - const sync = useSync() - const keybind = useKeybind() - const { theme } = useTheme() - const sdk = useSDK() - const kv = useKV() - const toast = useToast() - const [toDelete, setToDelete] = createSignal() - const [search, setSearch] = createDebouncedSignal("", 150) - - const [listed, listedActions] = createResource( - () => props.workspaceID, - async (workspaceID) => { - if (!workspaceID) return undefined - const result = await sdk.client.session.list({ roots: true }) - return result.data ?? [] - }, - ) - - const [searchResults] = createResource(search, async (query) => { - if (!query || props.localOnly) return undefined - const result = await sdk.client.session.list({ - search: query, - limit: 30, - ...(props.workspaceID ? { roots: true } : {}), - }) - return result.data ?? [] - }) - - const currentSessionID = createMemo(() => (route.data.type === "session" ? route.data.sessionID : undefined)) - - const sessions = createMemo(() => { - if (searchResults()) return searchResults()! - if (props.workspaceID) return listed() ?? [] - if (props.localOnly) return sync.data.session.filter((session) => !session.workspaceID) - return sync.data.session - }) - - const options = createMemo(() => { - const today = new Date().toDateString() - return sessions() - .filter((x) => { - if (x.parentID !== undefined) return false - if (props.workspaceID && listed()) return true - if (props.workspaceID) return x.workspaceID === props.workspaceID - if (props.localOnly) return !x.workspaceID - return true - }) - .toSorted((a, b) => b.time.updated - a.time.updated) - .map((x) => { - const date = new Date(x.time.updated) - let category = date.toDateString() - if (category === today) { - category = "Today" - } - const isDeleting = toDelete() === x.id - const status = sync.data.session_status?.[x.id] - const isWorking = status?.type === "busy" - return { - title: isDeleting ? `Press ${keybind.print("session_delete")} again to confirm` : x.title, - bg: isDeleting ? theme.error : undefined, - value: x.id, - category, - footer: Locale.time(x.time.updated), - gutter: isWorking ? : undefined, - } - }) - }) - - onMount(() => { - dialog.setSize("large") - }) - - return ( - { - setToDelete(undefined) - }} - onSelect={(option) => { - route.navigate({ - type: "session", - sessionID: option.value, - }) - dialog.clear() - }} - keybind={[ - { - keybind: keybind.all.session_delete?.[0], - title: "delete", - onTrigger: async (option) => { - if (toDelete() === option.value) { - const deleted = await sdk.client.session - .delete({ - sessionID: option.value, - }) - .then(() => true) - .catch(() => false) - setToDelete(undefined) - if (!deleted) { - toast.show({ - message: "Failed to delete session", - variant: "error", - }) - return - } - if (props.workspaceID) { - listedActions.mutate((sessions) => sessions?.filter((session) => session.id !== option.value)) - return - } - sync.set( - "session", - sync.data.session.filter((session) => session.id !== option.value), - ) - return - } - setToDelete(option.value) - }, - }, - { - keybind: keybind.all.session_rename?.[0], - title: "rename", - onTrigger: async (option) => { - dialog.replace(() => ) - }, - }, - ]} - /> - ) -} diff --git a/packages/opencode/src/cli/cmd/tui/context/project.tsx b/packages/opencode/src/cli/cmd/tui/context/project.tsx index 522e72401..26e5c075d 100644 --- a/packages/opencode/src/cli/cmd/tui/context/project.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/project.tsx @@ -1,9 +1,11 @@ import { batch } from "solid-js" -import type { Path } from "@opencode-ai/sdk" +import type { Path, Workspace } from "@opencode-ai/sdk/v2" import { createStore, reconcile } from "solid-js/store" import { createSimpleContext } from "./helper" import { useSDK } from "./sdk" +type WorkspaceStatus = "connected" | "connecting" | "disconnected" | "error" + export const { use: useProject, provider: ProjectProvider } = createSimpleContext({ name: "Project", init: () => { @@ -14,17 +16,22 @@ export const { use: useProject, provider: ProjectProvider } = createSimpleContex }, instance: { path: { + home: "", state: "", config: "", worktree: "", directory: sdk.directory ?? "", } satisfies Path, }, - workspace: undefined as string | undefined, + workspace: { + current: undefined as string | undefined, + list: [] as Workspace[], + status: {} as Record, + }, }) async function sync() { - const workspace = store.workspace + const workspace = store.workspace.current const [path, project] = await Promise.all([ sdk.client.path.get({ workspace }), sdk.client.project.current({ workspace }), @@ -36,6 +43,27 @@ export const { use: useProject, provider: ProjectProvider } = createSimpleContex }) } + async function syncWorkspace() { + const listed = await sdk.client.experimental.workspace.list().catch(() => undefined) + if (!listed?.data) return + const status = await sdk.client.experimental.workspace.status().catch(() => undefined) + const next = Object.fromEntries((status?.data ?? []).map((item) => [item.workspaceID, item.status])) + + batch(() => { + setStore("workspace", "list", reconcile(listed.data)) + setStore("workspace", "status", reconcile(next)) + if (!listed.data.some((item) => item.id === store.workspace.current)) { + setStore("workspace", "current", undefined) + } + }) + } + + sdk.event.on("event", (event) => { + if (event.payload.type === "workspace.status") { + setStore("workspace", "status", event.payload.properties.workspaceID, event.payload.properties.status) + } + }) + return { data: store, project() { @@ -51,13 +79,26 @@ export const { use: useProject, provider: ProjectProvider } = createSimpleContex }, workspace: { current() { - return store.workspace + return store.workspace.current }, set(next?: string | null) { const workspace = next ?? undefined - if (store.workspace === workspace) return - setStore("workspace", workspace) + if (store.workspace.current === workspace) return + setStore("workspace", "current", workspace) }, + list() { + return store.workspace.list + }, + get(workspaceID: string) { + return store.workspace.list.find((item) => item.id === workspaceID) + }, + status(workspaceID: string) { + return store.workspace.status[workspaceID] + }, + statuses() { + return store.workspace.status + }, + sync: syncWorkspace, }, sync, } diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx index bbdc74328..498db99a1 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx @@ -17,7 +17,6 @@ import type { ProviderListResponse, ProviderAuthMethod, VcsInfo, - Workspace, } from "@opencode-ai/sdk/v2" import { createStore, produce, reconcile } from "solid-js/store" import { useProject } from "@tui/context/project" @@ -75,7 +74,6 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ [key: string]: McpResource } formatter: FormatterStatus[] - workspaceList: Workspace[] vcs: VcsInfo | undefined }>({ provider_next: { @@ -103,7 +101,6 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ mcp: {}, mcp_resource: {}, formatter: [], - workspaceList: [], vcs: undefined, }) @@ -111,16 +108,6 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ const project = useProject() const sdk = useSDK() - async function syncWorkspaces() { - const workspace = project.workspace.current() - const result = await sdk.client.experimental.workspace.list().catch(() => undefined) - if (!result?.data) return - setStore("workspaceList", reconcile(result.data)) - if (!result.data.some((item) => item.id === workspace)) { - project.workspace.set(undefined) - } - } - event.subscribe((event) => { switch (event.type) { case "server.instance.disposed": @@ -368,7 +355,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ const workspace = project.workspace.current() const start = Date.now() - 30 * 24 * 60 * 60 * 1000 const sessionListPromise = sdk.client.session - .list({ start: start, workspace }) + .list({ start: start }) .then((x) => (x.data ?? []).toSorted((a, b) => a.id.localeCompare(b.id))) // blocking - include session.list when continuing a session @@ -443,7 +430,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }), sdk.client.provider.auth({ workspace }).then((x) => setStore("provider_auth", reconcile(x.data ?? {}))), sdk.client.vcs.get({ workspace }).then((x) => setStore("vcs", reconcile(x.data))), - syncWorkspaces(), + project.workspace.sync(), ]).then(() => { setStore("status", "complete") }) @@ -522,15 +509,6 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ fullSyncedSessions.add(sessionID) }, }, - workspace: { - list() { - return store.workspaceList - }, - get(workspaceID: string) { - return store.workspaceList.find((item) => item.id === workspaceID) - }, - sync: syncWorkspaces, - }, bootstrap, } return result diff --git a/packages/opencode/src/cli/cmd/tui/plugin/api.tsx b/packages/opencode/src/cli/cmd/tui/plugin/api.tsx index e43a9cc37..42bf78adb 100644 --- a/packages/opencode/src/cli/cmd/tui/plugin/api.tsx +++ b/packages/opencode/src/cli/cmd/tui/plugin/api.tsx @@ -146,14 +146,6 @@ function stateApi(sync: ReturnType): TuiPluginApi["state"] { branch: sync.data.vcs.branch, } }, - workspace: { - list() { - return sync.data.workspaceList - }, - get(workspaceID) { - return sync.workspace.get(workspaceID) - }, - }, session: { count() { return sync.data.session.length diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx index 46821ccce..109b5f2f1 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx @@ -26,6 +26,7 @@ export interface DialogSelectProps { keybind?: { keybind?: Keybind.Info title: string + side?: "left" | "right" disabled?: boolean onTrigger: (option: DialogSelectOption) => void }[] @@ -42,6 +43,7 @@ export interface DialogSelectOption { disabled?: boolean bg?: RGBA gutter?: JSX.Element + margin?: JSX.Element onSelect?: (ctx: DialogContext) => void } @@ -234,6 +236,8 @@ export function DialogSelect(props: DialogSelectProps) { props.ref?.(ref) const keybinds = createMemo(() => props.keybind?.filter((x) => !x.disabled && x.keybind) ?? []) + const left = createMemo(() => keybinds().filter((item) => item.side !== "right")) + const right = createMemo(() => keybinds().filter((item) => item.side === "right")) return ( @@ -312,6 +316,7 @@ export function DialogSelect(props: DialogSelectProps) { { setStore("input", "mouse") }} @@ -335,6 +340,11 @@ export function DialogSelect(props: DialogSelectProps) { paddingRight={3} gap={1} > + + + {option.margin} + + diff --git a/packages/opencode/src/control-plane/workspace.ts b/packages/opencode/src/control-plane/workspace.ts index a030d0b6c..bbf79620c 100644 --- a/packages/opencode/src/control-plane/workspace.ts +++ b/packages/opencode/src/control-plane/workspace.ts @@ -5,7 +5,9 @@ import { Database, eq } from "@/storage/db" import { Project } from "@/project/project" import { BusEvent } from "@/bus/bus-event" import { GlobalBus } from "@/bus/global" +import { SyncEvent } from "@/sync" import { Log } from "@/util/log" +import { Filesystem } from "@/util/filesystem" import { ProjectID } from "@/project/schema" import { WorkspaceTable } from "./workspace.sql" import { getAdaptor } from "./adaptors" @@ -14,6 +16,18 @@ import { WorkspaceID } from "./schema" import { parseSSE } from "./sse" export namespace Workspace { + export const Info = WorkspaceInfo.meta({ + ref: "Workspace", + }) + export type Info = z.infer + + export const ConnectionStatus = z.object({ + workspaceID: WorkspaceID.zod, + status: z.enum(["connected", "connecting", "disconnected", "error"]), + error: z.string().optional(), + }) + export type ConnectionStatus = z.infer + export const Event = { Ready: BusEvent.define( "workspace.ready", @@ -27,13 +41,9 @@ export namespace Workspace { message: z.string(), }), ), + Status: BusEvent.define("workspace.status", ConnectionStatus), } - export const Info = WorkspaceInfo.meta({ - ref: "Workspace", - }) - export type Info = z.infer - function fromRow(row: typeof WorkspaceTable.$inferSelect): Info { return { id: row.id, @@ -85,6 +95,9 @@ export namespace Workspace { }) await adaptor.create(config) + + startSync(info) + return info }) @@ -92,18 +105,24 @@ export namespace Workspace { const rows = Database.use((db) => db.select().from(WorkspaceTable).where(eq(WorkspaceTable.project_id, project.id)).all(), ) - return rows.map(fromRow).sort((a, b) => a.id.localeCompare(b.id)) + const spaces = rows.map(fromRow).sort((a, b) => a.id.localeCompare(b.id)) + for (const space of spaces) startSync(space) + return spaces } export const get = fn(WorkspaceID.zod, async (id) => { const row = Database.use((db) => db.select().from(WorkspaceTable).where(eq(WorkspaceTable.id, id)).get()) if (!row) return - return fromRow(row) + const space = fromRow(row) + startSync(space) + return space }) export const remove = fn(WorkspaceID.zod, async (id) => { const row = Database.use((db) => db.select().from(WorkspaceTable).where(eq(WorkspaceTable.id, id)).get()) if (row) { + stopSync(id) + const info = fromRow(row) const adaptor = await getAdaptor(row.type) adaptor.remove(info) @@ -111,58 +130,100 @@ export namespace Workspace { return info } }) + + const connections = new Map() + const aborts = new Map() + + function setStatus(id: WorkspaceID, status: ConnectionStatus["status"], error?: string) { + const prev = connections.get(id) + if (prev?.status === status && prev?.error === error) return + const next = { workspaceID: id, status, error } + connections.set(id, next) + GlobalBus.emit("event", { + directory: "global", + workspace: id, + payload: { + type: Event.Status.type, + properties: next, + }, + }) + } + + export function status(): ConnectionStatus[] { + return [...connections.values()] + } + const log = Log.create({ service: "workspace-sync" }) - async function workspaceEventLoop(space: Info, stop: AbortSignal) { - while (!stop.aborted) { + async function workspaceEventLoop(space: Info, signal: AbortSignal) { + log.info("starting sync: " + space.id) + + while (!signal.aborted) { + log.info("connecting to sync: " + space.id) + + setStatus(space.id, "connecting") const adaptor = await getAdaptor(space.type) - const target = await Promise.resolve(adaptor.target(space)) + const target = await adaptor.target(space) - if (target.type === "local") { - return - } + if (target.type === "local") return - const baseURL = String(target.url).replace(/\/?$/, "/") - - const res = await fetch(new URL(baseURL + "/event"), { - method: "GET", - signal: stop, + const res = await fetch(target.url + "/sync/event", { method: "GET", signal }).catch((err: unknown) => { + setStatus(space.id, "error", String(err)) + return undefined }) + if (!res || !res.ok || !res.body) { + log.info("failed to connect to sync: " + res?.status) - if (!res.ok || !res.body) { + setStatus(space.id, "error", res ? `HTTP ${res.status}` : "no response") await sleep(1000) continue } + setStatus(space.id, "connected") + await parseSSE(res.body, signal, (evt) => { + const event = evt as SyncEvent.SerializedEvent - // await parseSSE(res.body, stop, (event) => { - // GlobalBus.emit("event", { - // directory: space.id, - // payload: event, - // }) - // }) - - // Wait 250ms and retry if SSE connection fails + try { + if (!event.type.startsWith("server.")) { + SyncEvent.replay(event) + } + } catch (err) { + log.warn("failed to replay sync event", { + workspaceID: space.id, + error: err, + }) + } + }) + setStatus(space.id, "disconnected") + log.info("disconnected to sync: " + space.id) await sleep(250) } } - export function startSyncing(project: Project.Info) { - const stop = new AbortController() - const spaces = list(project).filter((space) => space.type !== "worktree") + function startSync(space: Info) { + if (space.type === "worktree") { + void Filesystem.exists(space.directory!).then((exists) => { + setStatus(space.id, exists ? "connected" : "error", exists ? undefined : "directory does not exist") + }) + return + } - spaces.forEach((space) => { - void workspaceEventLoop(space, stop.signal).catch((error) => { - log.warn("workspace sync listener failed", { - workspaceID: space.id, - error, - }) + if (aborts.has(space.id)) return + const abort = new AbortController() + aborts.set(space.id, abort) + setStatus(space.id, "disconnected") + + void workspaceEventLoop(space, abort.signal).catch((error) => { + setStatus(space.id, "error", String(error)) + log.warn("workspace sync listener failed", { + workspaceID: space.id, + error, }) }) + } - return { - async stop() { - stop.abort() - }, - } + function stopSync(id: WorkspaceID) { + aborts.get(id)?.abort() + aborts.delete(id) + connections.delete(id) } } diff --git a/packages/opencode/src/server/router.ts b/packages/opencode/src/server/router.ts index dcc7924c6..f97724c2e 100644 --- a/packages/opencode/src/server/router.ts +++ b/packages/opencode/src/server/router.ts @@ -29,13 +29,20 @@ function local(method: string, path: string) { return false } -async function getSessionWorkspace(url: URL) { +function getSessionID(url: URL) { if (url.pathname === "/session/status") return null const id = url.pathname.match(/^\/session\/([^/]+)(?:\/|$)/)?.[1] if (!id) return null - const session = await Session.get(SessionID.make(id)).catch(() => undefined) + return SessionID.make(id) +} + +async function getSessionWorkspace(url: URL) { + const id = getSessionID(url) + if (!id) return null + + const session = await Session.get(id).catch(() => undefined) return session?.workspaceID } @@ -71,7 +78,18 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware } const workspace = await Workspace.get(WorkspaceID.make(workspaceID)) + if (!workspace) { + // Special-case deleting a session in case user's data in a + // weird state. Allow them to forcefully delete a synced session + // even if the remote workspace is not in their data. + // + // The lets the `DELETE /session/:id` endpoint through and we've + // made sure that it will run without an instance + if (url.pathname.match(/\/session\/[^/]+$/) && c.req.method === "DELETE") { + return routes().fetch(c.req.raw, c.env) + } + return new Response(`Workspace not found: ${workspaceID}`, { status: 500, headers: { diff --git a/packages/opencode/src/server/routes/workspace.ts b/packages/opencode/src/server/routes/workspace.ts index cd2d844ae..419321654 100644 --- a/packages/opencode/src/server/routes/workspace.ts +++ b/packages/opencode/src/server/routes/workspace.ts @@ -62,6 +62,28 @@ export const WorkspaceRoutes = lazy(() => return c.json(Workspace.list(Instance.project)) }, ) + .get( + "/status", + describeRoute({ + summary: "Workspace status", + description: "Get connection status for workspaces in the current project.", + operationId: "experimental.workspace.status", + responses: { + 200: { + description: "Workspace status", + content: { + "application/json": { + schema: resolver(z.array(Workspace.ConnectionStatus)), + }, + }, + }, + }, + }), + async (c) => { + const ids = new Set(Workspace.list(Instance.project).map((item) => item.id)) + return c.json(Workspace.status().filter((item) => ids.has(item.workspaceID))) + }, + ) .delete( "/:id", describeRoute({ diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index bbd6693c5..e57807e31 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -413,26 +413,35 @@ export namespace Session { }) const children = Effect.fn("Session.children")(function* (parentID: SessionID) { - const ctx = yield* InstanceState.context const rows = yield* db((d) => d .select() .from(SessionTable) - .where(and(eq(SessionTable.project_id, ctx.project.id), eq(SessionTable.parent_id, parentID))) + .where(and(eq(SessionTable.parent_id, parentID))) .all(), ) return rows.map(fromRow) }) - const remove: (sessionID: SessionID) => Effect.Effect = Effect.fnUntraced(function* (sessionID: SessionID) { + const remove: Interface["remove"] = Effect.fnUntraced(function* (sessionID: SessionID) { try { const session = yield* get(sessionID) const kids = yield* children(sessionID) for (const child of kids) { yield* remove(child.id) } + + // `remove` needs to work in all cases, such as a broken + // sessions that run cleanup. In certain cases these will + // run without any instance state, so we need to turn off + // publishing of events in that case + const hasInstance = yield* InstanceState.directory.pipe( + Effect.as(true), + Effect.catchCause(() => Effect.succeed(false)), + ) + yield* Effect.sync(() => { - SyncEvent.run(Event.Deleted, { sessionID, info: session }) + SyncEvent.run(Event.Deleted, { sessionID, info: session }, { publish: hasInstance }) SyncEvent.remove(sessionID) }) } catch (e) { diff --git a/packages/opencode/src/sync/index.ts b/packages/opencode/src/sync/index.ts index 270950fd4..a40939191 100644 --- a/packages/opencode/src/sync/index.ts +++ b/packages/opencode/src/sync/index.ts @@ -165,7 +165,7 @@ export namespace SyncEvent { // and it validets all the sequence ids // * when loading events from db, apply zod validation to ensure shape - export function replay(event: SerializedEvent, options?: { republish: boolean }) { + export function replay(event: SerializedEvent, options?: { publish: boolean }) { const def = registry.get(event.type) if (!def) { throw new Error(`Unknown event type: ${event.type}`) @@ -189,10 +189,10 @@ export namespace SyncEvent { throw new Error(`Sequence mismatch for aggregate "${event.aggregateID}": expected ${expected}, got ${event.seq}`) } - process(def, event, { publish: !!options?.republish }) + process(def, event, { publish: !!options?.publish }) } - export function run(def: Def, data: Event["data"]) { + export function run(def: Def, data: Event["data"], options?: { publish?: boolean }) { const agg = (data as Record)[def.aggregate] // This should never happen: we've enforced it via typescript in // the definition @@ -204,6 +204,8 @@ export namespace SyncEvent { throw new Error(`SyncEvent.run: running old versions of events is not allowed: ${def.type}`) } + const { publish = true } = options || {} + // Note that this is an "immediate" transaction which is critical. // We need to make sure we can safely read and write with nothing // else changing the data from under us @@ -218,7 +220,7 @@ export namespace SyncEvent { const seq = row?.seq != null ? row.seq + 1 : 0 const event = { id, seq, aggregateID: agg, data } - process(def, event, { publish: true }) + process(def, event, { publish }) }, { behavior: "immediate", diff --git a/packages/opencode/test/cli/tui/sync-provider.test.tsx b/packages/opencode/test/cli/tui/sync-provider.test.tsx index ec686b368..3ef126ef4 100644 --- a/packages/opencode/test/cli/tui/sync-provider.test.tsx +++ b/packages/opencode/test/cli/tui/sync-provider.test.tsx @@ -244,7 +244,6 @@ describe("SyncProvider", () => { expect(log.some((item) => item.path === "/path" && item.workspace === "ws_a")).toBe(true) expect(log.some((item) => item.path === "/config" && item.workspace === "ws_a")).toBe(true) - expect(log.some((item) => item.path === "/session" && item.workspace === "ws_a")).toBe(true) expect(log.some((item) => item.path === "/command" && item.workspace === "ws_a")).toBe(true) } finally { app.renderer.destroy() diff --git a/packages/opencode/test/fixture/tui-plugin.ts b/packages/opencode/test/fixture/tui-plugin.ts index 7ddcc7733..26913222e 100644 --- a/packages/opencode/test/fixture/tui-plugin.ts +++ b/packages/opencode/test/fixture/tui-plugin.ts @@ -93,7 +93,6 @@ type Opts = { provider?: HostPluginApi["state"]["provider"] path?: HostPluginApi["state"]["path"] vcs?: HostPluginApi["state"]["vcs"] - workspace?: Partial session?: Partial part?: HostPluginApi["state"]["part"] lsp?: HostPluginApi["state"]["lsp"] @@ -277,15 +276,11 @@ export function createTuiPluginApi(opts: Opts = {}): HostPluginApi { return opts.state?.provider ?? [] }, get path() { - return opts.state?.path ?? { state: "", config: "", worktree: "", directory: "" } + return opts.state?.path ?? { home: "", state: "", config: "", worktree: "", directory: "" } }, get vcs() { return opts.state?.vcs }, - workspace: { - list: opts.state?.workspace?.list ?? (() => []), - get: opts.state?.workspace?.get ?? (() => undefined), - }, session: { count: opts.state?.session?.count ?? (() => 0), diff: opts.state?.session?.diff ?? (() => []), diff --git a/packages/opencode/test/session/session.test.ts b/packages/opencode/test/session/session.test.ts index 0c18f92ba..75c74002a 100644 --- a/packages/opencode/test/session/session.test.ts +++ b/packages/opencode/test/session/session.test.ts @@ -6,6 +6,7 @@ import { Log } from "../../src/util/log" import { Instance } from "../../src/project/instance" import { MessageV2 } from "../../src/session/message-v2" import { MessageID, PartID } from "../../src/session/schema" +import { tmpdir } from "../fixture/fixture" const projectRoot = path.join(__dirname, "../..") Log.init({ print: false }) @@ -140,3 +141,25 @@ describe("step-finish token propagation via Bus event", () => { { timeout: 30000 }, ) }) + +describe("Session", () => { + test("remove works without an instance", async () => { + await using tmp = await tmpdir({ git: true }) + + const session = await Instance.provide({ + directory: tmp.path, + fn: async () => Session.create({ title: "remove-without-instance" }), + }) + + await expect(async () => { + await Session.remove(session.id) + }).not.toThrow() + + let missing = false + await Session.get(session.id).catch(() => { + missing = true + }) + + expect(missing).toBe(true) + }) +}) diff --git a/packages/plugin/src/tui.ts b/packages/plugin/src/tui.ts index 8f8439fab..e6f832f7e 100644 --- a/packages/plugin/src/tui.ts +++ b/packages/plugin/src/tui.ts @@ -272,10 +272,6 @@ export type TuiState = { directory: string } readonly vcs: { branch?: string } | undefined - readonly workspace: { - list: () => ReadonlyArray - get: (workspaceID: string) => Workspace | undefined - } session: { count: () => number diff: (sessionID: string) => ReadonlyArray diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts index b2e37db59..d06a504d6 100644 --- a/packages/sdk/js/src/v2/gen/sdk.gen.ts +++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts @@ -34,6 +34,7 @@ import type { ExperimentalWorkspaceListResponses, ExperimentalWorkspaceRemoveErrors, ExperimentalWorkspaceRemoveResponses, + ExperimentalWorkspaceStatusResponses, FileListResponses, FilePartInput, FilePartSource, @@ -1163,6 +1164,36 @@ export class Workspace extends HeyApiClient { }) } + /** + * Workspace status + * + * Get connection status for workspaces in the current project. + */ + public status( + parameters?: { + directory?: string + workspace?: string + }, + options?: Options, + ) { + const params = buildClientParams( + [parameters], + [ + { + args: [ + { in: "query", key: "directory" }, + { in: "query", key: "workspace" }, + ], + }, + ], + ) + return (options?.client ?? this.client).get({ + url: "/experimental/workspace/status", + ...options, + ...params, + }) + } + /** * Remove workspace * diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 823c452f9..c1a77bfe8 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -330,6 +330,15 @@ export type EventWorkspaceFailed = { } } +export type EventWorkspaceStatus = { + type: "workspace.status" + properties: { + workspaceID: string + status: "connected" | "connecting" | "disconnected" | "error" + error?: string + } +} + export type QuestionOption = { /** * Display text (1-5 words, concise) @@ -988,6 +997,7 @@ export type Event = | EventCommandExecuted | EventWorkspaceReady | EventWorkspaceFailed + | EventWorkspaceStatus | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected @@ -2857,6 +2867,30 @@ export type ExperimentalWorkspaceCreateResponses = { export type ExperimentalWorkspaceCreateResponse = ExperimentalWorkspaceCreateResponses[keyof ExperimentalWorkspaceCreateResponses] +export type ExperimentalWorkspaceStatusData = { + body?: never + path?: never + query?: { + directory?: string + workspace?: string + } + url: "/experimental/workspace/status" +} + +export type ExperimentalWorkspaceStatusResponses = { + /** + * Workspace status + */ + 200: Array<{ + workspaceID: string + status: "connected" | "connecting" | "disconnected" | "error" + error?: string + }> +} + +export type ExperimentalWorkspaceStatusResponse = + ExperimentalWorkspaceStatusResponses[keyof ExperimentalWorkspaceStatusResponses] + export type ExperimentalWorkspaceRemoveData = { body?: never path: { diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 40361c280..deece485e 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -1656,6 +1656,64 @@ ] } }, + "/experimental/workspace/status": { + "get": { + "operationId": "experimental.workspace.status", + "parameters": [ + { + "in": "query", + "name": "directory", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "workspace", + "schema": { + "type": "string" + } + } + ], + "summary": "Workspace status", + "description": "Get connection status for workspaces in the current project.", + "responses": { + "200": { + "description": "Workspace status", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "workspaceID": { + "type": "string", + "pattern": "^wrk.*" + }, + "status": { + "type": "string", + "enum": ["connected", "connecting", "disconnected", "error"] + }, + "error": { + "type": "string" + } + }, + "required": ["workspaceID", "status"] + } + } + } + } + } + }, + "x-codeSamples": [ + { + "lang": "js", + "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.workspace.status({\n ...\n})" + } + ] + } + }, "/experimental/workspace/{id}": { "delete": { "operationId": "experimental.workspace.remove", @@ -7966,6 +8024,33 @@ }, "required": ["type", "properties"] }, + "Event.workspace.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.status" + }, + "properties": { + "type": "object", + "properties": { + "workspaceID": { + "type": "string", + "pattern": "^wrk.*" + }, + "status": { + "type": "string", + "enum": ["connected", "connecting", "disconnected", "error"] + }, + "error": { + "type": "string" + } + }, + "required": ["workspaceID", "status"] + } + }, + "required": ["type", "properties"] + }, "QuestionOption": { "type": "object", "properties": { @@ -9858,6 +9943,9 @@ { "$ref": "#/components/schemas/Event.workspace.failed" }, + { + "$ref": "#/components/schemas/Event.workspace.status" + }, { "$ref": "#/components/schemas/Event.question.asked" }, From f7514d9ecaaac58663fe8e3ee94536de80cc2fc9 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 13:26:31 -0400 Subject: [PATCH 062/151] refactor(tool): convert bash to defineEffect with ChildProcessSpawner (#21895) --- packages/opencode/src/effect/run-service.ts | 2 +- packages/opencode/src/tool/bash.ts | 450 +++++++++--------- packages/opencode/src/tool/registry.ts | 7 +- .../test/session/prompt-effect.test.ts | 1 + .../test/session/snapshot-tool-race.test.ts | 1 + packages/opencode/test/tool/bash.test.ts | 90 ++-- 6 files changed, 291 insertions(+), 260 deletions(-) diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index c16adec62..7dffa8cae 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -8,7 +8,7 @@ import { WorkspaceContext } from "@/control-plane/workspace-context" export const memoMap = Layer.makeMemoMapUnsafe() -function attach(effect: Effect.Effect): Effect.Effect { +export function attach(effect: Effect.Effect): Effect.Effect { try { const ctx = Instance.current const workspaceID = WorkspaceContext.workspaceID diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index 365fda329..8e79ffd62 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -8,8 +8,7 @@ import { Instance } from "../project/instance" import { lazy } from "@/util/lazy" import { Language, type Node } from "web-tree-sitter" -import { Filesystem } from "@/util/filesystem" -import { Process } from "@/util/process" +import { AppFileSystem } from "@/filesystem" import { fileURLToPath } from "url" import { Flag } from "@/flag/flag" import { Shell } from "@/shell/shell" @@ -17,9 +16,9 @@ import { Shell } from "@/shell/shell" import { BashArity } from "@/permission/arity" import { Truncate } from "./truncate" import { Plugin } from "@/plugin" -import { Cause, Effect, Exit, Stream } from "effect" -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" +import { Effect, Stream } from "effect" +import { ChildProcess } from "effect/unstable/process" +import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" const MAX_METADATA_LENGTH = 30_000 const DEFAULT_TIMEOUT = Flag.OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS || 2 * 60 * 1000 @@ -183,33 +182,6 @@ function prefix(text: string) { return text.slice(0, match.index) } -async function cygpath(shell: string, text: string) { - const out = await Process.text([shell, "-lc", 'cygpath -w -- "$1"', "_", text], { nothrow: true }) - if (out.code !== 0) return - const file = out.text.trim() - if (!file) return - return Filesystem.normalizePath(file) -} - -async function resolvePath(text: string, root: string, shell: string) { - if (process.platform === "win32") { - if (Shell.posix(shell) && text.startsWith("/") && Filesystem.windowsPath(text) === text) { - const file = await cygpath(shell, text) - if (file) return file - } - return Filesystem.normalizePath(path.resolve(root, Filesystem.windowsPath(text))) - } - return path.resolve(root, text) -} - -async function argPath(arg: string, cwd: string, ps: boolean, shell: string) { - const text = ps ? expand(arg, cwd, shell) : home(unquote(arg)) - const file = text && prefix(text) - if (!file || dynamic(file, ps)) return - const next = ps ? provider(file) : file - if (!next) return - return resolvePath(next, cwd, shell) -} function pathArgs(list: Part[], ps: boolean) { if (!ps) { @@ -238,78 +210,45 @@ function pathArgs(list: Part[], ps: boolean) { return out } -async function collect(root: Node, cwd: string, ps: boolean, shell: string): Promise { - const scan: Scan = { - dirs: new Set(), - patterns: new Set(), - always: new Set(), - } - - for (const node of commands(root)) { - const command = parts(node) - const tokens = command.map((item) => item.text) - const cmd = ps ? tokens[0]?.toLowerCase() : tokens[0] - - if (cmd && FILES.has(cmd)) { - for (const arg of pathArgs(command, ps)) { - const resolved = await argPath(arg, cwd, ps, shell) - log.info("resolved path", { arg, resolved }) - if (!resolved || Instance.containsPath(resolved)) continue - const dir = (await Filesystem.isDir(resolved)) ? resolved : path.dirname(resolved) - scan.dirs.add(dir) - } - } - - if (tokens.length && (!cmd || !CWD.has(cmd))) { - scan.patterns.add(source(node)) - scan.always.add(BashArity.prefix(tokens).join(" ") + " *") - } - } - - return scan -} function preview(text: string) { if (text.length <= MAX_METADATA_LENGTH) return text return text.slice(0, MAX_METADATA_LENGTH) + "\n\n..." } -async function parse(command: string, ps: boolean) { - const tree = await parser().then((p) => (ps ? p.ps : p.bash).parse(command)) +const parse = Effect.fn("BashTool.parse")(function* (command: string, ps: boolean) { + const tree = yield* Effect.promise(() => parser().then((p) => (ps ? p.ps : p.bash).parse(command))) if (!tree) throw new Error("Failed to parse command") return tree.rootNode -} +}) -async function ask(ctx: Tool.Context, scan: Scan) { +const ask = Effect.fn("BashTool.ask")(function* (ctx: Tool.Context, scan: Scan) { if (scan.dirs.size > 0) { const globs = Array.from(scan.dirs).map((dir) => { - if (process.platform === "win32") return Filesystem.normalizePathPattern(path.join(dir, "*")) + if (process.platform === "win32") return AppFileSystem.normalizePathPattern(path.join(dir, "*")) return path.join(dir, "*") }) - await ctx.ask({ - permission: "external_directory", - patterns: globs, - always: globs, - metadata: {}, - }) + yield* Effect.promise(() => + ctx.ask({ + permission: "external_directory", + patterns: globs, + always: globs, + metadata: {}, + }), + ) } if (scan.patterns.size === 0) return - await ctx.ask({ - permission: "bash", - patterns: Array.from(scan.patterns), - always: Array.from(scan.always), - metadata: {}, - }) -} + yield* Effect.promise(() => + ctx.ask({ + permission: "bash", + patterns: Array.from(scan.patterns), + always: Array.from(scan.always), + metadata: {}, + }), + ) +}) -async function shellEnv(ctx: Tool.Context, cwd: string) { - const extra = await Plugin.trigger("shell.env", { cwd, sessionID: ctx.sessionID, callID: ctx.callID }, { env: {} }) - return { - ...process.env, - ...extra.env, - } -} function cmd(shell: string, name: string, command: string, cwd: string, env: NodeJS.ProcessEnv) { if (process.platform === "win32" && PS.has(name)) { @@ -330,99 +269,6 @@ function cmd(shell: string, name: string, command: string, cwd: string, env: Nod }) } -async function run( - input: { - shell: string - name: string - command: string - cwd: string - env: NodeJS.ProcessEnv - timeout: number - description: string - }, - ctx: Tool.Context, -) { - let output = "" - let expired = false - let aborted = false - - ctx.metadata({ - metadata: { - output: "", - description: input.description, - }, - }) - - const exit = await CrossSpawnSpawner.runPromiseExit((spawner) => - Effect.gen(function* () { - const handle = yield* spawner.spawn(cmd(input.shell, input.name, input.command, input.cwd, input.env)) - - yield* Effect.forkScoped( - Stream.runForEach(Stream.decodeText(handle.all), (chunk) => - Effect.sync(() => { - output += chunk - ctx.metadata({ - metadata: { - output: preview(output), - description: input.description, - }, - }) - }), - ), - ) - - const abort = Effect.callback((resume) => { - if (ctx.abort.aborted) return resume(Effect.void) - const handler = () => resume(Effect.void) - ctx.abort.addEventListener("abort", handler, { once: true }) - return Effect.sync(() => ctx.abort.removeEventListener("abort", handler)) - }) - - const timeout = Effect.sleep(`${input.timeout + 100} millis`) - - const exit = yield* Effect.raceAll([ - handle.exitCode.pipe(Effect.map((code) => ({ kind: "exit" as const, code }))), - abort.pipe(Effect.map(() => ({ kind: "abort" as const, code: null }))), - timeout.pipe(Effect.map(() => ({ kind: "timeout" as const, code: null }))), - ]) - - if (exit.kind === "abort") { - aborted = true - yield* handle.kill({ forceKillAfter: "3 seconds" }).pipe(Effect.orDie) - } - if (exit.kind === "timeout") { - expired = true - yield* handle.kill({ forceKillAfter: "3 seconds" }).pipe(Effect.orDie) - } - - return exit.kind === "exit" ? exit.code : null - }).pipe(Effect.scoped, Effect.orDie), - ) - - let code: number | null = null - if (Exit.isSuccess(exit)) { - code = exit.value - } else if (!Cause.hasInterruptsOnly(exit.cause)) { - throw Cause.squash(exit.cause) - } - - const meta: string[] = [] - if (expired) meta.push(`bash tool terminated command after exceeding timeout ${input.timeout} ms`) - if (aborted) meta.push("User aborted the command") - if (meta.length > 0) { - output += "\n\n\n" + meta.join("\n") + "\n" - } - - return { - title: input.description, - metadata: { - output: preview(output), - exit: code, - description: input.description, - }, - output, - } -} const parser = lazy(async () => { const { Parser } = await import("web-tree-sitter") @@ -452,47 +298,211 @@ const parser = lazy(async () => { }) // TODO: we may wanna rename this tool so it works better on other shells -export const BashTool = Tool.define("bash", async () => { - const shell = Shell.acceptable() - const name = Shell.name(shell) - const chain = - name === "powershell" - ? "If the commands depend on each other and must run sequentially, avoid '&&' in this shell because Windows PowerShell 5.1 does not support it. Use PowerShell conditionals such as `cmd1; if ($?) { cmd2 }` when later commands must depend on earlier success." - : "If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together (e.g., `git add . && git commit -m \"message\" && git push`). For instance, if one operation must complete before another starts (like mkdir before cp, Write before Bash for git operations, or git add before git commit), run these operations sequentially instead." - log.info("bash tool using shell", { shell }) +export const BashTool = Tool.defineEffect( + "bash", + Effect.gen(function* () { + const spawner = yield* ChildProcessSpawner + const fs = yield* AppFileSystem.Service + const plugin = yield* Plugin.Service - return { - description: DESCRIPTION.replaceAll("${directory}", Instance.directory) - .replaceAll("${os}", process.platform) - .replaceAll("${shell}", name) - .replaceAll("${chaining}", chain) - .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) - .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), - parameters: Parameters, - async execute(params, ctx) { - const cwd = params.workdir ? await resolvePath(params.workdir, Instance.directory, shell) : Instance.directory - if (params.timeout !== undefined && params.timeout < 0) { - throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) + const cygpath = Effect.fn("BashTool.cygpath")(function* (shell: string, text: string) { + const lines = yield* spawner.lines( + ChildProcess.make(shell, ["-lc", 'cygpath -w -- "$1"', "_", text]), + ).pipe(Effect.catch(() => Effect.succeed([] as string[]))) + const file = lines[0]?.trim() + if (!file) return + return AppFileSystem.normalizePath(file) + }) + + const resolvePath = Effect.fn("BashTool.resolvePath")(function* (text: string, root: string, shell: string) { + if (process.platform === "win32") { + if (Shell.posix(shell) && text.startsWith("/") && AppFileSystem.windowsPath(text) === text) { + const file = yield* cygpath(shell, text) + if (file) return file + } + return AppFileSystem.normalizePath(path.resolve(root, AppFileSystem.windowsPath(text))) } - const timeout = params.timeout ?? DEFAULT_TIMEOUT - const ps = PS.has(name) - const root = await parse(params.command, ps) - const scan = await collect(root, cwd, ps, shell) - if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) - await ask(ctx, scan) + return path.resolve(root, text) + }) - return run( - { - shell, - name, - command: params.command, - cwd, - env: await shellEnv(ctx, cwd), - timeout, - description: params.description, + const argPath = Effect.fn("BashTool.argPath")(function* (arg: string, cwd: string, ps: boolean, shell: string) { + const text = ps ? expand(arg, cwd, shell) : home(unquote(arg)) + const file = text && prefix(text) + if (!file || dynamic(file, ps)) return + const next = ps ? provider(file) : file + if (!next) return + return yield* resolvePath(next, cwd, shell) + }) + + const collect = Effect.fn("BashTool.collect")(function* (root: Node, cwd: string, ps: boolean, shell: string) { + const scan: Scan = { + dirs: new Set(), + patterns: new Set(), + always: new Set(), + } + + for (const node of commands(root)) { + const command = parts(node) + const tokens = command.map((item) => item.text) + const cmd = ps ? tokens[0]?.toLowerCase() : tokens[0] + + if (cmd && FILES.has(cmd)) { + for (const arg of pathArgs(command, ps)) { + const resolved = yield* argPath(arg, cwd, ps, shell) + log.info("resolved path", { arg, resolved }) + if (!resolved || Instance.containsPath(resolved)) continue + const dir = (yield* fs.isDir(resolved)) ? resolved : path.dirname(resolved) + scan.dirs.add(dir) + } + } + + if (tokens.length && (!cmd || !CWD.has(cmd))) { + scan.patterns.add(source(node)) + scan.always.add(BashArity.prefix(tokens).join(" ") + " *") + } + } + + return scan + }) + + const shellEnv = Effect.fn("BashTool.shellEnv")(function* (ctx: Tool.Context, cwd: string) { + const extra = yield* plugin.trigger("shell.env", { cwd, sessionID: ctx.sessionID, callID: ctx.callID }, { env: {} }) + return { + ...process.env, + ...extra.env, + } + }) + + const run = Effect.fn("BashTool.run")(function* ( + input: { + shell: string + name: string + command: string + cwd: string + env: NodeJS.ProcessEnv + timeout: number + description: string + }, + ctx: Tool.Context, + ) { + let output = "" + let expired = false + let aborted = false + + ctx.metadata({ + metadata: { + output: "", + description: input.description, }, - ctx, - ) - }, - } -}) + }) + + const code: number | null = yield* Effect.scoped( + Effect.gen(function* () { + const handle = yield* spawner.spawn(cmd(input.shell, input.name, input.command, input.cwd, input.env)) + + yield* Effect.forkScoped( + Stream.runForEach(Stream.decodeText(handle.all), (chunk) => + Effect.sync(() => { + output += chunk + ctx.metadata({ + metadata: { + output: preview(output), + description: input.description, + }, + }) + }), + ), + ) + + const abort = Effect.callback((resume) => { + if (ctx.abort.aborted) return resume(Effect.void) + const handler = () => resume(Effect.void) + ctx.abort.addEventListener("abort", handler, { once: true }) + return Effect.sync(() => ctx.abort.removeEventListener("abort", handler)) + }) + + const timeout = Effect.sleep(`${input.timeout + 100} millis`) + + const exit = yield* Effect.raceAll([ + handle.exitCode.pipe(Effect.map((code) => ({ kind: "exit" as const, code }))), + abort.pipe(Effect.map(() => ({ kind: "abort" as const, code: null }))), + timeout.pipe(Effect.map(() => ({ kind: "timeout" as const, code: null }))), + ]) + + if (exit.kind === "abort") { + aborted = true + yield* handle.kill({ forceKillAfter: "3 seconds" }).pipe(Effect.orDie) + } + if (exit.kind === "timeout") { + expired = true + yield* handle.kill({ forceKillAfter: "3 seconds" }).pipe(Effect.orDie) + } + + return exit.kind === "exit" ? exit.code : null + }), + ).pipe(Effect.orDie) + + const meta: string[] = [] + if (expired) meta.push(`bash tool terminated command after exceeding timeout ${input.timeout} ms`) + if (aborted) meta.push("User aborted the command") + if (meta.length > 0) { + output += "\n\n\n" + meta.join("\n") + "\n" + } + + return { + title: input.description, + metadata: { + output: preview(output), + exit: code, + description: input.description, + }, + output, + } + }) + + return async () => { + const shell = Shell.acceptable() + const name = Shell.name(shell) + const chain = + name === "powershell" + ? "If the commands depend on each other and must run sequentially, avoid '&&' in this shell because Windows PowerShell 5.1 does not support it. Use PowerShell conditionals such as `cmd1; if ($?) { cmd2 }` when later commands must depend on earlier success." + : "If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together (e.g., `git add . && git commit -m \"message\" && git push`). For instance, if one operation must complete before another starts (like mkdir before cp, Write before Bash for git operations, or git add before git commit), run these operations sequentially instead." + log.info("bash tool using shell", { shell }) + + return { + description: DESCRIPTION.replaceAll("${directory}", Instance.directory) + .replaceAll("${os}", process.platform) + .replaceAll("${shell}", name) + .replaceAll("${chaining}", chain) + .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) + .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const cwd = params.workdir + ? yield* resolvePath(params.workdir, Instance.directory, shell) + : Instance.directory + if (params.timeout !== undefined && params.timeout < 0) { + throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) + } + const timeout = params.timeout ?? DEFAULT_TIMEOUT + const ps = PS.has(name) + const root = yield* parse(params.command, ps) + const scan = yield* collect(root, cwd, ps, shell) + if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) + yield* ask(ctx, scan) + + return yield* run({ + shell, + name, + command: params.command, + cwd, + env: yield* shellEnv(ctx, cwd), + timeout, + description: params.description, + }, ctx) + }).pipe(Effect.orDie, Effect.runPromise), + } + } + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 7a70c7729..e47eb744e 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -31,6 +31,8 @@ import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, ServiceMap } from "effect" import { FetchHttpClient, HttpClient } from "effect/unstable/http" +import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" +import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { Env } from "../env" @@ -86,6 +88,7 @@ export namespace ToolRegistry { | Instruction.Service | AppFileSystem.Service | HttpClient.HttpClient + | ChildProcessSpawner > = Layer.effect( Service, Effect.gen(function* () { @@ -102,6 +105,7 @@ export namespace ToolRegistry { const plan = yield* PlanExitTool const webfetch = yield* WebFetchTool const websearch = yield* WebSearchTool + const bash = yield* BashTool const codesearch = yield* CodeSearchTool const state = yield* InstanceState.make( @@ -161,7 +165,7 @@ export namespace ToolRegistry { const tool = yield* Effect.all({ invalid: Tool.init(InvalidTool), - bash: Tool.init(BashTool), + bash: Tool.init(bash), read: Tool.init(read), glob: Tool.init(GlobTool), grep: Tool.init(GrepTool), @@ -315,6 +319,7 @@ export namespace ToolRegistry { Layer.provide(Instruction.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), Layer.provide(FetchHttpClient.layer), + Layer.provide(CrossSpawnSpawner.defaultLayer), ), ) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index c114af651..c26a5fd03 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -171,6 +171,7 @@ function makeHttp() { const registry = ToolRegistry.layer.pipe( Layer.provide(Skill.defaultLayer), Layer.provide(FetchHttpClient.layer), + Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index b8ee6b284..911acba31 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -135,6 +135,7 @@ function makeHttp() { const registry = ToolRegistry.layer.pipe( Layer.provide(Skill.defaultLayer), Layer.provide(FetchHttpClient.layer), + Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index e4ba881fb..abdc69061 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "bun:test" +import { Effect, Layer, ManagedRuntime } from "effect" import os from "os" import path from "path" import { Shell } from "../../src/shell/shell" @@ -9,6 +10,19 @@ import { tmpdir } from "../fixture/fixture" import type { Permission } from "../../src/permission" import { Truncate } from "../../src/tool/truncate" import { SessionID, MessageID } from "../../src/session/schema" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" +import { AppFileSystem } from "../../src/filesystem" +import { Plugin } from "../../src/plugin" + +const runtime = ManagedRuntime.make( + Layer.mergeAll(CrossSpawnSpawner.defaultLayer, AppFileSystem.defaultLayer, Plugin.defaultLayer), +) + +function initBash() { + return runtime.runPromise( + BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init()))), + ) +} const ctx = { sessionID: SessionID.make("ses_test"), @@ -118,7 +132,7 @@ describe("tool.bash", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const result = await bash.execute( { command: "echo test", @@ -139,7 +153,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -160,7 +174,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -184,7 +198,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -208,7 +222,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] const file = process.platform === "win32" ? `${process.env.WINDIR!.replaceAll("\\", "/")}/*` : "/etc/*" @@ -242,7 +256,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const file = path.join(outerTmp.path, "outside.txt").replaceAll("\\", "/") const requests: Array> = [] await bash.execute( @@ -273,7 +287,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -301,7 +315,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] const file = `${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini` await bash.execute( @@ -331,7 +345,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -359,7 +373,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -388,7 +402,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -416,7 +430,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -448,7 +462,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] const root = path.parse(process.env.WINDIR!).root.replace(/[\\/]+$/, "") @@ -481,7 +495,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -508,7 +522,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -538,7 +552,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -568,7 +582,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -597,7 +611,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -622,7 +636,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -645,7 +659,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -673,7 +687,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const want = Filesystem.normalizePathPattern(path.join(outerTmp.path, "*")) for (const dir of forms(outerTmp.path)) { @@ -707,7 +721,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) @@ -737,7 +751,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) @@ -772,7 +786,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] const filepath = path.join(outerTmp.path, "outside.txt") @@ -803,7 +817,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -823,7 +837,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -844,7 +858,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute( { @@ -864,7 +878,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const err = new Error("stop after permission") const requests: Array> = [] await expect( @@ -885,7 +899,7 @@ describe("tool.bash permissions", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const requests: Array> = [] await bash.execute({ command: "ls -la", description: "List" }, capture(requests)) const bashReq = requests.find((r) => r.permission === "bash") @@ -901,7 +915,7 @@ describe("tool.bash abort", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const controller = new AbortController() const collected: string[] = [] const result = bash.execute( @@ -933,7 +947,7 @@ describe("tool.bash abort", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const result = await bash.execute( { command: `echo started && sleep 60`, @@ -952,7 +966,7 @@ describe("tool.bash abort", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const result = await bash.execute( { command: `echo stdout_msg && echo stderr_msg >&2`, @@ -971,7 +985,7 @@ describe("tool.bash abort", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const result = await bash.execute( { command: `exit 42`, @@ -988,7 +1002,7 @@ describe("tool.bash abort", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const updates: string[] = [] const result = await bash.execute( { @@ -1016,7 +1030,7 @@ describe("tool.bash truncation", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const lineCount = Truncate.MAX_LINES + 500 const result = await bash.execute( { @@ -1036,7 +1050,7 @@ describe("tool.bash truncation", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const byteCount = Truncate.MAX_BYTES + 10000 const result = await bash.execute( { @@ -1056,7 +1070,7 @@ describe("tool.bash truncation", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const result = await bash.execute( { command: "echo hello", @@ -1074,7 +1088,7 @@ describe("tool.bash truncation", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const bash = await BashTool.init() + const bash = await initBash() const lineCount = Truncate.MAX_LINES + 100 const result = await bash.execute( { From 59d08683eaa7dce988641c53dbaea3c64f24f58e Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 17:27:31 +0000 Subject: [PATCH 063/151] chore: generate --- packages/opencode/src/tool/bash.ts | 67 +++++++++++++----------- packages/opencode/test/tool/bash.test.ts | 4 +- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index 8e79ffd62..abcb9e327 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -182,7 +182,6 @@ function prefix(text: string) { return text.slice(0, match.index) } - function pathArgs(list: Part[], ps: boolean) { if (!ps) { return list @@ -210,7 +209,6 @@ function pathArgs(list: Part[], ps: boolean) { return out } - function preview(text: string) { if (text.length <= MAX_METADATA_LENGTH) return text return text.slice(0, MAX_METADATA_LENGTH) + "\n\n..." @@ -249,7 +247,6 @@ const ask = Effect.fn("BashTool.ask")(function* (ctx: Tool.Context, scan: Scan) ) }) - function cmd(shell: string, name: string, command: string, cwd: string, env: NodeJS.ProcessEnv) { if (process.platform === "win32" && PS.has(name)) { return ChildProcess.make(shell, ["-NoLogo", "-NoProfile", "-NonInteractive", "-Command", command], { @@ -269,7 +266,6 @@ function cmd(shell: string, name: string, command: string, cwd: string, env: Nod }) } - const parser = lazy(async () => { const { Parser } = await import("web-tree-sitter") const { default: treeWasm } = await import("web-tree-sitter/tree-sitter.wasm" as string, { @@ -306,9 +302,9 @@ export const BashTool = Tool.defineEffect( const plugin = yield* Plugin.Service const cygpath = Effect.fn("BashTool.cygpath")(function* (shell: string, text: string) { - const lines = yield* spawner.lines( - ChildProcess.make(shell, ["-lc", 'cygpath -w -- "$1"', "_", text]), - ).pipe(Effect.catch(() => Effect.succeed([] as string[]))) + const lines = yield* spawner + .lines(ChildProcess.make(shell, ["-lc", 'cygpath -w -- "$1"', "_", text])) + .pipe(Effect.catch(() => Effect.succeed([] as string[]))) const file = lines[0]?.trim() if (!file) return return AppFileSystem.normalizePath(file) @@ -366,7 +362,11 @@ export const BashTool = Tool.defineEffect( }) const shellEnv = Effect.fn("BashTool.shellEnv")(function* (ctx: Tool.Context, cwd: string) { - const extra = yield* plugin.trigger("shell.env", { cwd, sessionID: ctx.sessionID, callID: ctx.callID }, { env: {} }) + const extra = yield* plugin.trigger( + "shell.env", + { cwd, sessionID: ctx.sessionID, callID: ctx.callID }, + { env: {} }, + ) return { ...process.env, ...extra.env, @@ -477,31 +477,34 @@ export const BashTool = Tool.defineEffect( .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), parameters: Parameters, - execute: (params: z.infer, ctx: Tool.Context) => - Effect.gen(function* () { - const cwd = params.workdir - ? yield* resolvePath(params.workdir, Instance.directory, shell) - : Instance.directory - if (params.timeout !== undefined && params.timeout < 0) { - throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) - } - const timeout = params.timeout ?? DEFAULT_TIMEOUT - const ps = PS.has(name) - const root = yield* parse(params.command, ps) - const scan = yield* collect(root, cwd, ps, shell) - if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) - yield* ask(ctx, scan) + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const cwd = params.workdir + ? yield* resolvePath(params.workdir, Instance.directory, shell) + : Instance.directory + if (params.timeout !== undefined && params.timeout < 0) { + throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) + } + const timeout = params.timeout ?? DEFAULT_TIMEOUT + const ps = PS.has(name) + const root = yield* parse(params.command, ps) + const scan = yield* collect(root, cwd, ps, shell) + if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) + yield* ask(ctx, scan) - return yield* run({ - shell, - name, - command: params.command, - cwd, - env: yield* shellEnv(ctx, cwd), - timeout, - description: params.description, - }, ctx) - }).pipe(Effect.orDie, Effect.runPromise), + return yield* run( + { + shell, + name, + command: params.command, + cwd, + env: yield* shellEnv(ctx, cwd), + timeout, + description: params.description, + }, + ctx, + ) + }).pipe(Effect.orDie, Effect.runPromise), } } }), diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index abdc69061..15518fa57 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -19,9 +19,7 @@ const runtime = ManagedRuntime.make( ) function initBash() { - return runtime.runPromise( - BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init()))), - ) + return runtime.runPromise(BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init())))) } const ctx = { From 847f1d99c9d4f8a55cff59d1d895ccd6895f927b Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 13:56:42 -0400 Subject: [PATCH 064/151] convert glob tool to Tool.defineEffect (#21897) --- packages/opencode/src/file/ripgrep.ts | 70 ++++++++ packages/opencode/src/tool/glob.ts | 150 ++++++++++-------- packages/opencode/src/tool/registry.ts | 6 +- packages/opencode/test/file/ripgrep.test.ts | 45 ++++++ .../test/session/prompt-effect.test.ts | 2 + .../test/session/snapshot-tool-race.test.ts | 2 + 6 files changed, 206 insertions(+), 69 deletions(-) diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts index 601c82e94..8a2d9407a 100644 --- a/packages/opencode/src/file/ripgrep.ts +++ b/packages/opencode/src/file/ripgrep.ts @@ -3,10 +3,17 @@ import path from "path" import { Global } from "../global" import fs from "fs/promises" import z from "zod" +import { Effect, Layer, ServiceMap } from "effect" +import * as Stream from "effect/Stream" +import { ChildProcess } from "effect/unstable/process" +import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" +import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" +import type { PlatformError } from "effect/PlatformError" import { NamedError } from "@opencode-ai/util/error" import { lazy } from "../util/lazy" import { Filesystem } from "../util/filesystem" +import { AppFileSystem } from "../filesystem" import { Process } from "../util/process" import { which } from "../util/which" import { text } from "node:stream/consumers" @@ -274,6 +281,69 @@ export namespace Ripgrep { input.signal?.throwIfAborted() } + export interface Interface { + readonly files: (input: { + cwd: string + glob?: string[] + hidden?: boolean + follow?: boolean + maxDepth?: number + }) => Stream.Stream + } + + export class Service extends ServiceMap.Service()("@opencode/Ripgrep") {} + + export const layer: Layer.Layer = Layer.effect( + Service, + Effect.gen(function* () { + const spawner = yield* ChildProcessSpawner + const afs = yield* AppFileSystem.Service + + const files = Effect.fn("Ripgrep.files")(function* (input: { + cwd: string + glob?: string[] + hidden?: boolean + follow?: boolean + maxDepth?: number + }) { + const rgPath = yield* Effect.promise(() => filepath()) + const isDir = yield* afs.isDir(input.cwd) + if (!isDir) { + return yield* Effect.die( + Object.assign(new Error(`No such file or directory: '${input.cwd}'`), { + code: "ENOENT" as const, + errno: -2, + path: input.cwd, + }), + ) + } + + const args = [rgPath, "--files", "--glob=!.git/*"] + if (input.follow) args.push("--follow") + if (input.hidden !== false) args.push("--hidden") + if (input.maxDepth !== undefined) args.push(`--max-depth=${input.maxDepth}`) + if (input.glob) { + for (const g of input.glob) { + args.push(`--glob=${g}`) + } + } + + return spawner.streamLines( + ChildProcess.make(args[0], args.slice(1), { cwd: input.cwd }), + ).pipe(Stream.filter((line: string) => line.length > 0)) + }) + + return Service.of({ + files: (input) => Stream.unwrap(files(input)), + }) + }), + ) + + export const defaultLayer = layer.pipe( + Layer.provide(AppFileSystem.defaultLayer), + Layer.provide(CrossSpawnSpawner.defaultLayer), + ) + export async function tree(input: { cwd: string; limit?: number; signal?: AbortSignal }) { log.info("tree", input) const files = await Array.fromAsync(Ripgrep.files({ cwd: input.cwd, signal: input.signal })) diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts index a2611246c..180e20f60 100644 --- a/packages/opencode/src/tool/glob.ts +++ b/packages/opencode/src/tool/glob.ts @@ -1,78 +1,92 @@ import z from "zod" import path from "path" +import { Effect, Option } from "effect" +import * as Stream from "effect/Stream" import { Tool } from "./tool" -import { Filesystem } from "../util/filesystem" import DESCRIPTION from "./glob.txt" import { Ripgrep } from "../file/ripgrep" import { Instance } from "../project/instance" -import { assertExternalDirectory } from "./external-directory" +import { assertExternalDirectoryEffect } from "./external-directory" +import { AppFileSystem } from "../filesystem" -export const GlobTool = Tool.define("glob", { - description: DESCRIPTION, - parameters: z.object({ - pattern: z.string().describe("The glob pattern to match files against"), - path: z - .string() - .optional() - .describe( - `The directory to search in. If not specified, the current working directory will be used. IMPORTANT: Omit this field to use the default directory. DO NOT enter "undefined" or "null" - simply omit it for the default behavior. Must be a valid directory path if provided.`, - ), - }), - async execute(params, ctx) { - await ctx.ask({ - permission: "glob", - patterns: [params.pattern], - always: ["*"], - metadata: { - pattern: params.pattern, - path: params.path, - }, - }) - - let search = params.path ?? Instance.directory - search = path.isAbsolute(search) ? search : path.resolve(Instance.directory, search) - await assertExternalDirectory(ctx, search, { kind: "directory" }) - - const limit = 100 - const files = [] - let truncated = false - for await (const file of Ripgrep.files({ - cwd: search, - glob: [params.pattern], - signal: ctx.abort, - })) { - if (files.length >= limit) { - truncated = true - break - } - const full = path.resolve(search, file) - const stats = Filesystem.stat(full)?.mtime.getTime() ?? 0 - files.push({ - path: full, - mtime: stats, - }) - } - files.sort((a, b) => b.mtime - a.mtime) - - const output = [] - if (files.length === 0) output.push("No files found") - if (files.length > 0) { - output.push(...files.map((f) => f.path)) - if (truncated) { - output.push("") - output.push( - `(Results are truncated: showing first ${limit} results. Consider using a more specific path or pattern.)`, - ) - } - } +export const GlobTool = Tool.defineEffect( + "glob", + Effect.gen(function* () { + const rg = yield* Ripgrep.Service + const fs = yield* AppFileSystem.Service return { - title: path.relative(Instance.worktree, search), - metadata: { - count: files.length, - truncated, - }, - output: output.join("\n"), + description: DESCRIPTION, + parameters: z.object({ + pattern: z.string().describe("The glob pattern to match files against"), + path: z + .string() + .optional() + .describe( + `The directory to search in. If not specified, the current working directory will be used. IMPORTANT: Omit this field to use the default directory. DO NOT enter "undefined" or "null" - simply omit it for the default behavior. Must be a valid directory path if provided.`, + ), + }), + execute: (params: { pattern: string; path?: string }, ctx: Tool.Context) => + Effect.gen(function* () { + yield* Effect.promise(() => + ctx.ask({ + permission: "glob", + patterns: [params.pattern], + always: ["*"], + metadata: { + pattern: params.pattern, + path: params.path, + }, + }), + ) + + let search = params.path ?? Instance.directory + search = path.isAbsolute(search) ? search : path.resolve(Instance.directory, search) + yield* assertExternalDirectoryEffect(ctx, search, { kind: "directory" }) + + const limit = 100 + let truncated = false + const files = yield* rg.files({ cwd: search, glob: [params.pattern] }).pipe( + Stream.mapEffect((file) => + Effect.gen(function* () { + const full = path.resolve(search, file) + const info = yield* fs.stat(full).pipe(Effect.catch(() => Effect.succeed(undefined))) + const mtime = info?.mtime.pipe(Option.map((d) => d.getTime()), Option.getOrElse(() => 0)) ?? 0 + return { path: full, mtime } + }), + ), + Stream.take(limit + 1), + Stream.runCollect, + Effect.map((chunk) => [...chunk]), + ) + + if (files.length > limit) { + truncated = true + files.length = limit + } + files.sort((a, b) => b.mtime - a.mtime) + + const output = [] + if (files.length === 0) output.push("No files found") + if (files.length > 0) { + output.push(...files.map((f) => f.path)) + if (truncated) { + output.push("") + output.push( + `(Results are truncated: showing first ${limit} results. Consider using a more specific path or pattern.)`, + ) + } + } + + return { + title: path.relative(Instance.worktree, search), + metadata: { + count: files.length, + truncated, + }, + output: output.join("\n"), + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, -}) + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index e47eb744e..7f566ecd0 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -33,6 +33,7 @@ import { Effect, Layer, ServiceMap } from "effect" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" +import { Ripgrep } from "../file/ripgrep" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { Env } from "../env" @@ -89,6 +90,7 @@ export namespace ToolRegistry { | AppFileSystem.Service | HttpClient.HttpClient | ChildProcessSpawner + | Ripgrep.Service > = Layer.effect( Service, Effect.gen(function* () { @@ -107,6 +109,7 @@ export namespace ToolRegistry { const websearch = yield* WebSearchTool const bash = yield* BashTool const codesearch = yield* CodeSearchTool + const globtool = yield* GlobTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -167,7 +170,7 @@ export namespace ToolRegistry { invalid: Tool.init(InvalidTool), bash: Tool.init(bash), read: Tool.init(read), - glob: Tool.init(GlobTool), + glob: Tool.init(globtool), grep: Tool.init(GrepTool), edit: Tool.init(EditTool), write: Tool.init(WriteTool), @@ -320,6 +323,7 @@ export namespace ToolRegistry { Layer.provide(AppFileSystem.defaultLayer), Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), + Layer.provide(Ripgrep.defaultLayer), ), ) diff --git a/packages/opencode/test/file/ripgrep.test.ts b/packages/opencode/test/file/ripgrep.test.ts index 5eb56e53d..03c529f18 100644 --- a/packages/opencode/test/file/ripgrep.test.ts +++ b/packages/opencode/test/file/ripgrep.test.ts @@ -1,4 +1,6 @@ import { describe, expect, test } from "bun:test" +import { Effect } from "effect" +import * as Stream from "effect/Stream" import fs from "fs/promises" import path from "path" import { tmpdir } from "../fixture/fixture" @@ -52,3 +54,46 @@ describe("file.ripgrep", () => { expect(hits).toEqual([]) }) }) + +describe("Ripgrep.Service", () => { + test("files returns stream of filenames", async () => { + await using tmp = await tmpdir({ + init: async (dir) => { + await Bun.write(path.join(dir, "a.txt"), "hello") + await Bun.write(path.join(dir, "b.txt"), "world") + }, + }) + + const files = await Effect.gen(function* () { + const rg = yield* Ripgrep.Service + return yield* rg.files({ cwd: tmp.path }).pipe(Stream.runCollect, Effect.map((chunk) => [...chunk].sort())) + }).pipe(Effect.provide(Ripgrep.defaultLayer), Effect.runPromise) + + expect(files).toEqual(["a.txt", "b.txt"]) + }) + + test("files respects glob filter", async () => { + await using tmp = await tmpdir({ + init: async (dir) => { + await Bun.write(path.join(dir, "keep.ts"), "yes") + await Bun.write(path.join(dir, "skip.txt"), "no") + }, + }) + + const files = await Effect.gen(function* () { + const rg = yield* Ripgrep.Service + return yield* rg.files({ cwd: tmp.path, glob: ["*.ts"] }).pipe(Stream.runCollect, Effect.map((chunk) => [...chunk])) + }).pipe(Effect.provide(Ripgrep.defaultLayer), Effect.runPromise) + + expect(files).toEqual(["keep.ts"]) + }) + + test("files dies on nonexistent directory", async () => { + const exit = await Effect.gen(function* () { + const rg = yield* Ripgrep.Service + return yield* rg.files({ cwd: "/tmp/nonexistent-dir-12345" }).pipe(Stream.runCollect) + }).pipe(Effect.provide(Ripgrep.defaultLayer), Effect.runPromiseExit) + + expect(exit._tag).toBe("Failure") + }) +}) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index c26a5fd03..aef88b233 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -37,6 +37,7 @@ import { ToolRegistry } from "../../src/tool/registry" import { Truncate } from "../../src/tool/truncate" import { Log } from "../../src/util/log" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" +import { Ripgrep } from "../../src/file/ripgrep" import { provideTmpdirInstance, provideTmpdirServer } from "../fixture/fixture" import { testEffect } from "../lib/effect" import { reply, TestLLMServer } from "../lib/llm-server" @@ -172,6 +173,7 @@ function makeHttp() { Layer.provide(Skill.defaultLayer), Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), + Layer.provide(Ripgrep.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 911acba31..10d4d8f6f 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -53,6 +53,7 @@ import { ToolRegistry } from "../../src/tool/registry" import { Truncate } from "../../src/tool/truncate" import { AppFileSystem } from "../../src/filesystem" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" +import { Ripgrep } from "../../src/file/ripgrep" Log.init({ print: false }) @@ -136,6 +137,7 @@ function makeHttp() { Layer.provide(Skill.defaultLayer), Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), + Layer.provide(Ripgrep.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), From d2d5d84d1e54159389aa5770254c0efa7bf88ba5 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 17:57:46 +0000 Subject: [PATCH 065/151] chore: generate --- packages/opencode/src/file/ripgrep.ts | 6 +++--- packages/opencode/src/tool/glob.ts | 6 +++++- packages/opencode/test/file/ripgrep.test.ts | 10 ++++++++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts index 8a2d9407a..4f02c97b1 100644 --- a/packages/opencode/src/file/ripgrep.ts +++ b/packages/opencode/src/file/ripgrep.ts @@ -328,9 +328,9 @@ export namespace Ripgrep { } } - return spawner.streamLines( - ChildProcess.make(args[0], args.slice(1), { cwd: input.cwd }), - ).pipe(Stream.filter((line: string) => line.length > 0)) + return spawner + .streamLines(ChildProcess.make(args[0], args.slice(1), { cwd: input.cwd })) + .pipe(Stream.filter((line: string) => line.length > 0)) }) return Service.of({ diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts index 180e20f60..973f14699 100644 --- a/packages/opencode/src/tool/glob.ts +++ b/packages/opencode/src/tool/glob.ts @@ -51,7 +51,11 @@ export const GlobTool = Tool.defineEffect( Effect.gen(function* () { const full = path.resolve(search, file) const info = yield* fs.stat(full).pipe(Effect.catch(() => Effect.succeed(undefined))) - const mtime = info?.mtime.pipe(Option.map((d) => d.getTime()), Option.getOrElse(() => 0)) ?? 0 + const mtime = + info?.mtime.pipe( + Option.map((d) => d.getTime()), + Option.getOrElse(() => 0), + ) ?? 0 return { path: full, mtime } }), ), diff --git a/packages/opencode/test/file/ripgrep.test.ts b/packages/opencode/test/file/ripgrep.test.ts index 03c529f18..3982c184f 100644 --- a/packages/opencode/test/file/ripgrep.test.ts +++ b/packages/opencode/test/file/ripgrep.test.ts @@ -66,7 +66,10 @@ describe("Ripgrep.Service", () => { const files = await Effect.gen(function* () { const rg = yield* Ripgrep.Service - return yield* rg.files({ cwd: tmp.path }).pipe(Stream.runCollect, Effect.map((chunk) => [...chunk].sort())) + return yield* rg.files({ cwd: tmp.path }).pipe( + Stream.runCollect, + Effect.map((chunk) => [...chunk].sort()), + ) }).pipe(Effect.provide(Ripgrep.defaultLayer), Effect.runPromise) expect(files).toEqual(["a.txt", "b.txt"]) @@ -82,7 +85,10 @@ describe("Ripgrep.Service", () => { const files = await Effect.gen(function* () { const rg = yield* Ripgrep.Service - return yield* rg.files({ cwd: tmp.path, glob: ["*.ts"] }).pipe(Stream.runCollect, Effect.map((chunk) => [...chunk])) + return yield* rg.files({ cwd: tmp.path, glob: ["*.ts"] }).pipe( + Stream.runCollect, + Effect.map((chunk) => [...chunk]), + ) }).pipe(Effect.provide(Ripgrep.defaultLayer), Effect.runPromise) expect(files).toEqual(["keep.ts"]) From ce2612020564ace2bfe95a36f139a07ba237f563 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:30:30 -0500 Subject: [PATCH 066/151] tweak: make it so disabling uv or ruff fmters disables both (#21921) --- packages/opencode/src/format/index.ts | 7 ++++ packages/opencode/test/format/format.test.ts | 40 ++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/packages/opencode/src/format/index.ts b/packages/opencode/src/format/index.ts index c05c2bf45..56df63cf9 100644 --- a/packages/opencode/src/format/index.ts +++ b/packages/opencode/src/format/index.ts @@ -51,6 +51,13 @@ export namespace Format { formatters[item.name] = item } for (const [name, item] of Object.entries(cfg.formatter ?? {})) { + // Ruff and uv are both the same formatter, so disabling either should disable both. + if (["ruff", "uv"].includes(name) && (cfg.formatter?.ruff?.disabled || cfg.formatter?.uv?.disabled)) { + // TODO combine formatters so shared backends like Ruff/uv don't need linked disable handling here. + delete formatters.ruff + delete formatters.uv + continue + } if (item.disabled) { delete formatters[name] continue diff --git a/packages/opencode/test/format/format.test.ts b/packages/opencode/test/format/format.test.ts index 1b341d2f4..39826aad1 100644 --- a/packages/opencode/test/format/format.test.ts +++ b/packages/opencode/test/format/format.test.ts @@ -64,6 +64,46 @@ describe("Format", () => { ), ) + it.live("status() excludes uv when ruff is disabled", () => + provideTmpdirInstance( + () => + Format.Service.use((fmt) => + Effect.gen(function* () { + const statuses = yield* fmt.status() + expect(statuses.find((item) => item.name === "ruff")).toBeUndefined() + expect(statuses.find((item) => item.name === "uv")).toBeUndefined() + }), + ), + { + config: { + formatter: { + ruff: { disabled: true }, + }, + }, + }, + ), + ) + + it.live("status() excludes ruff when uv is disabled", () => + provideTmpdirInstance( + () => + Format.Service.use((fmt) => + Effect.gen(function* () { + const statuses = yield* fmt.status() + expect(statuses.find((item) => item.name === "ruff")).toBeUndefined() + expect(statuses.find((item) => item.name === "uv")).toBeUndefined() + }), + ), + { + config: { + formatter: { + uv: { disabled: true }, + }, + }, + }, + ), + ) + it.live("service initializes without error", () => provideTmpdirInstance(() => Format.Service.use(() => Effect.void))) it.live("status() initializes formatter state per directory", () => From f63bdc8e08a179960fcfd1fe982354dfdf84b8fb Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 15:38:52 -0400 Subject: [PATCH 067/151] convert list tool to Tool.defineEffect (#21899) --- packages/opencode/src/tool/ls.ts | 176 +++++++++++++++++-------------- 1 file changed, 94 insertions(+), 82 deletions(-) diff --git a/packages/opencode/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts index b848e969b..659315790 100644 --- a/packages/opencode/src/tool/ls.ts +++ b/packages/opencode/src/tool/ls.ts @@ -1,10 +1,12 @@ import z from "zod" +import { Effect } from "effect" +import * as Stream from "effect/Stream" import { Tool } from "./tool" import * as path from "path" import DESCRIPTION from "./ls.txt" import { Instance } from "../project/instance" import { Ripgrep } from "../file/ripgrep" -import { assertExternalDirectory } from "./external-directory" +import { assertExternalDirectoryEffect } from "./external-directory" export const IGNORE_PATTERNS = [ "node_modules/", @@ -35,87 +37,97 @@ export const IGNORE_PATTERNS = [ const LIMIT = 100 -export const ListTool = Tool.define("list", { - description: DESCRIPTION, - parameters: z.object({ - path: z.string().describe("The absolute path to the directory to list (must be absolute, not relative)").optional(), - ignore: z.array(z.string()).describe("List of glob patterns to ignore").optional(), - }), - async execute(params, ctx) { - const searchPath = path.resolve(Instance.directory, params.path || ".") - await assertExternalDirectory(ctx, searchPath, { kind: "directory" }) - - await ctx.ask({ - permission: "list", - patterns: [searchPath], - always: ["*"], - metadata: { - path: searchPath, - }, - }) - - const ignoreGlobs = IGNORE_PATTERNS.map((p) => `!${p}*`).concat(params.ignore?.map((p) => `!${p}`) || []) - const files = [] - for await (const file of Ripgrep.files({ cwd: searchPath, glob: ignoreGlobs, signal: ctx.abort })) { - files.push(file) - if (files.length >= LIMIT) break - } - - // Build directory structure - const dirs = new Set() - const filesByDir = new Map() - - for (const file of files) { - const dir = path.dirname(file) - const parts = dir === "." ? [] : dir.split("/") - - // Add all parent directories - for (let i = 0; i <= parts.length; i++) { - const dirPath = i === 0 ? "." : parts.slice(0, i).join("/") - dirs.add(dirPath) - } - - // Add file to its directory - if (!filesByDir.has(dir)) filesByDir.set(dir, []) - filesByDir.get(dir)!.push(path.basename(file)) - } - - function renderDir(dirPath: string, depth: number): string { - const indent = " ".repeat(depth) - let output = "" - - if (depth > 0) { - output += `${indent}${path.basename(dirPath)}/\n` - } - - const childIndent = " ".repeat(depth + 1) - const children = Array.from(dirs) - .filter((d) => path.dirname(d) === dirPath && d !== dirPath) - .sort() - - // Render subdirectories first - for (const child of children) { - output += renderDir(child, depth + 1) - } - - // Render files - const files = filesByDir.get(dirPath) || [] - for (const file of files.sort()) { - output += `${childIndent}${file}\n` - } - - return output - } - - const output = `${searchPath}/\n` + renderDir(".", 0) +export const ListTool = Tool.defineEffect( + "list", + Effect.gen(function* () { + const rg = yield* Ripgrep.Service return { - title: path.relative(Instance.worktree, searchPath), - metadata: { - count: files.length, - truncated: files.length >= LIMIT, - }, - output, + description: DESCRIPTION, + parameters: z.object({ + path: z.string().describe("The absolute path to the directory to list (must be absolute, not relative)").optional(), + ignore: z.array(z.string()).describe("List of glob patterns to ignore").optional(), + }), + execute: (params: { path?: string; ignore?: string[] }, ctx: Tool.Context) => + Effect.gen(function* () { + const searchPath = path.resolve(Instance.directory, params.path || ".") + yield* assertExternalDirectoryEffect(ctx, searchPath, { kind: "directory" }) + + yield* Effect.promise(() => + ctx.ask({ + permission: "list", + patterns: [searchPath], + always: ["*"], + metadata: { + path: searchPath, + }, + }), + ) + + const ignoreGlobs = IGNORE_PATTERNS.map((p) => `!${p}*`).concat(params.ignore?.map((p) => `!${p}`) || []) + const files = yield* rg.files({ cwd: searchPath, glob: ignoreGlobs }).pipe( + Stream.take(LIMIT), + Stream.runCollect, + Effect.map((chunk) => [...chunk]), + ) + + // Build directory structure + const dirs = new Set() + const filesByDir = new Map() + + for (const file of files) { + const dir = path.dirname(file) + const parts = dir === "." ? [] : dir.split("/") + + // Add all parent directories + for (let i = 0; i <= parts.length; i++) { + const dirPath = i === 0 ? "." : parts.slice(0, i).join("/") + dirs.add(dirPath) + } + + // Add file to its directory + if (!filesByDir.has(dir)) filesByDir.set(dir, []) + filesByDir.get(dir)!.push(path.basename(file)) + } + + function renderDir(dirPath: string, depth: number): string { + const indent = " ".repeat(depth) + let output = "" + + if (depth > 0) { + output += `${indent}${path.basename(dirPath)}/\n` + } + + const childIndent = " ".repeat(depth + 1) + const children = Array.from(dirs) + .filter((d) => path.dirname(d) === dirPath && d !== dirPath) + .sort() + + // Render subdirectories first + for (const child of children) { + output += renderDir(child, depth + 1) + } + + // Render files + const files = filesByDir.get(dirPath) || [] + for (const file of files.sort()) { + output += `${childIndent}${file}\n` + } + + return output + } + + const output = `${searchPath}/\n` + renderDir(".", 0) + + return { + title: path.relative(Instance.worktree, searchPath), + metadata: { + count: files.length, + truncated: files.length >= LIMIT, + }, + output, + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, -}) + }), +) From 378b8ca241a1ddf7f902bf6271280d8b2e59af68 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 19:40:10 +0000 Subject: [PATCH 068/151] chore: generate --- packages/opencode/src/tool/ls.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts index 659315790..2453b6e9c 100644 --- a/packages/opencode/src/tool/ls.ts +++ b/packages/opencode/src/tool/ls.ts @@ -45,7 +45,10 @@ export const ListTool = Tool.defineEffect( return { description: DESCRIPTION, parameters: z.object({ - path: z.string().describe("The absolute path to the directory to list (must be absolute, not relative)").optional(), + path: z + .string() + .describe("The absolute path to the directory to list (must be absolute, not relative)") + .optional(), ignore: z.array(z.string()).describe("List of glob patterns to ignore").optional(), }), execute: (params: { path?: string; ignore?: string[] }, ctx: Tool.Context) => From b139bc2ef3de411ca0487817fc71958fba12b315 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 16:57:12 -0400 Subject: [PATCH 069/151] refactor(tool): convert write tool to Tool.defineEffect (#21901) --- packages/opencode/src/tool/registry.ts | 3 +- packages/opencode/src/tool/write.ts | 143 ++++---- packages/opencode/test/tool/write.test.ts | 426 ++++++++-------------- 3 files changed, 239 insertions(+), 333 deletions(-) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 7f566ecd0..bd27802ff 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -110,6 +110,7 @@ export namespace ToolRegistry { const bash = yield* BashTool const codesearch = yield* CodeSearchTool const globtool = yield* GlobTool + const writetool = yield* WriteTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -173,7 +174,7 @@ export namespace ToolRegistry { glob: Tool.init(globtool), grep: Tool.init(GrepTool), edit: Tool.init(EditTool), - write: Tool.init(WriteTool), + write: Tool.init(writetool), task: Tool.init(task), fetch: Tool.init(webfetch), todo: Tool.init(todo), diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 6b134e525..444ff6ea6 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -1,5 +1,6 @@ import z from "zod" import * as path from "path" +import { Effect } from "effect" import { Tool } from "./tool" import { LSP } from "../lsp" import { createTwoFilesPatch } from "diff" @@ -9,76 +10,90 @@ import { File } from "../file" import { FileWatcher } from "../file/watcher" import { Format } from "../format" import { FileTime } from "../file/time" -import { Filesystem } from "../util/filesystem" +import { AppFileSystem } from "../filesystem" import { Instance } from "../project/instance" import { trimDiff } from "./edit" -import { assertExternalDirectory } from "./external-directory" +import { assertExternalDirectoryEffect } from "./external-directory" const MAX_DIAGNOSTICS_PER_FILE = 20 const MAX_PROJECT_DIAGNOSTICS_FILES = 5 -export const WriteTool = Tool.define("write", { - description: DESCRIPTION, - parameters: z.object({ - content: z.string().describe("The content to write to the file"), - filePath: z.string().describe("The absolute path to the file to write (must be absolute, not relative)"), - }), - async execute(params, ctx) { - const filepath = path.isAbsolute(params.filePath) ? params.filePath : path.join(Instance.directory, params.filePath) - await assertExternalDirectory(ctx, filepath) - - const exists = await Filesystem.exists(filepath) - const contentOld = exists ? await Filesystem.readText(filepath) : "" - if (exists) await FileTime.assert(ctx.sessionID, filepath) - - const diff = trimDiff(createTwoFilesPatch(filepath, filepath, contentOld, params.content)) - await ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filepath)], - always: ["*"], - metadata: { - filepath, - diff, - }, - }) - - await Filesystem.write(filepath, params.content) - await Format.file(filepath) - Bus.publish(File.Event.Edited, { file: filepath }) - await Bus.publish(FileWatcher.Event.Updated, { - file: filepath, - event: exists ? "change" : "add", - }) - await FileTime.read(ctx.sessionID, filepath) - - let output = "Wrote file successfully." - await LSP.touchFile(filepath, true) - const diagnostics = await LSP.diagnostics() - const normalizedFilepath = Filesystem.normalizePath(filepath) - let projectDiagnosticsCount = 0 - for (const [file, issues] of Object.entries(diagnostics)) { - const errors = issues.filter((item) => item.severity === 1) - if (errors.length === 0) continue - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" - if (file === normalizedFilepath) { - output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - continue - } - if (projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue - projectDiagnosticsCount++ - output += `\n\nLSP errors detected in other files:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } +export const WriteTool = Tool.defineEffect( + "write", + Effect.gen(function* () { + const lsp = yield* LSP.Service + const fs = yield* AppFileSystem.Service + const filetime = yield* FileTime.Service return { - title: path.relative(Instance.worktree, filepath), - metadata: { - diagnostics, - filepath, - exists: exists, - }, - output, + description: DESCRIPTION, + parameters: z.object({ + content: z.string().describe("The content to write to the file"), + filePath: z.string().describe("The absolute path to the file to write (must be absolute, not relative)"), + }), + execute: (params: { content: string; filePath: string }, ctx: Tool.Context) => + Effect.gen(function* () { + const filepath = path.isAbsolute(params.filePath) ? params.filePath : path.join(Instance.directory, params.filePath) + yield* assertExternalDirectoryEffect(ctx, filepath) + + const exists = yield* fs.existsSafe(filepath) + const contentOld = exists ? yield* fs.readFileString(filepath) : "" + if (exists) yield* filetime.assert(ctx.sessionID, filepath) + + const diff = trimDiff(createTwoFilesPatch(filepath, filepath, contentOld, params.content)) + yield* Effect.promise(() => + ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filepath)], + always: ["*"], + metadata: { + filepath, + diff, + }, + }), + ) + + yield* fs.writeWithDirs(filepath, params.content) + yield* Effect.promise(() => Format.file(filepath)) + Bus.publish(File.Event.Edited, { file: filepath }) + yield* Effect.promise(() => + Bus.publish(FileWatcher.Event.Updated, { + file: filepath, + event: exists ? "change" : "add", + }), + ) + yield* filetime.read(ctx.sessionID, filepath) + + let output = "Wrote file successfully." + yield* lsp.touchFile(filepath, true) + const diagnostics = yield* lsp.diagnostics() + const normalizedFilepath = AppFileSystem.normalizePath(filepath) + let projectDiagnosticsCount = 0 + for (const [file, issues] of Object.entries(diagnostics)) { + const errors = issues.filter((item) => item.severity === 1) + if (errors.length === 0) continue + const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) + const suffix = + errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" + if (file === normalizedFilepath) { + output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + continue + } + if (projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue + projectDiagnosticsCount++ + output += `\n\nLSP errors detected in other files:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + } + + return { + title: path.relative(Instance.worktree, filepath), + metadata: { + diagnostics, + filepath, + exists: exists, + }, + output, + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, -}) + }), +) diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 97939c105..8289646eb 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -1,10 +1,17 @@ -import { afterEach, describe, test, expect } from "bun:test" +import { afterEach, describe, expect } from "bun:test" +import { Effect, Layer } from "effect" import path from "path" import fs from "fs/promises" import { WriteTool } from "../../src/tool/write" import { Instance } from "../../src/project/instance" -import { tmpdir } from "../fixture/fixture" +import { LSP } from "../../src/lsp" +import { AppFileSystem } from "../../src/filesystem" +import { FileTime } from "../../src/file/time" +import { Tool } from "../../src/tool/tool" import { SessionID, MessageID } from "../../src/session/schema" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" +import { provideTmpdirInstance } from "../fixture/fixture" +import { testEffect } from "../lib/effect" const ctx = { sessionID: SessionID.make("ses_test-write-session"), @@ -21,333 +28,216 @@ afterEach(async () => { await Instance.disposeAll() }) +const it = testEffect( + Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, FileTime.defaultLayer, CrossSpawnSpawner.defaultLayer), +) + +const init = Effect.fn("WriteToolTest.init")(function* () { + const info = yield* WriteTool + return yield* Effect.promise(() => info.init()) +}) + +const run = Effect.fn("WriteToolTest.run")(function* ( + args: Tool.InferParameters, + next: Tool.Context = ctx, +) { + const tool = yield* init() + return yield* Effect.promise(() => tool.execute(args, next)) +}) + +const markRead = Effect.fn("WriteToolTest.markRead")(function* (sessionID: string, filepath: string) { + const ft = yield* FileTime.Service + yield* ft.read(sessionID as any, filepath) +}) + describe("tool.write", () => { describe("new file creation", () => { - test("writes content to new file", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "newfile.txt") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - const result = await write.execute( - { - filePath: filepath, - content: "Hello, World!", - }, - ctx, - ) + it.live("writes content to new file", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "newfile.txt") + const result = yield* run({ filePath: filepath, content: "Hello, World!" }) expect(result.output).toContain("Wrote file successfully") expect(result.metadata.exists).toBe(false) - const content = await fs.readFile(filepath, "utf-8") + const content = yield* Effect.promise(() => fs.readFile(filepath, "utf-8")) expect(content).toBe("Hello, World!") - }, - }) - }) + }), + ), + ) - test("creates parent directories if needed", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "nested", "deep", "file.txt") + it.live("creates parent directories if needed", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "nested", "deep", "file.txt") + yield* run({ filePath: filepath, content: "nested content" }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content: "nested content", - }, - ctx, - ) - - const content = await fs.readFile(filepath, "utf-8") + const content = yield* Effect.promise(() => fs.readFile(filepath, "utf-8")) expect(content).toBe("nested content") - }, - }) - }) + }), + ), + ) - test("handles relative paths by resolving to instance directory", async () => { - await using tmp = await tmpdir() + it.live("handles relative paths by resolving to instance directory", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + yield* run({ filePath: "relative.txt", content: "relative content" }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: "relative.txt", - content: "relative content", - }, - ctx, - ) - - const content = await fs.readFile(path.join(tmp.path, "relative.txt"), "utf-8") + const content = yield* Effect.promise(() => fs.readFile(path.join(dir, "relative.txt"), "utf-8")) expect(content).toBe("relative content") - }, - }) - }) + }), + ), + ) }) describe("existing file overwrite", () => { - test("overwrites existing file content", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "existing.txt") - await fs.writeFile(filepath, "old content", "utf-8") + it.live("overwrites existing file content", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "existing.txt") + yield* Effect.promise(() => fs.writeFile(filepath, "old content", "utf-8")) + yield* markRead(ctx.sessionID, filepath) - // First read the file to satisfy FileTime requirement - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const { FileTime } = await import("../../src/file/time") - await FileTime.read(ctx.sessionID, filepath) - - const write = await WriteTool.init() - const result = await write.execute( - { - filePath: filepath, - content: "new content", - }, - ctx, - ) + const result = yield* run({ filePath: filepath, content: "new content" }) expect(result.output).toContain("Wrote file successfully") expect(result.metadata.exists).toBe(true) - const content = await fs.readFile(filepath, "utf-8") + const content = yield* Effect.promise(() => fs.readFile(filepath, "utf-8")) expect(content).toBe("new content") - }, - }) - }) + }), + ), + ) - test("returns diff in metadata for existing files", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "old", "utf-8") + it.live("returns diff in metadata for existing files", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "file.txt") + yield* Effect.promise(() => fs.writeFile(filepath, "old", "utf-8")) + yield* markRead(ctx.sessionID, filepath) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const { FileTime } = await import("../../src/file/time") - await FileTime.read(ctx.sessionID, filepath) + const result = yield* run({ filePath: filepath, content: "new" }) - const write = await WriteTool.init() - const result = await write.execute( - { - filePath: filepath, - content: "new", - }, - ctx, - ) - - // Diff should be in metadata expect(result.metadata).toHaveProperty("filepath", filepath) expect(result.metadata).toHaveProperty("exists", true) - }, - }) - }) + }), + ), + ) }) describe("file permissions", () => { - test("sets file permissions when writing sensitive data", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "sensitive.json") + it.live("sets file permissions when writing sensitive data", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "sensitive.json") + yield* run({ filePath: filepath, content: JSON.stringify({ secret: "data" }) }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content: JSON.stringify({ secret: "data" }), - }, - ctx, - ) - - // On Unix systems, check permissions if (process.platform !== "win32") { - const stats = await fs.stat(filepath) + const stats = yield* Effect.promise(() => fs.stat(filepath)) expect(stats.mode & 0o777).toBe(0o644) } - }, - }) - }) + }), + ), + ) }) describe("content types", () => { - test("writes JSON content", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "data.json") - const data = { key: "value", nested: { array: [1, 2, 3] } } + it.live("writes JSON content", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "data.json") + const data = { key: "value", nested: { array: [1, 2, 3] } } + yield* run({ filePath: filepath, content: JSON.stringify(data, null, 2) }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content: JSON.stringify(data, null, 2), - }, - ctx, - ) - - const content = await fs.readFile(filepath, "utf-8") + const content = yield* Effect.promise(() => fs.readFile(filepath, "utf-8")) expect(JSON.parse(content)).toEqual(data) - }, - }) - }) + }), + ), + ) - test("writes binary-safe content", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "binary.bin") - const content = "Hello\x00World\x01\x02\x03" + it.live("writes binary-safe content", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "binary.bin") + const content = "Hello\x00World\x01\x02\x03" + yield* run({ filePath: filepath, content }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content, - }, - ctx, - ) - - const buf = await fs.readFile(filepath) + const buf = yield* Effect.promise(() => fs.readFile(filepath)) expect(buf.toString()).toBe(content) - }, - }) - }) + }), + ), + ) - test("writes empty content", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "empty.txt") + it.live("writes empty content", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "empty.txt") + yield* run({ filePath: filepath, content: "" }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content: "", - }, - ctx, - ) - - const content = await fs.readFile(filepath, "utf-8") + const content = yield* Effect.promise(() => fs.readFile(filepath, "utf-8")) expect(content).toBe("") - const stats = await fs.stat(filepath) + const stats = yield* Effect.promise(() => fs.stat(filepath)) expect(stats.size).toBe(0) - }, - }) - }) + }), + ), + ) - test("writes multi-line content", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "multiline.txt") - const lines = ["Line 1", "Line 2", "Line 3", ""].join("\n") + it.live("writes multi-line content", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "multiline.txt") + const lines = ["Line 1", "Line 2", "Line 3", ""].join("\n") + yield* run({ filePath: filepath, content: lines }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content: lines, - }, - ctx, - ) - - const content = await fs.readFile(filepath, "utf-8") + const content = yield* Effect.promise(() => fs.readFile(filepath, "utf-8")) expect(content).toBe(lines) - }, - }) - }) + }), + ), + ) - test("handles different line endings", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "crlf.txt") - const content = "Line 1\r\nLine 2\r\nLine 3" + it.live("handles different line endings", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "crlf.txt") + const content = "Line 1\r\nLine 2\r\nLine 3" + yield* run({ filePath: filepath, content }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - await write.execute( - { - filePath: filepath, - content, - }, - ctx, - ) - - const buf = await fs.readFile(filepath) + const buf = yield* Effect.promise(() => fs.readFile(filepath)) expect(buf.toString()).toBe(content) - }, - }) - }) + }), + ), + ) }) describe("error handling", () => { - test("throws error when OS denies write access", async () => { - await using tmp = await tmpdir() - const readonlyPath = path.join(tmp.path, "readonly.txt") + it.live("throws error when OS denies write access", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const readonlyPath = path.join(dir, "readonly.txt") + yield* Effect.promise(() => fs.writeFile(readonlyPath, "test", "utf-8")) + yield* Effect.promise(() => fs.chmod(readonlyPath, 0o444)) + yield* markRead(ctx.sessionID, readonlyPath) - // Create a read-only file - await fs.writeFile(readonlyPath, "test", "utf-8") - await fs.chmod(readonlyPath, 0o444) - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const { FileTime } = await import("../../src/file/time") - await FileTime.read(ctx.sessionID, readonlyPath) - - const write = await WriteTool.init() - await expect( - write.execute( - { - filePath: readonlyPath, - content: "new content", - }, - ctx, - ), - ).rejects.toThrow() - }, - }) - }) + const exit = yield* run({ filePath: readonlyPath, content: "new content" }).pipe(Effect.exit) + expect(exit._tag).toBe("Failure") + }), + ), + ) }) describe("title generation", () => { - test("returns relative path as title", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "src", "components", "Button.tsx") - await fs.mkdir(path.dirname(filepath), { recursive: true }) - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const write = await WriteTool.init() - const result = await write.execute( - { - filePath: filepath, - content: "export const Button = () => {}", - }, - ctx, - ) + it.live("returns relative path as title", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const filepath = path.join(dir, "src", "components", "Button.tsx") + yield* Effect.promise(() => fs.mkdir(path.dirname(filepath), { recursive: true })) + const result = yield* run({ filePath: filepath, content: "export const Button = () => {}" }) expect(result.title).toEndWith(path.join("src", "components", "Button.tsx")) - }, - }) - }) + }), + ), + ) }) }) From 346b3e1b8d1925970e451583d6bb84e491eb9a99 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 10 Apr 2026 16:57:04 -0400 Subject: [PATCH 070/151] zen: nemotron doc --- packages/web/src/content/docs/ar/zen.mdx | 2 +- packages/web/src/content/docs/bs/zen.mdx | 2 +- packages/web/src/content/docs/da/zen.mdx | 2 +- packages/web/src/content/docs/de/zen.mdx | 2 +- packages/web/src/content/docs/es/zen.mdx | 2 +- packages/web/src/content/docs/fr/zen.mdx | 2 +- packages/web/src/content/docs/it/zen.mdx | 2 +- packages/web/src/content/docs/ja/zen.mdx | 2 +- packages/web/src/content/docs/ko/zen.mdx | 2 +- packages/web/src/content/docs/nb/zen.mdx | 2 +- packages/web/src/content/docs/pl/zen.mdx | 2 +- packages/web/src/content/docs/pt-br/zen.mdx | 2 +- packages/web/src/content/docs/ru/zen.mdx | 2 +- packages/web/src/content/docs/th/zen.mdx | 2 +- packages/web/src/content/docs/tr/zen.mdx | 2 +- packages/web/src/content/docs/zen.mdx | 2 +- packages/web/src/content/docs/zh-cn/zen.mdx | 2 +- packages/web/src/content/docs/zh-tw/zen.mdx | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index 27a2c8132..c7cfe57b7 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -213,7 +213,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - MiMo V2 Omni Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - Qwen3.6 Plus Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. -- Nemotron 3 Super Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. +- Nemotron 3 Super Free (نقاط نهاية NVIDIA المجانية): يُقدَّم بموجب [شروط خدمة النسخة التجريبية من واجهة NVIDIA API](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). للاستخدام التجريبي فقط، وليس للإنتاج أو البيانات الحساسة. تقوم NVIDIA بتسجيل المطالبات والمخرجات لتحسين نماذجها وخدماتها. لا ترسل بيانات شخصية أو سرية. - OpenAI APIs: يتم الاحتفاظ بالطلبات لمدة 30 يوما وفقا لـ [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: يتم الاحتفاظ بالطلبات لمدة 30 يوما وفقا لـ [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index d8b258f47..9edfdddd1 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -225,7 +225,7 @@ i ne koriste vaše podatke za treniranje modela, uz sljedeće izuzetke: - MiMo V2 Pro Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - MiMo V2 Omni Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - Qwen3.6 Plus Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. -- Nemotron 3 Super Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. +- Nemotron 3 Super Free (besplatni NVIDIA endpointi): Dostupan je prema [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Samo za probnu upotrebu, nije za produkciju niti osjetljive podatke. NVIDIA bilježi promptove i izlaze radi poboljšanja svojih modela i usluga. Nemojte slati lične ili povjerljive podatke. - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Requests are retained for 30 days in accordance with [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index 3660e528d..234293066 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -223,7 +223,7 @@ Alle vores modeller hostes i US. Vores udbydere følger en nul-opbevaringspoliti - MiMo V2 Pro Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - MiMo V2 Omni Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - Qwen3.6 Plus Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. -- Nemotron 3 Super Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. +- Nemotron 3 Super Free (gratis NVIDIA-endpoints): Leveres under [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Kun til prøvebrug, ikke til produktion eller følsomme data. Prompts og outputs logges af NVIDIA for at forbedre deres modeller og tjenester. Indsend ikke personlige eller fortrolige data. - OpenAI APIs: Anmodninger opbevares i 30 dage i overensstemmelse med [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Anmodninger opbevares i 30 dage i overensstemmelse med [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index 4e94788ee..e7e2d4e9b 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -209,7 +209,7 @@ Alle unsere Modelle werden in den USA gehostet. Unsere Provider folgen einer Zer - MiMo V2 Pro Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - MiMo V2 Omni Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - Qwen3.6 Plus Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. -- Nemotron 3 Super Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. +- Nemotron 3 Super Free (kostenlose NVIDIA-Endpunkte): Bereitgestellt gemäß den [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Nur für Testzwecke, nicht für Produktion oder sensible Daten. Eingaben und Ausgaben werden von NVIDIA protokolliert, um seine Modelle und Dienste zu verbessern. Übermitteln Sie keine personenbezogenen oder vertraulichen Daten. - OpenAI APIs: Anfragen werden in Übereinstimmung mit [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 30 Tage lang gespeichert. - Anthropic APIs: Anfragen werden in Übereinstimmung mit [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) 30 Tage lang gespeichert. diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index b6acd296a..a68871fb4 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -223,7 +223,7 @@ Todos nuestros modelos están alojados en US. Nuestros proveedores siguen una po - MiMo V2 Pro Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - MiMo V2 Omni Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - Qwen3.6 Plus Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. -- Nemotron 3 Super Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. +- Nemotron 3 Super Free (endpoints gratuitos de NVIDIA): Se ofrece bajo los [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Solo para uso de prueba, no para producción ni datos sensibles. NVIDIA registra los prompts y las salidas para mejorar sus modelos y servicios. No envíes datos personales ni confidenciales. - OpenAI APIs: Las solicitudes se conservan durante 30 días de acuerdo con [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Las solicitudes se conservan durante 30 días de acuerdo con [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index f65fcac08..f1d76beae 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -209,7 +209,7 @@ Tous nos modèles sont hébergés aux US. Nos fournisseurs suivent une politique - MiMo V2 Pro Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - MiMo V2 Omni Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - Qwen3.6 Plus Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. -- Nemotron 3 Super Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. +- Nemotron 3 Super Free (endpoints NVIDIA gratuits) : Fourni dans le cadre des [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Réservé à un usage d'essai, pas à la production ni aux données sensibles. Les prompts et les sorties sont journalisés par NVIDIA pour améliorer ses modèles et services. N'envoyez pas de données personnelles ou confidentielles. - OpenAI APIs : Les requêtes sont conservées pendant 30 jours conformément à [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs : Les requêtes sont conservées pendant 30 jours conformément à [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index c099c903c..b8bb388ef 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -223,7 +223,7 @@ Tutti i nostri modelli sono ospitati negli US. I nostri provider seguono una pol - MiMo V2 Pro Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - MiMo V2 Omni Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - Qwen3.6 Plus Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. -- Nemotron 3 Super Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. +- Nemotron 3 Super Free (endpoint NVIDIA gratuiti): fornito secondo i [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Solo per uso di prova, non per produzione o dati sensibili. NVIDIA registra prompt e output per migliorare i propri modelli e servizi. Non inviare dati personali o riservati. - OpenAI APIs: le richieste vengono conservate per 30 giorni in conformità con [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: le richieste vengono conservate per 30 giorni in conformità con [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index 93ec6fbec..f0536c389 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -209,7 +209,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - MiMo V2 Omni Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - Qwen3.6 Plus Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 -- Nemotron 3 Super Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 +- Nemotron 3 Super Free(NVIDIA の無料エンドポイント): [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) に基づいて提供されます。試用専用であり、本番環境や機密性の高いデータには使用しないでください。プロンプトと出力は、NVIDIA が自社のモデルとサービスを改善するために記録します。個人情報や機密データは送信しないでください。 - OpenAI APIs: リクエストは [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) に従って 30 日間保持されます。 - Anthropic APIs: リクエストは [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) に従って 30 日間保持されます。 diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index 08f57eaf9..a16eed426 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -209,7 +209,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - MiMo V2 Omni Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - Qwen3.6 Plus Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. -- Nemotron 3 Super Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. +- Nemotron 3 Super Free(NVIDIA 무료 엔드포인트): [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)에 따라 제공됩니다. 평가판 전용이며 프로덕션 환경이나 민감한 데이터에는 사용할 수 없습니다. NVIDIA는 자사 모델과 서비스를 개선하기 위해 프롬프트와 출력을 기록합니다. 개인 정보나 기밀 데이터는 제출하지 마세요. - OpenAI APIs: 요청은 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data)에 따라 30일 동안 보관됩니다. - Anthropic APIs: 요청은 [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage)에 따라 30일 동안 보관됩니다. diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index 02ae767b6..e89c9ef31 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -223,7 +223,7 @@ Alle modellene våre hostes i US. Leverandørene våre følger en policy for zer - MiMo V2 Pro Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - MiMo V2 Omni Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - Qwen3.6 Plus Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. -- Nemotron 3 Super Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. +- Nemotron 3 Super Free (gratis NVIDIA-endepunkter): Leveres under [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Kun for prøvebruk, ikke for produksjon eller sensitive data. Prompter og svar logges av NVIDIA for å forbedre modellene og tjenestene deres. Ikke send inn personopplysninger eller konfidensielle data. - OpenAI APIs: Forespørsler lagres i 30 dager i samsvar med [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Forespørsler lagres i 30 dager i samsvar med [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index 98c8b85ef..2687ec608 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -224,7 +224,7 @@ Wszystkie nasze modele są hostowane w US. Nasi dostawcy stosują politykę zero - MiMo V2 Pro Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - MiMo V2 Omni Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - Qwen3.6 Plus Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. -- Nemotron 3 Super Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. +- Nemotron 3 Super Free (darmowe endpointy NVIDIA): Udostępniany zgodnie z [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Tylko do użytku próbnego, nie do produkcji ani danych wrażliwych. NVIDIA rejestruje prompty i odpowiedzi, aby ulepszać swoje modele i usługi. Nie przesyłaj danych osobowych ani poufnych. - OpenAI APIs: Żądania są przechowywane przez 30 dni zgodnie z [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Żądania są przechowywane przez 30 dni zgodnie z [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index fd6848df7..6cbc810da 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -209,7 +209,7 @@ Todos os nossos modelos são hospedados nos US. Nossos provedores seguem uma pol - MiMo V2 Pro Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - MiMo V2 Omni Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - Qwen3.6 Plus Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. -- Nemotron 3 Super Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. +- Nemotron 3 Super Free (endpoints gratuitos da NVIDIA): Fornecido sob os [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Apenas para uso de avaliação, não para produção nem dados sensíveis. A NVIDIA registra prompts e saídas para melhorar seus modelos e serviços. Não envie dados pessoais ou confidenciais. - OpenAI APIs: As solicitações são retidas por 30 dias de acordo com [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: As solicitações são retidas por 30 dias de acordo com [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index 7a087d85a..555cda1f3 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -223,7 +223,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - MiMo V2 Omni Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - Qwen3.6 Plus Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. -- Nemotron 3 Super Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. +- Nemotron 3 Super Free (бесплатные эндпоинты NVIDIA): предоставляется в соответствии с [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Только для пробного использования, не для продакшена и не для чувствительных данных. NVIDIA логирует запросы и ответы, чтобы улучшать свои модели и сервисы. Не отправляйте персональные или конфиденциальные данные. - OpenAI APIs: запросы хранятся 30 дней в соответствии с [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: запросы хранятся 30 дней в соответствии с [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index cf272576c..527bcf7db 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -211,7 +211,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - MiMo V2 Omni Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - Qwen3.6 Plus Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล -- Nemotron 3 Super Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล +- Nemotron 3 Super Free (endpoint ฟรีของ NVIDIA): ให้บริการภายใต้ [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) ใช้สำหรับการทดลองเท่านั้น ไม่เหมาะสำหรับ production หรือข้อมูลที่อ่อนไหว NVIDIA จะบันทึก prompt และ output เพื่อนำไปปรับปรุงโมเดลและบริการของตน โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลลับ. - OpenAI APIs: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index 89276dd4c..17166f84d 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -209,7 +209,7 @@ Tüm modellerimiz US'de barındırılıyor. Sağlayıcılarımız zero-retention - MiMo V2 Pro Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - MiMo V2 Omni Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - Qwen3.6 Plus Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. -- Nemotron 3 Super Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. +- Nemotron 3 Super Free (ücretsiz NVIDIA uç noktaları): [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) kapsamında sunulur. Yalnızca deneme amaçlıdır; üretim veya hassas veriler için uygun değildir. NVIDIA, modellerini ve hizmetlerini geliştirmek için promptları ve çıktıları kaydeder. Kişisel veya gizli veri göndermeyin. - OpenAI APIs: İstekler [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) uyarınca 30 gün boyunca saklanır. - Anthropic APIs: İstekler [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) uyarınca 30 gün boyunca saklanır. diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index f16ec6f71..cd574a30b 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -215,7 +215,7 @@ All our models are hosted in the US. Our providers follow a zero-retention polic - Big Pickle: During its free period, collected data may be used to improve the model. - MiniMax M2.5 Free: During its free period, collected data may be used to improve the model. - Qwen3.6 Plus Free: During its free period, collected data may be used to improve the model. -- Nemotron 3 Super Free: During its free period, collected data may be used to improve the model. +- Nemotron 3 Super Free (NVIDIA free endpoints): Provided under the [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Trial use only — not for production or sensitive data. Prompts and outputs are logged by NVIDIA to improve its models and services. Do not submit personal or confidential data. - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Requests are retained for 30 days in accordance with [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index 5df360954..f17a0f842 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -209,7 +209,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free:在免费期间,收集的数据可能会被用于改进模型。 - MiMo V2 Omni Free:在免费期间,收集的数据可能会被用于改进模型。 - Qwen3.6 Plus Free:在免费期间,收集的数据可能会被用于改进模型。 -- Nemotron 3 Super Free:在免费期间,收集的数据可能会被用于改进模型。 +- Nemotron 3 Super Free(NVIDIA 免费端点):根据 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) 提供。仅供试用,不适用于生产环境或敏感数据。NVIDIA 会记录提示词和输出内容,以改进其模型和服务。请勿提交个人或机密数据。 - OpenAI APIs:请求会根据 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 保留 30 天。 - Anthropic APIs:请求会根据 [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) 保留 30 天。 diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index 1b2beb2c1..3a6448b59 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -216,7 +216,7 @@ https://opencode.ai/zen/v1/models - MiMo V2 Pro Free: 在免費期間,收集到的資料可能會用於改進模型。 - MiMo V2 Omni Free: 在免費期間,收集到的資料可能會用於改進模型。 - Qwen3.6 Plus Free: 在免費期間,收集到的資料可能會用於改進模型。 -- Nemotron 3 Super Free: 在免費期間,收集到的資料可能會用於改進模型。 +- Nemotron 3 Super Free(NVIDIA 免費端點):依據 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) 提供。僅供試用,不適用於正式環境或敏感資料。NVIDIA 會記錄提示詞與輸出內容,以改進其模型與服務。請勿提交個人或機密資料。 - OpenAI APIs: 請求會依據 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 保留 30 天。 - Anthropic APIs: 請求會依據 [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) 保留 30 天。 From 57b2e64345c81fdbc9ea22cbba3889de994d2d53 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 21:01:33 +0000 Subject: [PATCH 071/151] chore: generate --- packages/opencode/src/tool/write.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 444ff6ea6..23a975abc 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -33,7 +33,9 @@ export const WriteTool = Tool.defineEffect( }), execute: (params: { content: string; filePath: string }, ctx: Tool.Context) => Effect.gen(function* () { - const filepath = path.isAbsolute(params.filePath) ? params.filePath : path.join(Instance.directory, params.filePath) + const filepath = path.isAbsolute(params.filePath) + ? params.filePath + : path.join(Instance.directory, params.filePath) yield* assertExternalDirectoryEffect(ctx, filepath) const exists = yield* fs.existsSafe(filepath) @@ -74,7 +76,9 @@ export const WriteTool = Tool.defineEffect( if (errors.length === 0) continue const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" + errors.length > MAX_DIAGNOSTICS_PER_FILE + ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` + : "" if (file === normalizedFilepath) { output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` continue From b41fa8e318a6d67acd52dc746500d415f923afc6 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 17:10:28 -0400 Subject: [PATCH 072/151] refactor: convert edit tool to Tool.defineEffect (#21904) --- packages/opencode/src/tool/edit.ts | 280 +++++++++++++---------- packages/opencode/src/tool/multiedit.ts | 85 ++++--- packages/opencode/src/tool/registry.ts | 3 +- packages/opencode/test/tool/edit.test.ts | 56 +++-- 4 files changed, 240 insertions(+), 184 deletions(-) diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index 9505dd9ea..8ead6c9ee 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -5,6 +5,7 @@ import z from "zod" import * as path from "path" +import { Effect } from "effect" import { Tool } from "./tool" import { LSP } from "../lsp" import { createTwoFilesPatch, diffLines } from "diff" @@ -17,7 +18,7 @@ import { FileTime } from "../file/time" import { Filesystem } from "../util/filesystem" import { Instance } from "../project/instance" import { Snapshot } from "@/snapshot" -import { assertExternalDirectory } from "./external-directory" +import { assertExternalDirectoryEffect } from "./external-directory" const MAX_DIAGNOSTICS_PER_FILE = 20 @@ -34,136 +35,161 @@ function convertToLineEnding(text: string, ending: "\n" | "\r\n"): string { return text.replaceAll("\n", "\r\n") } -export const EditTool = Tool.define("edit", { - description: DESCRIPTION, - parameters: z.object({ - filePath: z.string().describe("The absolute path to the file to modify"), - oldString: z.string().describe("The text to replace"), - newString: z.string().describe("The text to replace it with (must be different from oldString)"), - replaceAll: z.boolean().optional().describe("Replace all occurrences of oldString (default false)"), - }), - async execute(params, ctx) { - if (!params.filePath) { - throw new Error("filePath is required") - } +const Parameters = z.object({ + filePath: z.string().describe("The absolute path to the file to modify"), + oldString: z.string().describe("The text to replace"), + newString: z.string().describe("The text to replace it with (must be different from oldString)"), + replaceAll: z.boolean().optional().describe("Replace all occurrences of oldString (default false)"), +}) - if (params.oldString === params.newString) { - throw new Error("No changes to apply: oldString and newString are identical.") - } - - const filePath = path.isAbsolute(params.filePath) ? params.filePath : path.join(Instance.directory, params.filePath) - await assertExternalDirectory(ctx, filePath) - - let diff = "" - let contentOld = "" - let contentNew = "" - await FileTime.withLock(filePath, async () => { - if (params.oldString === "") { - const existed = await Filesystem.exists(filePath) - contentNew = params.newString - diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) - await ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filePath)], - always: ["*"], - metadata: { - filepath: filePath, - diff, - }, - }) - await Filesystem.write(filePath, params.newString) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { - file: filePath, - event: existed ? "change" : "add", - }) - await FileTime.read(ctx.sessionID, filePath) - return - } - - const stats = Filesystem.stat(filePath) - if (!stats) throw new Error(`File ${filePath} not found`) - if (stats.isDirectory()) throw new Error(`Path is a directory, not a file: ${filePath}`) - await FileTime.assert(ctx.sessionID, filePath) - contentOld = await Filesystem.readText(filePath) - - const ending = detectLineEnding(contentOld) - const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) - const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) - - contentNew = replace(contentOld, old, next, params.replaceAll) - - diff = trimDiff( - createTwoFilesPatch(filePath, filePath, normalizeLineEndings(contentOld), normalizeLineEndings(contentNew)), - ) - await ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filePath)], - always: ["*"], - metadata: { - filepath: filePath, - diff, - }, - }) - - await Filesystem.write(filePath, contentNew) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { - file: filePath, - event: "change", - }) - contentNew = await Filesystem.readText(filePath) - diff = trimDiff( - createTwoFilesPatch(filePath, filePath, normalizeLineEndings(contentOld), normalizeLineEndings(contentNew)), - ) - await FileTime.read(ctx.sessionID, filePath) - }) - - const filediff: Snapshot.FileDiff = { - file: filePath, - patch: diff, - additions: 0, - deletions: 0, - } - for (const change of diffLines(contentOld, contentNew)) { - if (change.added) filediff.additions += change.count || 0 - if (change.removed) filediff.deletions += change.count || 0 - } - - ctx.metadata({ - metadata: { - diff, - filediff, - diagnostics: {}, - }, - }) - - let output = "Edit applied successfully." - await LSP.touchFile(filePath, true) - const diagnostics = await LSP.diagnostics() - const normalizedFilePath = Filesystem.normalizePath(filePath) - const issues = diagnostics[normalizedFilePath] ?? [] - const errors = issues.filter((item) => item.severity === 1) - if (errors.length > 0) { - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" - output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } +export const EditTool = Tool.defineEffect( + "edit", + Effect.gen(function* () { + const lsp = yield* LSP.Service + const filetime = yield* FileTime.Service return { - metadata: { - diagnostics, - diff, - filediff, - }, - title: `${path.relative(Instance.worktree, filePath)}`, - output, + description: DESCRIPTION, + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + if (!params.filePath) { + throw new Error("filePath is required") + } + + if (params.oldString === params.newString) { + throw new Error("No changes to apply: oldString and newString are identical.") + } + + const filePath = path.isAbsolute(params.filePath) + ? params.filePath + : path.join(Instance.directory, params.filePath) + yield* assertExternalDirectoryEffect(ctx, filePath) + + let diff = "" + let contentOld = "" + let contentNew = "" + yield* filetime.withLock(filePath, async () => { + if (params.oldString === "") { + const existed = await Filesystem.exists(filePath) + contentNew = params.newString + diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) + await ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filePath)], + always: ["*"], + metadata: { + filepath: filePath, + diff, + }, + }) + await Filesystem.write(filePath, params.newString) + await Format.file(filePath) + Bus.publish(File.Event.Edited, { file: filePath }) + await Bus.publish(FileWatcher.Event.Updated, { + file: filePath, + event: existed ? "change" : "add", + }) + await FileTime.read(ctx.sessionID, filePath) + return + } + + const stats = Filesystem.stat(filePath) + if (!stats) throw new Error(`File ${filePath} not found`) + if (stats.isDirectory()) throw new Error(`Path is a directory, not a file: ${filePath}`) + await FileTime.assert(ctx.sessionID, filePath) + contentOld = await Filesystem.readText(filePath) + + const ending = detectLineEnding(contentOld) + const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) + const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) + + contentNew = replace(contentOld, old, next, params.replaceAll) + + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + await ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filePath)], + always: ["*"], + metadata: { + filepath: filePath, + diff, + }, + }) + + await Filesystem.write(filePath, contentNew) + await Format.file(filePath) + Bus.publish(File.Event.Edited, { file: filePath }) + await Bus.publish(FileWatcher.Event.Updated, { + file: filePath, + event: "change", + }) + contentNew = await Filesystem.readText(filePath) + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + await FileTime.read(ctx.sessionID, filePath) + }) + + const filediff: Snapshot.FileDiff = { + file: filePath, + patch: diff, + additions: 0, + deletions: 0, + } + for (const change of diffLines(contentOld, contentNew)) { + if (change.added) filediff.additions += change.count || 0 + if (change.removed) filediff.deletions += change.count || 0 + } + + ctx.metadata({ + metadata: { + diff, + filediff, + diagnostics: {}, + }, + }) + + let output = "Edit applied successfully." + yield* lsp.touchFile(filePath, true) + const diagnostics = yield* lsp.diagnostics() + const normalizedFilePath = Filesystem.normalizePath(filePath) + const issues = diagnostics[normalizedFilePath] ?? [] + const errors = issues.filter((item) => item.severity === 1) + if (errors.length > 0) { + const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) + const suffix = + errors.length > MAX_DIAGNOSTICS_PER_FILE + ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` + : "" + output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + } + + return { + metadata: { + diagnostics, + diff, + filediff, + }, + title: `${path.relative(Instance.worktree, filePath)}`, + output, + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, -}) + }), +) export type Replacer = (content: string, find: string) => Generator diff --git a/packages/opencode/src/tool/multiedit.ts b/packages/opencode/src/tool/multiedit.ts index 7f562f473..5a52d0f0a 100644 --- a/packages/opencode/src/tool/multiedit.ts +++ b/packages/opencode/src/tool/multiedit.ts @@ -1,46 +1,57 @@ import z from "zod" +import { Effect } from "effect" import { Tool } from "./tool" import { EditTool } from "./edit" import DESCRIPTION from "./multiedit.txt" import path from "path" import { Instance } from "../project/instance" -export const MultiEditTool = Tool.define("multiedit", { - description: DESCRIPTION, - parameters: z.object({ - filePath: z.string().describe("The absolute path to the file to modify"), - edits: z - .array( - z.object({ - filePath: z.string().describe("The absolute path to the file to modify"), - oldString: z.string().describe("The text to replace"), - newString: z.string().describe("The text to replace it with (must be different from oldString)"), - replaceAll: z.boolean().optional().describe("Replace all occurrences of oldString (default false)"), - }), - ) - .describe("Array of edit operations to perform sequentially on the file"), - }), - async execute(params, ctx) { - const tool = await EditTool.init() - const results = [] - for (const [, edit] of params.edits.entries()) { - const result = await tool.execute( - { - filePath: params.filePath, - oldString: edit.oldString, - newString: edit.newString, - replaceAll: edit.replaceAll, - }, - ctx, - ) - results.push(result) - } +export const MultiEditTool = Tool.defineEffect( + "multiedit", + Effect.gen(function* () { + const editInfo = yield* EditTool + const edit = yield* Effect.promise(() => editInfo.init()) + return { - title: path.relative(Instance.worktree, params.filePath), - metadata: { - results: results.map((r) => r.metadata), - }, - output: results.at(-1)!.output, + description: DESCRIPTION, + parameters: z.object({ + filePath: z.string().describe("The absolute path to the file to modify"), + edits: z + .array( + z.object({ + filePath: z.string().describe("The absolute path to the file to modify"), + oldString: z.string().describe("The text to replace"), + newString: z.string().describe("The text to replace it with (must be different from oldString)"), + replaceAll: z.boolean().optional().describe("Replace all occurrences of oldString (default false)"), + }), + ) + .describe("Array of edit operations to perform sequentially on the file"), + }), + execute: (params: { filePath: string; edits: Array<{ filePath: string; oldString: string; newString: string; replaceAll?: boolean }> }, ctx: Tool.Context) => + Effect.gen(function* () { + const results = [] + for (const [, entry] of params.edits.entries()) { + const result = yield* Effect.promise(() => + edit.execute( + { + filePath: params.filePath, + oldString: entry.oldString, + newString: entry.newString, + replaceAll: entry.replaceAll, + }, + ctx, + ), + ) + results.push(result) + } + return { + title: path.relative(Instance.worktree, params.filePath), + metadata: { + results: results.map((r) => r.metadata), + }, + output: results.at(-1)!.output, + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, -}) + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index bd27802ff..bbc154371 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -111,6 +111,7 @@ export namespace ToolRegistry { const codesearch = yield* CodeSearchTool const globtool = yield* GlobTool const writetool = yield* WriteTool + const edit = yield* EditTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -173,7 +174,7 @@ export namespace ToolRegistry { read: Tool.init(read), glob: Tool.init(globtool), grep: Tool.init(GrepTool), - edit: Tool.init(EditTool), + edit: Tool.init(edit), write: Tool.init(writetool), task: Tool.init(task), fetch: Tool.init(webfetch), diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 96d41400e..220fe299b 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -1,10 +1,12 @@ -import { afterEach, describe, test, expect } from "bun:test" +import { afterAll, afterEach, describe, test, expect } from "bun:test" import path from "path" import fs from "fs/promises" +import { Effect, Layer, ManagedRuntime } from "effect" import { EditTool } from "../../src/tool/edit" import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" import { FileTime } from "../../src/file/time" +import { LSP } from "../../src/lsp" import { SessionID, MessageID } from "../../src/session/schema" const ctx = { @@ -27,6 +29,22 @@ async function touch(file: string, time: number) { await fs.utimes(file, date, date) } +const runtime = ManagedRuntime.make( + Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer), +) + +afterAll(async () => { + await runtime.dispose() +}) + +const resolve = () => + runtime.runPromise( + Effect.gen(function* () { + const info = yield* EditTool + return yield* Effect.promise(() => info.init()) + }), + ) + describe("tool.edit", () => { describe("creating new files", () => { test("creates new file when oldString is empty", async () => { @@ -36,7 +54,7 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const edit = await EditTool.init() + const edit = await resolve() const result = await edit.execute( { filePath: filepath, @@ -61,7 +79,7 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const edit = await EditTool.init() + const edit = await resolve() await edit.execute( { filePath: filepath, @@ -91,7 +109,7 @@ describe("tool.edit", () => { const events: string[] = [] const unsubUpdated = Bus.subscribe(FileWatcher.Event.Updated, () => events.push("updated")) - const edit = await EditTool.init() + const edit = await resolve() await edit.execute( { filePath: filepath, @@ -119,7 +137,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() const result = await edit.execute( { filePath: filepath, @@ -146,7 +164,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -169,7 +187,7 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -194,7 +212,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -217,7 +235,7 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -249,7 +267,7 @@ describe("tool.edit", () => { await touch(filepath, 2_000) // Try to edit with the new content - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -274,7 +292,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() await edit.execute( { filePath: filepath, @@ -307,7 +325,7 @@ describe("tool.edit", () => { const events: string[] = [] const unsubUpdated = Bus.subscribe(FileWatcher.Event.Updated, () => events.push("updated")) - const edit = await EditTool.init() + const edit = await resolve() await edit.execute( { filePath: filepath, @@ -335,7 +353,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() await edit.execute( { filePath: filepath, @@ -361,7 +379,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() await edit.execute( { filePath: filepath, @@ -385,7 +403,7 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -410,7 +428,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, dirpath) - const edit = await EditTool.init() + const edit = await resolve() await expect( edit.execute( { @@ -435,7 +453,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() const result = await edit.execute( { filePath: filepath, @@ -502,7 +520,7 @@ describe("tool.edit", () => { return await Instance.provide({ directory: tmp.path, fn: async () => { - const edit = await EditTool.init() + const edit = await resolve() const filePath = path.join(tmp.path, "test.txt") await FileTime.read(ctx.sessionID, filePath) await edit.execute( @@ -647,7 +665,7 @@ describe("tool.edit", () => { fn: async () => { await FileTime.read(ctx.sessionID, filepath) - const edit = await EditTool.init() + const edit = await resolve() // Two concurrent edits const promise1 = edit.execute( From fb26308bc70a3d515480edf435994e43752c72c8 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 21:12:22 +0000 Subject: [PATCH 073/151] chore: generate --- packages/opencode/src/tool/edit.ts | 112 +++++++++++------------ packages/opencode/src/tool/multiedit.ts | 8 +- packages/opencode/test/tool/edit.test.ts | 4 +- 3 files changed, 64 insertions(+), 60 deletions(-) diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index 8ead6c9ee..e0b54bc11 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -70,50 +70,10 @@ export const EditTool = Tool.defineEffect( let contentOld = "" let contentNew = "" yield* filetime.withLock(filePath, async () => { - if (params.oldString === "") { - const existed = await Filesystem.exists(filePath) - contentNew = params.newString - diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) - await ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filePath)], - always: ["*"], - metadata: { - filepath: filePath, - diff, - }, - }) - await Filesystem.write(filePath, params.newString) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { - file: filePath, - event: existed ? "change" : "add", - }) - await FileTime.read(ctx.sessionID, filePath) - return - } - - const stats = Filesystem.stat(filePath) - if (!stats) throw new Error(`File ${filePath} not found`) - if (stats.isDirectory()) throw new Error(`Path is a directory, not a file: ${filePath}`) - await FileTime.assert(ctx.sessionID, filePath) - contentOld = await Filesystem.readText(filePath) - - const ending = detectLineEnding(contentOld) - const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) - const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) - - contentNew = replace(contentOld, old, next, params.replaceAll) - - diff = trimDiff( - createTwoFilesPatch( - filePath, - filePath, - normalizeLineEndings(contentOld), - normalizeLineEndings(contentNew), - ), - ) + if (params.oldString === "") { + const existed = await Filesystem.exists(filePath) + contentNew = params.newString + diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) await ctx.ask({ permission: "edit", patterns: [path.relative(Instance.worktree, filePath)], @@ -123,26 +83,66 @@ export const EditTool = Tool.defineEffect( diff, }, }) - - await Filesystem.write(filePath, contentNew) + await Filesystem.write(filePath, params.newString) await Format.file(filePath) Bus.publish(File.Event.Edited, { file: filePath }) await Bus.publish(FileWatcher.Event.Updated, { file: filePath, - event: "change", + event: existed ? "change" : "add", }) - contentNew = await Filesystem.readText(filePath) - diff = trimDiff( - createTwoFilesPatch( - filePath, - filePath, - normalizeLineEndings(contentOld), - normalizeLineEndings(contentNew), - ), - ) await FileTime.read(ctx.sessionID, filePath) + return + } + + const stats = Filesystem.stat(filePath) + if (!stats) throw new Error(`File ${filePath} not found`) + if (stats.isDirectory()) throw new Error(`Path is a directory, not a file: ${filePath}`) + await FileTime.assert(ctx.sessionID, filePath) + contentOld = await Filesystem.readText(filePath) + + const ending = detectLineEnding(contentOld) + const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) + const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) + + contentNew = replace(contentOld, old, next, params.replaceAll) + + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + await ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filePath)], + always: ["*"], + metadata: { + filepath: filePath, + diff, + }, }) + await Filesystem.write(filePath, contentNew) + await Format.file(filePath) + Bus.publish(File.Event.Edited, { file: filePath }) + await Bus.publish(FileWatcher.Event.Updated, { + file: filePath, + event: "change", + }) + contentNew = await Filesystem.readText(filePath) + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + await FileTime.read(ctx.sessionID, filePath) + }) + const filediff: Snapshot.FileDiff = { file: filePath, patch: diff, diff --git a/packages/opencode/src/tool/multiedit.ts b/packages/opencode/src/tool/multiedit.ts index 5a52d0f0a..f84ddaf03 100644 --- a/packages/opencode/src/tool/multiedit.ts +++ b/packages/opencode/src/tool/multiedit.ts @@ -27,7 +27,13 @@ export const MultiEditTool = Tool.defineEffect( ) .describe("Array of edit operations to perform sequentially on the file"), }), - execute: (params: { filePath: string; edits: Array<{ filePath: string; oldString: string; newString: string; replaceAll?: boolean }> }, ctx: Tool.Context) => + execute: ( + params: { + filePath: string + edits: Array<{ filePath: string; oldString: string; newString: string; replaceAll?: boolean }> + }, + ctx: Tool.Context, + ) => Effect.gen(function* () { const results = [] for (const [, entry] of params.edits.entries()) { diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 220fe299b..feb0f592b 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -29,9 +29,7 @@ async function touch(file: string, time: number) { await fs.utimes(file, date, date) } -const runtime = ManagedRuntime.make( - Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer), -) +const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer)) afterAll(async () => { await runtime.dispose() From d72ddd71faf144864c985cd6372eeea7f2d4ba6f Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 19:20:00 -0400 Subject: [PATCH 074/151] refactor(tool): convert grep tool to Tool.defineEffect (#21937) --- packages/opencode/src/tool/grep.ts | 305 ++++++++++++----------- packages/opencode/src/tool/registry.ts | 3 +- packages/opencode/test/tool/grep.test.ts | 14 +- 3 files changed, 176 insertions(+), 146 deletions(-) diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts index 82e7ac166..8f53c2e21 100644 --- a/packages/opencode/src/tool/grep.ts +++ b/packages/opencode/src/tool/grep.ts @@ -1,156 +1,177 @@ import z from "zod" -import { text } from "node:stream/consumers" +import { Effect } from "effect" +import * as Stream from "effect/Stream" import { Tool } from "./tool" import { Filesystem } from "../util/filesystem" import { Ripgrep } from "../file/ripgrep" -import { Process } from "../util/process" +import { ChildProcess } from "effect/unstable/process" +import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import DESCRIPTION from "./grep.txt" import { Instance } from "../project/instance" import path from "path" -import { assertExternalDirectory } from "./external-directory" +import { assertExternalDirectoryEffect } from "./external-directory" const MAX_LINE_LENGTH = 2000 -export const GrepTool = Tool.define("grep", { - description: DESCRIPTION, - parameters: z.object({ - pattern: z.string().describe("The regex pattern to search for in file contents"), - path: z.string().optional().describe("The directory to search in. Defaults to the current working directory."), - include: z.string().optional().describe('File pattern to include in the search (e.g. "*.js", "*.{ts,tsx}")'), - }), - async execute(params, ctx) { - if (!params.pattern) { - throw new Error("pattern is required") - } - - await ctx.ask({ - permission: "grep", - patterns: [params.pattern], - always: ["*"], - metadata: { - pattern: params.pattern, - path: params.path, - include: params.include, - }, - }) - - let searchPath = params.path ?? Instance.directory - searchPath = path.isAbsolute(searchPath) ? searchPath : path.resolve(Instance.directory, searchPath) - await assertExternalDirectory(ctx, searchPath, { kind: "directory" }) - - const rgPath = await Ripgrep.filepath() - const args = ["-nH", "--hidden", "--no-messages", "--field-match-separator=|", "--regexp", params.pattern] - if (params.include) { - args.push("--glob", params.include) - } - args.push(searchPath) - - const proc = Process.spawn([rgPath, ...args], { - stdout: "pipe", - stderr: "pipe", - abort: ctx.abort, - }) - - if (!proc.stdout || !proc.stderr) { - throw new Error("Process output not available") - } - - const output = await text(proc.stdout) - const errorOutput = await text(proc.stderr) - const exitCode = await proc.exited - - // Exit codes: 0 = matches found, 1 = no matches, 2 = errors (but may still have matches) - // With --no-messages, we suppress error output but still get exit code 2 for broken symlinks etc. - // Only fail if exit code is 2 AND no output was produced - if (exitCode === 1 || (exitCode === 2 && !output.trim())) { - return { - title: params.pattern, - metadata: { matches: 0, truncated: false }, - output: "No files found", - } - } - - if (exitCode !== 0 && exitCode !== 2) { - throw new Error(`ripgrep failed: ${errorOutput}`) - } - - const hasErrors = exitCode === 2 - - // Handle both Unix (\n) and Windows (\r\n) line endings - const lines = output.trim().split(/\r?\n/) - const matches = [] - - for (const line of lines) { - if (!line) continue - - const [filePath, lineNumStr, ...lineTextParts] = line.split("|") - if (!filePath || !lineNumStr || lineTextParts.length === 0) continue - - const lineNum = parseInt(lineNumStr, 10) - const lineText = lineTextParts.join("|") - - const stats = Filesystem.stat(filePath) - if (!stats) continue - - matches.push({ - path: filePath, - modTime: stats.mtime.getTime(), - lineNum, - lineText, - }) - } - - matches.sort((a, b) => b.modTime - a.modTime) - - const limit = 100 - const truncated = matches.length > limit - const finalMatches = truncated ? matches.slice(0, limit) : matches - - if (finalMatches.length === 0) { - return { - title: params.pattern, - metadata: { matches: 0, truncated: false }, - output: "No files found", - } - } - - const totalMatches = matches.length - const outputLines = [`Found ${totalMatches} matches${truncated ? ` (showing first ${limit})` : ""}`] - - let currentFile = "" - for (const match of finalMatches) { - if (currentFile !== match.path) { - if (currentFile !== "") { - outputLines.push("") - } - currentFile = match.path - outputLines.push(`${match.path}:`) - } - const truncatedLineText = - match.lineText.length > MAX_LINE_LENGTH ? match.lineText.substring(0, MAX_LINE_LENGTH) + "..." : match.lineText - outputLines.push(` Line ${match.lineNum}: ${truncatedLineText}`) - } - - if (truncated) { - outputLines.push("") - outputLines.push( - `(Results truncated: showing ${limit} of ${totalMatches} matches (${totalMatches - limit} hidden). Consider using a more specific path or pattern.)`, - ) - } - - if (hasErrors) { - outputLines.push("") - outputLines.push("(Some paths were inaccessible and skipped)") - } +export const GrepTool = Tool.defineEffect( + "grep", + Effect.gen(function* () { + const spawner = yield* ChildProcessSpawner return { - title: params.pattern, - metadata: { - matches: totalMatches, - truncated, - }, - output: outputLines.join("\n"), + description: DESCRIPTION, + parameters: z.object({ + pattern: z.string().describe("The regex pattern to search for in file contents"), + path: z.string().optional().describe("The directory to search in. Defaults to the current working directory."), + include: z.string().optional().describe('File pattern to include in the search (e.g. "*.js", "*.{ts,tsx}")'), + }), + execute: (params: { pattern: string; path?: string; include?: string }, ctx: Tool.Context) => + Effect.gen(function* () { + if (!params.pattern) { + throw new Error("pattern is required") + } + + yield* Effect.promise(() => + ctx.ask({ + permission: "grep", + patterns: [params.pattern], + always: ["*"], + metadata: { + pattern: params.pattern, + path: params.path, + include: params.include, + }, + }), + ) + + let searchPath = params.path ?? Instance.directory + searchPath = path.isAbsolute(searchPath) ? searchPath : path.resolve(Instance.directory, searchPath) + yield* assertExternalDirectoryEffect(ctx, searchPath, { kind: "directory" }) + + const rgPath = yield* Effect.promise(() => Ripgrep.filepath()) + const args = ["-nH", "--hidden", "--no-messages", "--field-match-separator=|", "--regexp", params.pattern] + if (params.include) { + args.push("--glob", params.include) + } + args.push(searchPath) + + const result = yield* Effect.scoped( + Effect.gen(function* () { + const handle = yield* spawner.spawn( + ChildProcess.make(rgPath, args, { + stdin: "ignore", + }), + ) + + const [output, errorOutput] = yield* Effect.all( + [Stream.mkString(Stream.decodeText(handle.stdout)), Stream.mkString(Stream.decodeText(handle.stderr))], + { concurrency: 2 }, + ) + + const exitCode = yield* handle.exitCode + + return { output, errorOutput, exitCode } + }), + ) + + const { output, errorOutput, exitCode } = result + + // Exit codes: 0 = matches found, 1 = no matches, 2 = errors (but may still have matches) + // With --no-messages, we suppress error output but still get exit code 2 for broken symlinks etc. + // Only fail if exit code is 2 AND no output was produced + if (exitCode === 1 || (exitCode === 2 && !output.trim())) { + return { + title: params.pattern, + metadata: { matches: 0, truncated: false }, + output: "No files found", + } + } + + if (exitCode !== 0 && exitCode !== 2) { + throw new Error(`ripgrep failed: ${errorOutput}`) + } + + const hasErrors = exitCode === 2 + + // Handle both Unix (\n) and Windows (\r\n) line endings + const lines = output.trim().split(/\r?\n/) + const matches = [] + + for (const line of lines) { + if (!line) continue + + const [filePath, lineNumStr, ...lineTextParts] = line.split("|") + if (!filePath || !lineNumStr || lineTextParts.length === 0) continue + + const lineNum = parseInt(lineNumStr, 10) + const lineText = lineTextParts.join("|") + + const stats = Filesystem.stat(filePath) + if (!stats) continue + + matches.push({ + path: filePath, + modTime: stats.mtime.getTime(), + lineNum, + lineText, + }) + } + + matches.sort((a, b) => b.modTime - a.modTime) + + const limit = 100 + const truncated = matches.length > limit + const finalMatches = truncated ? matches.slice(0, limit) : matches + + if (finalMatches.length === 0) { + return { + title: params.pattern, + metadata: { matches: 0, truncated: false }, + output: "No files found", + } + } + + const totalMatches = matches.length + const outputLines = [`Found ${totalMatches} matches${truncated ? ` (showing first ${limit})` : ""}`] + + let currentFile = "" + for (const match of finalMatches) { + if (currentFile !== match.path) { + if (currentFile !== "") { + outputLines.push("") + } + currentFile = match.path + outputLines.push(`${match.path}:`) + } + const truncatedLineText = + match.lineText.length > MAX_LINE_LENGTH + ? match.lineText.substring(0, MAX_LINE_LENGTH) + "..." + : match.lineText + outputLines.push(` Line ${match.lineNum}: ${truncatedLineText}`) + } + + if (truncated) { + outputLines.push("") + outputLines.push( + `(Results truncated: showing ${limit} of ${totalMatches} matches (${totalMatches - limit} hidden). Consider using a more specific path or pattern.)`, + ) + } + + if (hasErrors) { + outputLines.push("") + outputLines.push("(Some paths were inaccessible and skipped)") + } + + return { + title: params.pattern, + metadata: { + matches: totalMatches, + truncated, + }, + output: outputLines.join("\n"), + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, -}) + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index bbc154371..84dd7b79a 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -112,6 +112,7 @@ export namespace ToolRegistry { const globtool = yield* GlobTool const writetool = yield* WriteTool const edit = yield* EditTool + const greptool = yield* GrepTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -173,7 +174,7 @@ export namespace ToolRegistry { bash: Tool.init(bash), read: Tool.init(read), glob: Tool.init(globtool), - grep: Tool.init(GrepTool), + grep: Tool.init(greptool), edit: Tool.init(edit), write: Tool.init(writetool), task: Tool.init(task), diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index e03b1752e..a0cfb61c4 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -1,9 +1,17 @@ import { describe, expect, test } from "bun:test" import path from "path" +import { Effect, Layer, ManagedRuntime } from "effect" import { GrepTool } from "../../src/tool/grep" import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" + +const runtime = ManagedRuntime.make(Layer.mergeAll(CrossSpawnSpawner.defaultLayer)) + +function initGrep() { + return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init())))) +} const ctx = { sessionID: SessionID.make("ses_test"), @@ -23,7 +31,7 @@ describe("tool.grep", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const grep = await GrepTool.init() + const grep = await initGrep() const result = await grep.execute( { pattern: "export", @@ -47,7 +55,7 @@ describe("tool.grep", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const grep = await GrepTool.init() + const grep = await initGrep() const result = await grep.execute( { pattern: "xyznonexistentpatternxyz123", @@ -72,7 +80,7 @@ describe("tool.grep", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const grep = await GrepTool.init() + const grep = await initGrep() const result = await grep.execute( { pattern: "line", From d9d5a0615e2fbfc702bbb8eca2557868b053a3aa Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 19:36:13 -0400 Subject: [PATCH 075/151] refactor: break SessionPrompt/TaskTool cycle via ctx injection (#21948) --- packages/opencode/src/session/prompt.ts | 12 +++- packages/opencode/src/tool/task.ts | 17 +++-- packages/opencode/test/tool/task.test.ts | 85 +++++++----------------- 3 files changed, 47 insertions(+), 67 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 33be6b9c5..66740cd40 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -46,7 +46,7 @@ import { Process } from "@/util/process" import { Cause, Effect, Exit, Layer, Option, Scope, ServiceMap } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" -import { TaskTool } from "@/tool/task" +import { TaskTool, type TaskPromptOps } from "@/tool/task" import { SessionRunState } from "./run-state" // @ts-ignore @@ -356,7 +356,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the abort: options.abortSignal!, messageID: input.processor.message.id, callID: options.toolCallId, - extra: { model: input.model, bypassAgentCheck: input.bypassAgentCheck }, + extra: { model: input.model, bypassAgentCheck: input.bypassAgentCheck, promptOps }, agent: input.agent.name, messages: input.messages, metadata: (val) => @@ -586,7 +586,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the sessionID, abort: signal, callID: part.callID, - extra: { bypassAgentCheck: true }, + extra: { bypassAgentCheck: true, promptOps }, messages: msgs, metadata(val: { title?: string; metadata?: Record }) { return Effect.runPromise( @@ -1655,6 +1655,12 @@ NOTE: At any point in time through this workflow you should feel free to ask the return result }) + const promptOps: TaskPromptOps = { + cancel: (sessionID) => Effect.runFork(cancel(sessionID)), + resolvePromptParts: (template) => Effect.runPromise(resolvePromptParts(template)), + prompt: (input) => Effect.runPromise(prompt(input)), + } + return Service.of({ cancel, prompt, diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 900938f0d..440691e46 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -5,11 +5,17 @@ import { Session } from "../session" import { SessionID, MessageID } from "../session/schema" import { MessageV2 } from "../session/message-v2" import { Agent } from "../agent/agent" -import { SessionPrompt } from "../session/prompt" +import type { SessionPrompt } from "../session/prompt" import { Config } from "../config/config" import { Effect } from "effect" import { Log } from "@/util/log" +export interface TaskPromptOps { + cancel(sessionID: SessionID): void + resolvePromptParts(template: string): Promise + prompt(input: SessionPrompt.PromptInput): Promise +} + const id = "task" const parameters = z.object({ @@ -113,10 +119,13 @@ export const TaskTool = Tool.defineEffect( }, }) + const ops = ctx.extra?.promptOps as TaskPromptOps + if (!ops) return yield* Effect.fail(new Error("TaskTool requires promptOps in ctx.extra")) + const messageID = MessageID.ascending() function cancel() { - SessionPrompt.cancel(nextSession.id) + ops.cancel(nextSession.id) } return yield* Effect.acquireUseRelease( @@ -125,9 +134,9 @@ export const TaskTool = Tool.defineEffect( }), () => Effect.gen(function* () { - const parts = yield* Effect.promise(() => SessionPrompt.resolvePromptParts(params.prompt)) + const parts = yield* Effect.promise(() => ops.resolvePromptParts(params.prompt)) const result = yield* Effect.promise(() => - SessionPrompt.prompt({ + ops.prompt({ messageID, sessionID: nextSession.id, model: { diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index e3e6d58d3..c019052a5 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -6,10 +6,10 @@ import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Instance } from "../../src/project/instance" import { Session } from "../../src/session" import { MessageV2 } from "../../src/session/message-v2" -import { SessionPrompt } from "../../src/session/prompt" +import type { SessionPrompt } from "../../src/session/prompt" import { MessageID, PartID } from "../../src/session/schema" import { ModelID, ProviderID } from "../../src/provider/schema" -import { TaskTool } from "../../src/tool/task" +import { TaskTool, type TaskPromptOps } from "../../src/tool/task" import { ToolRegistry } from "../../src/tool/registry" import { provideTmpdirInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" @@ -62,6 +62,17 @@ const seed = Effect.fn("TaskToolTest.seed")(function* (title = "Pinned") { return { chat, assistant } }) +function stubOps(opts?: { onPrompt?: (input: SessionPrompt.PromptInput) => void; text?: string }): TaskPromptOps { + return { + cancel() {}, + resolvePromptParts: async (template) => [{ type: "text", text: template }], + prompt: async (input) => { + opts?.onPrompt?.(input) + return reply(input, opts?.text ?? "done") + }, + } +} + function reply(input: Parameters[0], text: string): MessageV2.WithParts { const id = MessageID.ascending() return { @@ -180,21 +191,8 @@ describe("tool.task", () => { const child = yield* sessions.create({ parentID: chat.id, title: "Existing child" }) const tool = yield* TaskTool const def = yield* Effect.promise(() => tool.init()) - const resolve = SessionPrompt.resolvePromptParts - const prompt = SessionPrompt.prompt - let seen: Parameters[0] | undefined - - SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] - SessionPrompt.prompt = async (input) => { - seen = input - return reply(input, "resumed") - } - yield* Effect.addFinalizer(() => - Effect.sync(() => { - SessionPrompt.resolvePromptParts = resolve - SessionPrompt.prompt = prompt - }), - ) + let seen: SessionPrompt.PromptInput | undefined + const promptOps = stubOps({ text: "resumed", onPrompt: (input) => (seen = input) }) const result = yield* Effect.promise(() => def.execute( @@ -209,6 +207,7 @@ describe("tool.task", () => { messageID: assistant.id, agent: "build", abort: new AbortController().signal, + extra: { promptOps }, messages: [], metadata() {}, ask: async () => {}, @@ -232,20 +231,10 @@ describe("tool.task", () => { const { chat, assistant } = yield* seed() const tool = yield* TaskTool const def = yield* Effect.promise(() => tool.init()) - const resolve = SessionPrompt.resolvePromptParts - const prompt = SessionPrompt.prompt const calls: unknown[] = [] + const promptOps = stubOps() - SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] - SessionPrompt.prompt = async (input) => reply(input, "done") - yield* Effect.addFinalizer(() => - Effect.sync(() => { - SessionPrompt.resolvePromptParts = resolve - SessionPrompt.prompt = prompt - }), - ) - - const exec = (extra?: { bypassAgentCheck?: boolean }) => + const exec = (extra?: Record) => Effect.promise(() => def.execute( { @@ -258,7 +247,7 @@ describe("tool.task", () => { messageID: assistant.id, agent: "build", abort: new AbortController().signal, - extra, + extra: { promptOps, ...extra }, messages: [], metadata() {}, ask: async (input) => { @@ -292,21 +281,8 @@ describe("tool.task", () => { const { chat, assistant } = yield* seed() const tool = yield* TaskTool const def = yield* Effect.promise(() => tool.init()) - const resolve = SessionPrompt.resolvePromptParts - const prompt = SessionPrompt.prompt - let seen: Parameters[0] | undefined - - SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] - SessionPrompt.prompt = async (input) => { - seen = input - return reply(input, "created") - } - yield* Effect.addFinalizer(() => - Effect.sync(() => { - SessionPrompt.resolvePromptParts = resolve - SessionPrompt.prompt = prompt - }), - ) + let seen: SessionPrompt.PromptInput | undefined + const promptOps = stubOps({ text: "created", onPrompt: (input) => (seen = input) }) const result = yield* Effect.promise(() => def.execute( @@ -321,6 +297,7 @@ describe("tool.task", () => { messageID: assistant.id, agent: "build", abort: new AbortController().signal, + extra: { promptOps }, messages: [], metadata() {}, ask: async () => {}, @@ -346,21 +323,8 @@ describe("tool.task", () => { const { chat, assistant } = yield* seed() const tool = yield* TaskTool const def = yield* Effect.promise(() => tool.init()) - const resolve = SessionPrompt.resolvePromptParts - const prompt = SessionPrompt.prompt - let seen: Parameters[0] | undefined - - SessionPrompt.resolvePromptParts = async (template) => [{ type: "text", text: template }] - SessionPrompt.prompt = async (input) => { - seen = input - return reply(input, "done") - } - yield* Effect.addFinalizer(() => - Effect.sync(() => { - SessionPrompt.resolvePromptParts = resolve - SessionPrompt.prompt = prompt - }), - ) + let seen: SessionPrompt.PromptInput | undefined + const promptOps = stubOps({ onPrompt: (input) => (seen = input) }) const result = yield* Effect.promise(() => def.execute( @@ -374,6 +338,7 @@ describe("tool.task", () => { messageID: assistant.id, agent: "build", abort: new AbortController().signal, + extra: { promptOps }, messages: [], metadata() {}, ask: async () => {}, From 0556774097b0223b1e547260d2b7f46640c6e884 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 19:42:14 -0400 Subject: [PATCH 076/151] refactor(tool): convert apply_patch to Tool.defineEffect (#21938) --- packages/opencode/src/tool/apply_patch.ts | 475 +++++++++--------- packages/opencode/src/tool/registry.ts | 6 +- .../test/session/prompt-effect.test.ts | 2 + .../test/session/snapshot-tool-race.test.ts | 2 + .../opencode/test/tool/apply_patch.test.ts | 9 +- 5 files changed, 264 insertions(+), 230 deletions(-) diff --git a/packages/opencode/src/tool/apply_patch.ts b/packages/opencode/src/tool/apply_patch.ts index 30b2e91ac..9645fc1ed 100644 --- a/packages/opencode/src/tool/apply_patch.ts +++ b/packages/opencode/src/tool/apply_patch.ts @@ -1,16 +1,16 @@ import z from "zod" import * as path from "path" -import * as fs from "fs/promises" +import { Effect } from "effect" import { Tool } from "./tool" import { Bus } from "../bus" import { FileWatcher } from "../file/watcher" import { Instance } from "../project/instance" import { Patch } from "../patch" import { createTwoFilesPatch, diffLines } from "diff" -import { assertExternalDirectory } from "./external-directory" +import { assertExternalDirectoryEffect } from "./external-directory" import { trimDiff } from "./edit" import { LSP } from "../lsp" -import { Filesystem } from "../util/filesystem" +import { AppFileSystem } from "../filesystem" import DESCRIPTION from "./apply_patch.txt" import { File } from "../file" import { Format } from "../format" @@ -19,261 +19,280 @@ const PatchParams = z.object({ patchText: z.string().describe("The full patch text that describes all changes to be made"), }) -export const ApplyPatchTool = Tool.define("apply_patch", { - description: DESCRIPTION, - parameters: PatchParams, - async execute(params, ctx) { - if (!params.patchText) { - throw new Error("patchText is required") - } +export const ApplyPatchTool = Tool.defineEffect( + "apply_patch", + Effect.gen(function* () { + const lsp = yield* LSP.Service + const afs = yield* AppFileSystem.Service + const format = yield* Format.Service - // Parse the patch to get hunks - let hunks: Patch.Hunk[] - try { - const parseResult = Patch.parsePatch(params.patchText) - hunks = parseResult.hunks - } catch (error) { - throw new Error(`apply_patch verification failed: ${error}`) - } - - if (hunks.length === 0) { - const normalized = params.patchText.replace(/\r\n/g, "\n").replace(/\r/g, "\n").trim() - if (normalized === "*** Begin Patch\n*** End Patch") { - throw new Error("patch rejected: empty patch") + const run = Effect.fn("ApplyPatchTool.execute")(function* (params: z.infer, ctx: Tool.Context) { + if (!params.patchText) { + return yield* Effect.fail(new Error("patchText is required")) } - throw new Error("apply_patch verification failed: no hunks found") - } - // Validate file paths and check permissions - const fileChanges: Array<{ - filePath: string - oldContent: string - newContent: string - type: "add" | "update" | "delete" | "move" - movePath?: string - diff: string - additions: number - deletions: number - }> = [] + // Parse the patch to get hunks + let hunks: Patch.Hunk[] + try { + const parseResult = Patch.parsePatch(params.patchText) + hunks = parseResult.hunks + } catch (error) { + return yield* Effect.fail(new Error(`apply_patch verification failed: ${error}`)) + } - let totalDiff = "" - - for (const hunk of hunks) { - const filePath = path.resolve(Instance.directory, hunk.path) - await assertExternalDirectory(ctx, filePath) - - switch (hunk.type) { - case "add": { - const oldContent = "" - const newContent = - hunk.contents.length === 0 || hunk.contents.endsWith("\n") ? hunk.contents : `${hunk.contents}\n` - const diff = trimDiff(createTwoFilesPatch(filePath, filePath, oldContent, newContent)) - - let additions = 0 - let deletions = 0 - for (const change of diffLines(oldContent, newContent)) { - if (change.added) additions += change.count || 0 - if (change.removed) deletions += change.count || 0 - } - - fileChanges.push({ - filePath, - oldContent, - newContent, - type: "add", - diff, - additions, - deletions, - }) - - totalDiff += diff + "\n" - break + if (hunks.length === 0) { + const normalized = params.patchText.replace(/\r\n/g, "\n").replace(/\r/g, "\n").trim() + if (normalized === "*** Begin Patch\n*** End Patch") { + return yield* Effect.fail(new Error("patch rejected: empty patch")) } + return yield* Effect.fail(new Error("apply_patch verification failed: no hunks found")) + } - case "update": { - // Check if file exists for update - const stats = await fs.stat(filePath).catch(() => null) - if (!stats || stats.isDirectory()) { - throw new Error(`apply_patch verification failed: Failed to read file to update: ${filePath}`) + // Validate file paths and check permissions + const fileChanges: Array<{ + filePath: string + oldContent: string + newContent: string + type: "add" | "update" | "delete" | "move" + movePath?: string + diff: string + additions: number + deletions: number + }> = [] + + let totalDiff = "" + + for (const hunk of hunks) { + const filePath = path.resolve(Instance.directory, hunk.path) + yield* assertExternalDirectoryEffect(ctx, filePath) + + switch (hunk.type) { + case "add": { + const oldContent = "" + const newContent = + hunk.contents.length === 0 || hunk.contents.endsWith("\n") ? hunk.contents : `${hunk.contents}\n` + const diff = trimDiff(createTwoFilesPatch(filePath, filePath, oldContent, newContent)) + + let additions = 0 + let deletions = 0 + for (const change of diffLines(oldContent, newContent)) { + if (change.added) additions += change.count || 0 + if (change.removed) deletions += change.count || 0 + } + + fileChanges.push({ + filePath, + oldContent, + newContent, + type: "add", + diff, + additions, + deletions, + }) + + totalDiff += diff + "\n" + break } - const oldContent = await fs.readFile(filePath, "utf-8") - let newContent = oldContent + case "update": { + // Check if file exists for update + const stats = yield* afs.stat(filePath).pipe(Effect.catch(() => Effect.succeed(undefined))) + if (!stats || stats.type === "Directory") { + return yield* Effect.fail( + new Error(`apply_patch verification failed: Failed to read file to update: ${filePath}`), + ) + } - // Apply the update chunks to get new content - try { - const fileUpdate = Patch.deriveNewContentsFromChunks(filePath, hunk.chunks) - newContent = fileUpdate.content - } catch (error) { - throw new Error(`apply_patch verification failed: ${error}`) + const oldContent = yield* afs.readFileString(filePath) + let newContent = oldContent + + // Apply the update chunks to get new content + try { + const fileUpdate = Patch.deriveNewContentsFromChunks(filePath, hunk.chunks) + newContent = fileUpdate.content + } catch (error) { + return yield* Effect.fail(new Error(`apply_patch verification failed: ${error}`)) + } + + const diff = trimDiff(createTwoFilesPatch(filePath, filePath, oldContent, newContent)) + + let additions = 0 + let deletions = 0 + for (const change of diffLines(oldContent, newContent)) { + if (change.added) additions += change.count || 0 + if (change.removed) deletions += change.count || 0 + } + + const movePath = hunk.move_path ? path.resolve(Instance.directory, hunk.move_path) : undefined + yield* assertExternalDirectoryEffect(ctx, movePath) + + fileChanges.push({ + filePath, + oldContent, + newContent, + type: hunk.move_path ? "move" : "update", + movePath, + diff, + additions, + deletions, + }) + + totalDiff += diff + "\n" + break } - const diff = trimDiff(createTwoFilesPatch(filePath, filePath, oldContent, newContent)) + case "delete": { + const contentToDelete = yield* afs.readFileString(filePath).pipe( + Effect.catch((error) => Effect.fail(new Error(`apply_patch verification failed: ${error}`))), + ) + const deleteDiff = trimDiff(createTwoFilesPatch(filePath, filePath, contentToDelete, "")) - let additions = 0 - let deletions = 0 - for (const change of diffLines(oldContent, newContent)) { - if (change.added) additions += change.count || 0 - if (change.removed) deletions += change.count || 0 + const deletions = contentToDelete.split("\n").length + + fileChanges.push({ + filePath, + oldContent: contentToDelete, + newContent: "", + type: "delete", + diff: deleteDiff, + additions: 0, + deletions, + }) + + totalDiff += deleteDiff + "\n" + break } - - const movePath = hunk.move_path ? path.resolve(Instance.directory, hunk.move_path) : undefined - await assertExternalDirectory(ctx, movePath) - - fileChanges.push({ - filePath, - oldContent, - newContent, - type: hunk.move_path ? "move" : "update", - movePath, - diff, - additions, - deletions, - }) - - totalDiff += diff + "\n" - break - } - - case "delete": { - const contentToDelete = await fs.readFile(filePath, "utf-8").catch((error) => { - throw new Error(`apply_patch verification failed: ${error}`) - }) - const deleteDiff = trimDiff(createTwoFilesPatch(filePath, filePath, contentToDelete, "")) - - const deletions = contentToDelete.split("\n").length - - fileChanges.push({ - filePath, - oldContent: contentToDelete, - newContent: "", - type: "delete", - diff: deleteDiff, - additions: 0, - deletions, - }) - - totalDiff += deleteDiff + "\n" - break } } - } - // Build per-file metadata for UI rendering (used for both permission and result) - const files = fileChanges.map((change) => ({ - filePath: change.filePath, - relativePath: path.relative(Instance.worktree, change.movePath ?? change.filePath).replaceAll("\\", "/"), - type: change.type, - patch: change.diff, - additions: change.additions, - deletions: change.deletions, - movePath: change.movePath, - })) + // Build per-file metadata for UI rendering (used for both permission and result) + const files = fileChanges.map((change) => ({ + filePath: change.filePath, + relativePath: path.relative(Instance.worktree, change.movePath ?? change.filePath).replaceAll("\\", "/"), + type: change.type, + patch: change.diff, + additions: change.additions, + deletions: change.deletions, + movePath: change.movePath, + })) - // Check permissions if needed - const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath).replaceAll("\\", "/")) - await ctx.ask({ - permission: "edit", - patterns: relativePaths, - always: ["*"], - metadata: { - filepath: relativePaths.join(", "), - diff: totalDiff, - files, - }, - }) + // Check permissions if needed + const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath).replaceAll("\\", "/")) + yield* Effect.promise(() => + ctx.ask({ + permission: "edit", + patterns: relativePaths, + always: ["*"], + metadata: { + filepath: relativePaths.join(", "), + diff: totalDiff, + files, + }, + }), + ) - // Apply the changes - const updates: Array<{ file: string; event: "add" | "change" | "unlink" }> = [] + // Apply the changes + const updates: Array<{ file: string; event: "add" | "change" | "unlink" }> = [] - for (const change of fileChanges) { - const edited = change.type === "delete" ? undefined : (change.movePath ?? change.filePath) - switch (change.type) { - case "add": - // Create parent directories (recursive: true is safe on existing/root dirs) - await fs.mkdir(path.dirname(change.filePath), { recursive: true }) - await fs.writeFile(change.filePath, change.newContent, "utf-8") - updates.push({ file: change.filePath, event: "add" }) - break - - case "update": - await fs.writeFile(change.filePath, change.newContent, "utf-8") - updates.push({ file: change.filePath, event: "change" }) - break - - case "move": - if (change.movePath) { + for (const change of fileChanges) { + const edited = change.type === "delete" ? undefined : (change.movePath ?? change.filePath) + switch (change.type) { + case "add": // Create parent directories (recursive: true is safe on existing/root dirs) - await fs.mkdir(path.dirname(change.movePath), { recursive: true }) - await fs.writeFile(change.movePath, change.newContent, "utf-8") - await fs.unlink(change.filePath) + + yield* afs.writeWithDirs(change.filePath, change.newContent) + updates.push({ file: change.filePath, event: "add" }) + break + + case "update": + yield* afs.writeWithDirs(change.filePath, change.newContent) + updates.push({ file: change.filePath, event: "change" }) + break + + case "move": + if (change.movePath) { + // Create parent directories (recursive: true is safe on existing/root dirs) + + yield* afs.writeWithDirs(change.movePath!, change.newContent) + yield* afs.remove(change.filePath) + updates.push({ file: change.filePath, event: "unlink" }) + updates.push({ file: change.movePath, event: "add" }) + } + break + + case "delete": + yield* afs.remove(change.filePath) updates.push({ file: change.filePath, event: "unlink" }) - updates.push({ file: change.movePath, event: "add" }) - } - break + break + } - case "delete": - await fs.unlink(change.filePath) - updates.push({ file: change.filePath, event: "unlink" }) - break + if (edited) { + yield* format.file(edited) + Bus.publish(File.Event.Edited, { file: edited }) + } } - if (edited) { - await Format.file(edited) - Bus.publish(File.Event.Edited, { file: edited }) + // Publish file change events + for (const update of updates) { + Bus.publish(FileWatcher.Event.Updated, update) } - } - // Publish file change events - for (const update of updates) { - await Bus.publish(FileWatcher.Event.Updated, update) - } - - // Notify LSP of file changes and collect diagnostics - for (const change of fileChanges) { - if (change.type === "delete") continue - const target = change.movePath ?? change.filePath - await LSP.touchFile(target, true) - } - const diagnostics = await LSP.diagnostics() - - // Generate output summary - const summaryLines = fileChanges.map((change) => { - if (change.type === "add") { - return `A ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}` + // Notify LSP of file changes and collect diagnostics + for (const change of fileChanges) { + if (change.type === "delete") continue + const target = change.movePath ?? change.filePath + yield* lsp.touchFile(target, true) } - if (change.type === "delete") { - return `D ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}` + const diagnostics = yield* lsp.diagnostics() + + // Generate output summary + const summaryLines = fileChanges.map((change) => { + if (change.type === "add") { + return `A ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}` + } + if (change.type === "delete") { + return `D ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}` + } + const target = change.movePath ?? change.filePath + return `M ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}` + }) + let output = `Success. Updated the following files:\n${summaryLines.join("\n")}` + + // Report LSP errors for changed files + const MAX_DIAGNOSTICS_PER_FILE = 20 + for (const change of fileChanges) { + if (change.type === "delete") continue + const target = change.movePath ?? change.filePath + const normalized = AppFileSystem.normalizePath(target) + const issues = diagnostics[normalized] ?? [] + const errors = issues.filter((item) => item.severity === 1) + if (errors.length > 0) { + const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) + const suffix = + errors.length > MAX_DIAGNOSTICS_PER_FILE + ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` + : "" + output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + } + } + + return { + title: output, + metadata: { + diff: totalDiff, + files, + diagnostics, + }, + output, } - const target = change.movePath ?? change.filePath - return `M ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}` }) - let output = `Success. Updated the following files:\n${summaryLines.join("\n")}` - - // Report LSP errors for changed files - const MAX_DIAGNOSTICS_PER_FILE = 20 - for (const change of fileChanges) { - if (change.type === "delete") continue - const target = change.movePath ?? change.filePath - const normalized = Filesystem.normalizePath(target) - const issues = diagnostics[normalized] ?? [] - const errors = issues.filter((item) => item.severity === 1) - if (errors.length > 0) { - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" - output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } - } return { - title: output, - metadata: { - diff: totalDiff, - files, - diagnostics, + description: DESCRIPTION, + parameters: PatchParams, + async execute(params: z.infer, ctx) { + return Effect.runPromise(run(params, ctx).pipe(Effect.orDie)) }, - output, } - }, -}) + }), +) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 84dd7b79a..a24ddb28c 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -34,6 +34,7 @@ import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { Ripgrep } from "../file/ripgrep" +import { Format } from "../format" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { Env } from "../env" @@ -91,6 +92,7 @@ export namespace ToolRegistry { | HttpClient.HttpClient | ChildProcessSpawner | Ripgrep.Service + | Format.Service > = Layer.effect( Service, Effect.gen(function* () { @@ -113,6 +115,7 @@ export namespace ToolRegistry { const writetool = yield* WriteTool const edit = yield* EditTool const greptool = yield* GrepTool + const patchtool = yield* ApplyPatchTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -183,7 +186,7 @@ export namespace ToolRegistry { search: Tool.init(websearch), code: Tool.init(codesearch), skill: Tool.init(SkillTool), - patch: Tool.init(ApplyPatchTool), + patch: Tool.init(patchtool), question: Tool.init(question), lsp: Tool.init(lsptool), plan: Tool.init(plan), @@ -325,6 +328,7 @@ export namespace ToolRegistry { Layer.provide(Instruction.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), Layer.provide(FetchHttpClient.layer), + Layer.provide(Format.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Ripgrep.defaultLayer), ), diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index aef88b233..bd7548d2a 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -38,6 +38,7 @@ import { Truncate } from "../../src/tool/truncate" import { Log } from "../../src/util/log" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Ripgrep } from "../../src/file/ripgrep" +import { Format } from "../../src/format" import { provideTmpdirInstance, provideTmpdirServer } from "../fixture/fixture" import { testEffect } from "../lib/effect" import { reply, TestLLMServer } from "../lib/llm-server" @@ -174,6 +175,7 @@ function makeHttp() { Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Ripgrep.defaultLayer), + Layer.provide(Format.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 10d4d8f6f..4901c6f4f 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -54,6 +54,7 @@ import { Truncate } from "../../src/tool/truncate" import { AppFileSystem } from "../../src/filesystem" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Ripgrep } from "../../src/file/ripgrep" +import { Format } from "../../src/format" Log.init({ print: false }) @@ -138,6 +139,7 @@ function makeHttp() { Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Ripgrep.defaultLayer), + Layer.provide(Format.defaultLayer), Layer.provideMerge(todo), Layer.provideMerge(question), Layer.provideMerge(deps), diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index 19c8cfefd..d54d34b83 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -1,11 +1,17 @@ import { describe, expect, test } from "bun:test" import path from "path" import * as fs from "fs/promises" +import { Effect, ManagedRuntime, Layer } from "effect" import { ApplyPatchTool } from "../../src/tool/apply_patch" import { Instance } from "../../src/project/instance" +import { LSP } from "../../src/lsp" +import { AppFileSystem } from "../../src/filesystem" +import { Format } from "../../src/format" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" +const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer)) + const baseCtx = { sessionID: SessionID.make("ses_test"), messageID: MessageID.make(""), @@ -40,7 +46,8 @@ type ToolCtx = typeof baseCtx & { } const execute = async (params: { patchText: string }, ctx: ToolCtx) => { - const tool = await ApplyPatchTool.init() + const info = await runtime.runPromise(ApplyPatchTool) + const tool = await info.init() return tool.execute(params, ctx) } From f2c492a8e6efd3fb20d8d494345cd41d72aa4351 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Fri, 10 Apr 2026 23:43:20 +0000 Subject: [PATCH 077/151] chore: generate --- packages/opencode/src/tool/apply_patch.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/opencode/src/tool/apply_patch.ts b/packages/opencode/src/tool/apply_patch.ts index 9645fc1ed..4b523aeaf 100644 --- a/packages/opencode/src/tool/apply_patch.ts +++ b/packages/opencode/src/tool/apply_patch.ts @@ -142,9 +142,9 @@ export const ApplyPatchTool = Tool.defineEffect( } case "delete": { - const contentToDelete = yield* afs.readFileString(filePath).pipe( - Effect.catch((error) => Effect.fail(new Error(`apply_patch verification failed: ${error}`))), - ) + const contentToDelete = yield* afs + .readFileString(filePath) + .pipe(Effect.catch((error) => Effect.fail(new Error(`apply_patch verification failed: ${error}`)))) const deleteDiff = trimDiff(createTwoFilesPatch(filePath, filePath, contentToDelete, "")) const deletions = contentToDelete.split("\n").length @@ -199,7 +199,7 @@ export const ApplyPatchTool = Tool.defineEffect( switch (change.type) { case "add": // Create parent directories (recursive: true is safe on existing/root dirs) - + yield* afs.writeWithDirs(change.filePath, change.newContent) updates.push({ file: change.filePath, event: "add" }) break @@ -212,7 +212,7 @@ export const ApplyPatchTool = Tool.defineEffect( case "move": if (change.movePath) { // Create parent directories (recursive: true is safe on existing/root dirs) - + yield* afs.writeWithDirs(change.movePath!, change.newContent) yield* afs.remove(change.filePath) updates.push({ file: change.filePath, event: "unlink" }) @@ -269,9 +269,7 @@ export const ApplyPatchTool = Tool.defineEffect( if (errors.length > 0) { const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE - ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` - : "" + errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` } } From cf27a733971ebde73d3c986dfc8ace0336b0234b Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 19:46:52 -0400 Subject: [PATCH 078/151] feat: add AppRuntime for unified service composition (#21953) --- packages/opencode/src/bus/index.ts | 2 + packages/opencode/src/effect/app-runtime.ts | 100 ++++++++++++++++++++ packages/opencode/src/mcp/auth.ts | 2 +- packages/opencode/src/project/vcs.ts | 2 +- packages/opencode/src/pty/index.ts | 2 +- packages/opencode/src/session/prompt.ts | 2 +- packages/opencode/src/worktree/index.ts | 2 +- 7 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 packages/opencode/src/effect/app-runtime.ts diff --git a/packages/opencode/src/bus/index.ts b/packages/opencode/src/bus/index.ts index 6db4eb04f..87b08d610 100644 --- a/packages/opencode/src/bus/index.ts +++ b/packages/opencode/src/bus/index.ts @@ -169,6 +169,8 @@ export namespace Bus { }), ) + export const defaultLayer = layer + const { runPromise, runSync } = makeRuntime(Service, layer) // runSync is safe here because the subscribe chain (InstanceState.get, PubSub.subscribe, diff --git a/packages/opencode/src/effect/app-runtime.ts b/packages/opencode/src/effect/app-runtime.ts new file mode 100644 index 000000000..674ca1a2a --- /dev/null +++ b/packages/opencode/src/effect/app-runtime.ts @@ -0,0 +1,100 @@ +import { Layer, ManagedRuntime } from "effect" +import { memoMap } from "./run-service" +import { Observability } from "./oltp" + +import { AppFileSystem } from "@/filesystem" +import { Bus } from "@/bus" +import { Auth } from "@/auth" +import { Account } from "@/account" +import { Config } from "@/config/config" +import { Git } from "@/git" +import { Ripgrep } from "@/file/ripgrep" +import { FileTime } from "@/file/time" +import { File } from "@/file" +import { FileWatcher } from "@/file/watcher" +import { Storage } from "@/storage/storage" +import { Snapshot } from "@/snapshot" +import { Plugin } from "@/plugin" +import { Provider } from "@/provider/provider" +import { ProviderAuth } from "@/provider/auth" +import { Agent } from "@/agent/agent" +import { Skill } from "@/skill" +import { Discovery } from "@/skill/discovery" +import { Question } from "@/question" +import { Permission } from "@/permission" +import { Todo } from "@/session/todo" +import { Session } from "@/session" +import { SessionStatus } from "@/session/status" +import { SessionRunState } from "@/session/run-state" +import { SessionProcessor } from "@/session/processor" +import { SessionCompaction } from "@/session/compaction" +import { SessionRevert } from "@/session/revert" +import { SessionSummary } from "@/session/summary" +import { SessionPrompt } from "@/session/prompt" +import { Instruction } from "@/session/instruction" +import { LLM } from "@/session/llm" +import { LSP } from "@/lsp" +import { MCP } from "@/mcp" +import { McpAuth } from "@/mcp/auth" +import { Command } from "@/command" +import { Truncate } from "@/tool/truncate" +import { ToolRegistry } from "@/tool/registry" +import { Format } from "@/format" +import { Project } from "@/project/project" +import { Vcs } from "@/project/vcs" +import { Worktree } from "@/worktree" +import { Pty } from "@/pty" +import { Installation } from "@/installation" +import { ShareNext } from "@/share/share-next" +import { SessionShare } from "@/share/session" + +export const AppLayer = Layer.mergeAll( + Observability.layer, + AppFileSystem.defaultLayer, + Bus.defaultLayer, + Auth.defaultLayer, + Account.defaultLayer, + Config.defaultLayer, + Git.defaultLayer, + Ripgrep.defaultLayer, + FileTime.defaultLayer, + File.defaultLayer, + FileWatcher.defaultLayer, + Storage.defaultLayer, + Snapshot.defaultLayer, + Plugin.defaultLayer, + Provider.defaultLayer, + ProviderAuth.defaultLayer, + Agent.defaultLayer, + Skill.defaultLayer, + Discovery.defaultLayer, + Question.defaultLayer, + Permission.defaultLayer, + Todo.defaultLayer, + Session.defaultLayer, + SessionStatus.defaultLayer, + SessionRunState.defaultLayer, + SessionProcessor.defaultLayer, + SessionCompaction.defaultLayer, + SessionRevert.defaultLayer, + SessionSummary.defaultLayer, + SessionPrompt.defaultLayer, + Instruction.defaultLayer, + LLM.defaultLayer, + LSP.defaultLayer, + MCP.defaultLayer, + McpAuth.defaultLayer, + Command.defaultLayer, + Truncate.defaultLayer, + ToolRegistry.defaultLayer, + Format.defaultLayer, + Project.defaultLayer, + Vcs.defaultLayer, + Worktree.defaultLayer, + Pty.defaultLayer, + Installation.defaultLayer, + ShareNext.defaultLayer, + SessionShare.defaultLayer, +) + +export const AppRuntime = ManagedRuntime.make(AppLayer, { memoMap }) diff --git a/packages/opencode/src/mcp/auth.ts b/packages/opencode/src/mcp/auth.ts index 773ca0a6f..e9c3db8a9 100644 --- a/packages/opencode/src/mcp/auth.ts +++ b/packages/opencode/src/mcp/auth.ts @@ -141,7 +141,7 @@ export namespace McpAuth { }), ) - const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer)) + export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/project/vcs.ts b/packages/opencode/src/project/vcs.ts index d31dff6a9..0e430d41b 100644 --- a/packages/opencode/src/project/vcs.ts +++ b/packages/opencode/src/project/vcs.ts @@ -226,7 +226,7 @@ export namespace Vcs { }), ) - const defaultLayer = layer.pipe( + export const defaultLayer = layer.pipe( Layer.provide(Git.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), Layer.provide(Bus.layer), diff --git a/packages/opencode/src/pty/index.ts b/packages/opencode/src/pty/index.ts index 7695b9ce6..ff44de73b 100644 --- a/packages/opencode/src/pty/index.ts +++ b/packages/opencode/src/pty/index.ts @@ -359,7 +359,7 @@ export namespace Pty { }), ) - const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Plugin.defaultLayer)) + export const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Plugin.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 66740cd40..fe54a25ab 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1672,7 +1672,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the }), ) - const defaultLayer = Layer.suspend(() => + export const defaultLayer = Layer.suspend(() => layer.pipe( Layer.provide(SessionRunState.defaultLayer), Layer.provide(SessionStatus.defaultLayer), diff --git a/packages/opencode/src/worktree/index.ts b/packages/opencode/src/worktree/index.ts index e0e7dab4c..dc1548300 100644 --- a/packages/opencode/src/worktree/index.ts +++ b/packages/opencode/src/worktree/index.ts @@ -590,7 +590,7 @@ export namespace Worktree { }), ) - const defaultLayer = layer.pipe( + export const defaultLayer = layer.pipe( Layer.provide(Git.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Project.defaultLayer), From 5d6fe014653dac2c0efb4497e4c8bbcd81936174 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 19:49:53 -0400 Subject: [PATCH 079/151] convert skill tool to Tool.defineEffect (#21936) --- packages/opencode/src/tool/registry.ts | 3 +- packages/opencode/src/tool/skill.ts | 168 +++++++++++----------- packages/opencode/test/tool/skill.test.ts | 8 +- 3 files changed, 93 insertions(+), 86 deletions(-) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index a24ddb28c..f6324b3d7 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -116,6 +116,7 @@ export namespace ToolRegistry { const edit = yield* EditTool const greptool = yield* GrepTool const patchtool = yield* ApplyPatchTool + const skilltool = yield* SkillTool const state = yield* InstanceState.make( Effect.fn("ToolRegistry.state")(function* (ctx) { @@ -185,7 +186,7 @@ export namespace ToolRegistry { todo: Tool.init(todo), search: Tool.init(websearch), code: Tool.init(codesearch), - skill: Tool.init(SkillTool), + skill: Tool.init(skilltool), patch: Tool.init(patchtool), question: Tool.init(question), lsp: Tool.init(lsptool), diff --git a/packages/opencode/src/tool/skill.ts b/packages/opencode/src/tool/skill.ts index e0777d00f..f53f4e2bc 100644 --- a/packages/opencode/src/tool/skill.ts +++ b/packages/opencode/src/tool/skill.ts @@ -1,99 +1,101 @@ import path from "path" import { pathToFileURL } from "url" import z from "zod" +import { Effect } from "effect" +import * as Stream from "effect/Stream" import { Tool } from "./tool" import { Skill } from "../skill" import { Ripgrep } from "../file/ripgrep" -import { iife } from "@/util/iife" const Parameters = z.object({ name: z.string().describe("The name of the skill from available_skills"), }) -export const SkillTool = Tool.define("skill", async () => { - const list = await Skill.available() +export const SkillTool = Tool.defineEffect( + "skill", + Effect.gen(function* () { + const skill = yield* Skill.Service + const rg = yield* Ripgrep.Service - const description = - list.length === 0 - ? "Load a specialized skill that provides domain-specific instructions and workflows. No skills are currently available." - : [ - "Load a specialized skill that provides domain-specific instructions and workflows.", - "", - "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", - "", - "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", - "", - 'Tool output includes a `` block with the loaded content.', - "", - "The following skills provide specialized sets of instructions for particular tasks", - "Invoke this tool to load a skill when a task matches one of the available skills listed below:", - "", - Skill.fmt(list, { verbose: false }), - ].join("\n") + return async () => { + const list = await Effect.runPromise(skill.available()) - return { - description, - parameters: Parameters, - async execute(params: z.infer, ctx) { - const skill = await Skill.get(params.name) - - if (!skill) { - const available = await Skill.all().then((x) => x.map((skill) => skill.name).join(", ")) - throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) - } - - await ctx.ask({ - permission: "skill", - patterns: [params.name], - always: [params.name], - metadata: {}, - }) - - const dir = path.dirname(skill.location) - const base = pathToFileURL(dir).href - - const limit = 10 - const files = await iife(async () => { - const arr = [] - for await (const file of Ripgrep.files({ - cwd: dir, - follow: false, - hidden: true, - signal: ctx.abort, - })) { - if (file.includes("SKILL.md")) { - continue - } - arr.push(path.resolve(dir, file)) - if (arr.length >= limit) { - break - } - } - return arr - }).then((f) => f.map((file) => `${file}`).join("\n")) + const description = + list.length === 0 + ? "Load a specialized skill that provides domain-specific instructions and workflows. No skills are currently available." + : [ + "Load a specialized skill that provides domain-specific instructions and workflows.", + "", + "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", + "", + "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", + "", + 'Tool output includes a `` block with the loaded content.', + "", + "The following skills provide specialized sets of instructions for particular tasks", + "Invoke this tool to load a skill when a task matches one of the available skills listed below:", + "", + Skill.fmt(list, { verbose: false }), + ].join("\n") return { - title: `Loaded skill: ${skill.name}`, - output: [ - ``, - `# Skill: ${skill.name}`, - "", - skill.content.trim(), - "", - `Base directory for this skill: ${base}`, - "Relative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.", - "Note: file list is sampled.", - "", - "", - files, - "", - "", - ].join("\n"), - metadata: { - name: skill.name, - dir, - }, + description, + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const info = yield* skill.get(params.name) + + if (!info) { + const all = yield* skill.all() + const available = all.map((s) => s.name).join(", ") + throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) + } + + yield* Effect.promise(() => + ctx.ask({ + permission: "skill", + patterns: [params.name], + always: [params.name], + metadata: {}, + }), + ) + + const dir = path.dirname(info.location) + const base = pathToFileURL(dir).href + + const limit = 10 + const files = yield* rg.files({ cwd: dir, follow: false, hidden: true }).pipe( + Stream.filter((file) => !file.includes("SKILL.md")), + Stream.map((file) => path.resolve(dir, file)), + Stream.take(limit), + Stream.runCollect, + Effect.map((chunk) => [...chunk].map((file) => `${file}`).join("\n")), + ) + + return { + title: `Loaded skill: ${info.name}`, + output: [ + ``, + `# Skill: ${info.name}`, + "", + info.content.trim(), + "", + `Base directory for this skill: ${base}`, + "Relative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.", + "Note: file list is sampled.", + "", + "", + files, + "", + "", + ].join("\n"), + metadata: { + name: info.name, + dir, + }, + } + }).pipe(Effect.orDie, Effect.runPromise), } - }, - } -}) + } + }), +) diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index ea9aeeaf9..1c97ee4af 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -1,4 +1,6 @@ -import { Effect } from "effect" +import { Effect, Layer, ManagedRuntime } from "effect" +import { Skill } from "../../src/skill" +import { Ripgrep } from "../../src/file/ripgrep" import { afterEach, describe, expect, test } from "bun:test" import path from "path" import { pathToFileURL } from "url" @@ -148,7 +150,9 @@ Use this skill. await Instance.provide({ directory: tmp.path, fn: async () => { - const tool = await SkillTool.init() + const runtime = ManagedRuntime.make(Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer)) + const info = await runtime.runPromise(SkillTool) + const tool = await info.init() const requests: Array> = [] const ctx: Tool.Context = { ...baseCtx, From 33819932ec347c365d3a6c0636264020cc39b5c1 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 10 Apr 2026 19:47:08 -0500 Subject: [PATCH 080/151] tweak: rm processor .trim calls (#21958) --- packages/opencode/src/session/processor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 99389de1e..aba155be7 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -245,7 +245,7 @@ export namespace SessionProcessor { case "reasoning-end": if (!(value.id in ctx.reasoningMap)) return - ctx.reasoningMap[value.id].text = ctx.reasoningMap[value.id].text.trimEnd() + ctx.reasoningMap[value.id].text = ctx.reasoningMap[value.id].text ctx.reasoningMap[value.id].time = { ...ctx.reasoningMap[value.id].time, end: Date.now() } if (value.providerMetadata) ctx.reasoningMap[value.id].metadata = value.providerMetadata yield* session.updatePart(ctx.reasoningMap[value.id]) @@ -425,7 +425,7 @@ export namespace SessionProcessor { case "text-end": if (!ctx.currentText) return - ctx.currentText.text = ctx.currentText.text.trimEnd() + ctx.currentText.text = ctx.currentText.text ctx.currentText.text = (yield* plugin.trigger( "experimental.text.complete", { From 96c1c0363d5c3ab5d5ef23bdd880b533f42fba14 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 10 Apr 2026 19:59:33 -0500 Subject: [PATCH 081/151] chore: rm unnecessary test (now we use effect) and the test is flaky (#21959) --- .../opencode/test/memory/abort-leak.test.ts | 143 ------------------ 1 file changed, 143 deletions(-) delete mode 100644 packages/opencode/test/memory/abort-leak.test.ts diff --git a/packages/opencode/test/memory/abort-leak.test.ts b/packages/opencode/test/memory/abort-leak.test.ts deleted file mode 100644 index 2d0180783..000000000 --- a/packages/opencode/test/memory/abort-leak.test.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { describe, test, expect } from "bun:test" -import path from "path" -import { Effect } from "effect" -import { FetchHttpClient } from "effect/unstable/http" -import { Instance } from "../../src/project/instance" -import { WebFetchTool } from "../../src/tool/webfetch" -import { SessionID, MessageID } from "../../src/session/schema" - -const projectRoot = path.join(__dirname, "../..") - -const ctx = { - sessionID: SessionID.make("ses_test"), - messageID: MessageID.make(""), - callID: "", - agent: "build", - abort: new AbortController().signal, - messages: [], - metadata: () => {}, - ask: async () => {}, -} - -const MB = 1024 * 1024 -const ITERATIONS = 50 - -const getHeapMB = () => { - Bun.gc(true) - return process.memoryUsage().heapUsed / MB -} - -describe("memory: abort controller leak", () => { - test("webfetch does not leak memory over many invocations", async () => { - await Instance.provide({ - directory: projectRoot, - fn: async () => { - const tool = await WebFetchTool.pipe( - Effect.flatMap((info) => Effect.promise(() => info.init())), - Effect.provide(FetchHttpClient.layer), - Effect.runPromise, - ) - - // Warm up - await tool.execute({ url: "https://example.com", format: "text" }, ctx).catch(() => {}) - - Bun.gc(true) - const baseline = getHeapMB() - - // Run many fetches - for (let i = 0; i < ITERATIONS; i++) { - await tool.execute({ url: "https://example.com", format: "text" }, ctx).catch(() => {}) - } - - Bun.gc(true) - const after = getHeapMB() - const growth = after - baseline - - console.log(`Baseline: ${baseline.toFixed(2)} MB`) - console.log(`After ${ITERATIONS} fetches: ${after.toFixed(2)} MB`) - console.log(`Growth: ${growth.toFixed(2)} MB`) - - // Memory growth should be minimal - less than 1MB per 10 requests - // With the old closure pattern, this would grow ~0.5MB per request - expect(growth).toBeLessThan(ITERATIONS / 10) - }, - }) - }, 60000) - - test("compare closure vs bind pattern directly", async () => { - const ITERATIONS = 500 - - // Test OLD pattern: arrow function closure - // Store closures in a map keyed by content to force retention - const closureMap = new Map void>() - const timers: Timer[] = [] - const controllers: AbortController[] = [] - - Bun.gc(true) - Bun.sleepSync(100) - const baseline = getHeapMB() - - for (let i = 0; i < ITERATIONS; i++) { - // Simulate large response body like webfetch would have - const content = `${i}:${"x".repeat(50 * 1024)}` // 50KB unique per iteration - const controller = new AbortController() - controllers.push(controller) - - // OLD pattern - closure captures `content` - const handler = () => { - // Actually use content so it can't be optimized away - if (content.length > 1000000000) controller.abort() - } - closureMap.set(content, handler) - const timeoutId = setTimeout(handler, 30000) - timers.push(timeoutId) - } - - Bun.gc(true) - Bun.sleepSync(100) - const after = getHeapMB() - const oldGrowth = after - baseline - - console.log(`OLD pattern (closure): ${oldGrowth.toFixed(2)} MB growth (${closureMap.size} closures)`) - - // Cleanup after measuring - timers.forEach(clearTimeout) - controllers.forEach((c) => c.abort()) - closureMap.clear() - - // Test NEW pattern: bind - Bun.gc(true) - Bun.sleepSync(100) - const baseline2 = getHeapMB() - const handlers2: (() => void)[] = [] - const timers2: Timer[] = [] - const controllers2: AbortController[] = [] - - for (let i = 0; i < ITERATIONS; i++) { - const _content = `${i}:${"x".repeat(50 * 1024)}` // 50KB - won't be captured - const controller = new AbortController() - controllers2.push(controller) - - // NEW pattern - bind doesn't capture surrounding scope - const handler = controller.abort.bind(controller) - handlers2.push(handler) - const timeoutId = setTimeout(handler, 30000) - timers2.push(timeoutId) - } - - Bun.gc(true) - Bun.sleepSync(100) - const after2 = getHeapMB() - const newGrowth = after2 - baseline2 - - // Cleanup after measuring - timers2.forEach(clearTimeout) - controllers2.forEach((c) => c.abort()) - handlers2.length = 0 - - console.log(`NEW pattern (bind): ${newGrowth.toFixed(2)} MB growth`) - console.log(`Improvement: ${(oldGrowth - newGrowth).toFixed(2)} MB saved`) - - expect(newGrowth).toBeLessThanOrEqual(oldGrowth) - }) -}) From 40358d60a025ad50d8a55443cbd48b1102c5d488 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 21:10:58 -0400 Subject: [PATCH 082/151] refactor: add Effect logger for motel observability (#21954) --- packages/opencode/src/effect/logger.ts | 67 ++++++++++++++++++++++ packages/opencode/src/effect/oltp.ts | 59 +++++++++++-------- packages/opencode/src/session/processor.ts | 11 ++-- packages/opencode/src/session/prompt.ts | 17 +++--- 4 files changed, 116 insertions(+), 38 deletions(-) create mode 100644 packages/opencode/src/effect/logger.ts diff --git a/packages/opencode/src/effect/logger.ts b/packages/opencode/src/effect/logger.ts new file mode 100644 index 000000000..e78089ca0 --- /dev/null +++ b/packages/opencode/src/effect/logger.ts @@ -0,0 +1,67 @@ +import { Cause, Effect, Logger, References } from "effect" +import { Log } from "@/util/log" + +export namespace EffectLogger { + type Fields = Record + + export interface Handle { + readonly debug: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly info: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly warn: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly error: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly with: (extra: Fields) => Handle + } + + const clean = (input?: Fields): Fields => + Object.fromEntries(Object.entries(input ?? {}).filter((entry) => entry[1] !== undefined && entry[1] !== null)) + + const text = (input: unknown): string => { + if (Array.isArray(input)) return input.map((item) => String(item)).join(" ") + return input === undefined ? "" : String(input) + } + + const call = (run: (msg?: unknown) => Effect.Effect, base: Fields, msg?: unknown, extra?: Fields) => { + const ann = clean({ ...base, ...extra }) + const fx = run(msg) + return Object.keys(ann).length ? Effect.annotateLogs(fx, ann) : fx + } + + export const logger = Logger.make((opts) => { + const extra = clean(opts.fiber.getRef(References.CurrentLogAnnotations)) + const now = opts.date.getTime() + for (const [key, start] of opts.fiber.getRef(References.CurrentLogSpans)) { + extra[`logSpan.${key}`] = `${now - start}ms` + } + if (opts.cause.reasons.length > 0) { + extra.cause = Cause.pretty(opts.cause) + } + + const svc = typeof extra.service === "string" ? extra.service : undefined + if (svc) delete extra.service + const log = svc ? Log.create({ service: svc }) : Log.Default + const msg = text(opts.message) + + switch (opts.logLevel) { + case "Trace": + case "Debug": + return log.debug(msg, extra) + case "Warn": + return log.warn(msg, extra) + case "Error": + case "Fatal": + return log.error(msg, extra) + default: + return log.info(msg, extra) + } + }) + + export const layer = Logger.layer([logger], { mergeWithExisting: true }) + + export const create = (base: Fields = {}): Handle => ({ + debug: (msg, extra) => call((item) => Effect.logDebug(item), base, msg, extra), + info: (msg, extra) => call((item) => Effect.logInfo(item), base, msg, extra), + warn: (msg, extra) => call((item) => Effect.logWarning(item), base, msg, extra), + error: (msg, extra) => call((item) => Effect.logError(item), base, msg, extra), + with: (extra) => create({ ...base, ...extra }), + }) +} diff --git a/packages/opencode/src/effect/oltp.ts b/packages/opencode/src/effect/oltp.ts index 1fa697fb6..6ef80dd29 100644 --- a/packages/opencode/src/effect/oltp.ts +++ b/packages/opencode/src/effect/oltp.ts @@ -1,34 +1,45 @@ -import { Layer } from "effect" +import { Duration, Layer } from "effect" import { FetchHttpClient } from "effect/unstable/http" import { Otlp } from "effect/unstable/observability" +import { EffectLogger } from "@/effect/logger" import { Flag } from "@/flag/flag" import { CHANNEL, VERSION } from "@/installation/meta" export namespace Observability { export const enabled = !!Flag.OTEL_EXPORTER_OTLP_ENDPOINT - export const layer = !Flag.OTEL_EXPORTER_OTLP_ENDPOINT - ? Layer.empty - : Otlp.layerJson({ - baseUrl: Flag.OTEL_EXPORTER_OTLP_ENDPOINT, - loggerMergeWithExisting: false, - resource: { - serviceName: "opencode", - serviceVersion: VERSION, - attributes: { - "deployment.environment.name": CHANNEL === "local" ? "local" : CHANNEL, - "opencode.client": Flag.OPENCODE_CLIENT, - }, + const base = Flag.OTEL_EXPORTER_OTLP_ENDPOINT + + const resource = { + serviceName: "opencode", + serviceVersion: VERSION, + attributes: { + "deployment.environment.name": CHANNEL === "local" ? "local" : CHANNEL, + "opencode.client": Flag.OPENCODE_CLIENT, + }, + } + + const headers = Flag.OTEL_EXPORTER_OTLP_HEADERS + ? Flag.OTEL_EXPORTER_OTLP_HEADERS.split(",").reduce( + (acc, x) => { + const [key, value] = x.split("=") + acc[key] = value + return acc }, - headers: Flag.OTEL_EXPORTER_OTLP_HEADERS - ? Flag.OTEL_EXPORTER_OTLP_HEADERS.split(",").reduce( - (acc, x) => { - const [key, value] = x.split("=") - acc[key] = value - return acc - }, - {} as Record, - ) - : undefined, - }).pipe(Layer.provide(FetchHttpClient.layer)) + {} as Record, + ) + : undefined + + export const layer = !base + ? EffectLogger.layer + : Layer.mergeAll( + EffectLogger.layer, + Otlp.layerJson({ + baseUrl: base, + loggerExportInterval: Duration.seconds(5), + loggerMergeWithExisting: true, + resource, + headers, + }), + ).pipe(Layer.provide(FetchHttpClient.layer)) } diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index aba155be7..d507eb675 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -6,7 +6,7 @@ import { Config } from "@/config/config" import { Permission } from "@/permission" import { Plugin } from "@/plugin" import { Snapshot } from "@/snapshot" -import { Log } from "@/util/log" +import { EffectLogger } from "@/effect/logger" import { Session } from "." import { LLM } from "./llm" import { MessageV2 } from "./message-v2" @@ -23,7 +23,7 @@ import { isRecord } from "@/util/record" export namespace SessionProcessor { const DOOM_LOOP_THRESHOLD = 3 - const log = Log.create({ service: "session.processor" }) + const log = EffectLogger.create({ service: "session.processor" }) export type Result = "compact" | "stop" | "continue" @@ -121,6 +121,7 @@ export namespace SessionProcessor { reasoningMap: {}, } let aborted = false + const slog = log.with({ sessionID: input.sessionID, messageID: input.assistantMessage.id }) const parse = (e: unknown) => MessageV2.fromError(e, { @@ -448,7 +449,7 @@ export namespace SessionProcessor { return default: - log.info("unhandled", { ...value }) + yield* slog.info("unhandled", { event: value.type, value }) return } }) @@ -514,7 +515,7 @@ export namespace SessionProcessor { }) const halt = Effect.fn("SessionProcessor.halt")(function* (e: unknown) { - log.error("process", { error: e, stack: e instanceof Error ? e.stack : undefined }) + yield* slog.error("process", { error: errorMessage(e), stack: e instanceof Error ? e.stack : undefined }) const error = parse(e) if (MessageV2.ContextOverflowError.isInstance(error)) { ctx.needsCompaction = true @@ -530,7 +531,7 @@ export namespace SessionProcessor { }) const process = Effect.fn("SessionProcessor.process")(function* (streamInput: LLM.StreamInput) { - log.info("process") + yield* slog.info("process") ctx.needsCompaction = false ctx.shouldBreak = (yield* config.get()).experimental?.continue_loop_on_deny !== true diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index fe54a25ab..50923d78b 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -44,6 +44,7 @@ import { Truncate } from "@/tool/truncate" import { decodeDataUrl } from "@/util/data-url" import { Process } from "@/util/process" import { Cause, Effect, Exit, Layer, Option, Scope, ServiceMap } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { TaskTool, type TaskPromptOps } from "@/tool/task" @@ -64,6 +65,7 @@ const STRUCTURED_OUTPUT_SYSTEM_PROMPT = `IMPORTANT: The user has requested struc export namespace SessionPrompt { const log = Log.create({ service: "session.prompt" }) + const elog = EffectLogger.create({ service: "session.prompt" }) export interface Interface { readonly cancel: (sessionID: SessionID) => Effect.Effect @@ -102,7 +104,7 @@ export namespace SessionPrompt { const revert = yield* SessionRevert.Service const cancel = Effect.fn("SessionPrompt.cancel")(function* (sessionID: SessionID) { - log.info("cancel", { sessionID }) + yield* elog.info("cancel", { sessionID }) yield* state.cancel(sessionID) }) @@ -196,11 +198,7 @@ export namespace SessionPrompt { const t = cleaned.length > 100 ? cleaned.substring(0, 97) + "..." : cleaned yield* sessions .setTitle({ sessionID: input.session.id, title: t }) - .pipe( - Effect.catchCause((cause) => - Effect.sync(() => log.error("failed to generate title", { error: Cause.squash(cause) })), - ), - ) + .pipe(Effect.catchCause((cause) => elog.error("failed to generate title", { error: Cause.squash(cause) }))) }) const insertReminders = Effect.fn("SessionPrompt.insertReminders")(function* (input: { @@ -1302,13 +1300,14 @@ NOTE: At any point in time through this workflow you should feel free to ask the const runLoop: (sessionID: SessionID) => Effect.Effect = Effect.fn("SessionPrompt.run")( function* (sessionID: SessionID) { const ctx = yield* InstanceState.context + const slog = elog.with({ sessionID }) let structured: unknown | undefined let step = 0 const session = yield* sessions.get(sessionID) while (true) { yield* status.set(sessionID, { type: "busy" }) - log.info("loop", { step, sessionID }) + yield* slog.info("loop", { step }) let msgs = yield* MessageV2.filterCompactedEffect(sessionID) @@ -1344,7 +1343,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the !hasToolCalls && lastUser.id < lastAssistant.id ) { - log.info("exiting loop", { sessionID }) + yield* slog.info("exiting loop") break } @@ -1540,7 +1539,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the ) const command = Effect.fn("SessionPrompt.command")(function* (input: CommandInput) { - log.info("command", input) + yield* elog.info("command", { sessionID: input.sessionID, command: input.command, agent: input.agent }) const cmd = yield* commands.get(input.command) if (!cmd) { const available = (yield* commands.list()).map((c) => c.name) From 5cd4c6eb22ce6a5557d17d105c37ab32dda4c287 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 21:21:02 -0400 Subject: [PATCH 083/151] refactor: destroy Storage facades (#21956) --- packages/opencode/specs/effect-migration.md | 29 ++ packages/opencode/src/session/index.ts | 7 +- packages/opencode/src/storage/storage.ts | 23 - .../opencode/test/share/share-next.test.ts | 3 +- .../opencode/test/storage/storage.test.ts | 434 +++++++++--------- 5 files changed, 252 insertions(+), 244 deletions(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index 5882f09fe..ab90d6a44 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -308,3 +308,32 @@ Current raw fs users that will convert during tool migration: - [ ] `util/flock.ts` — file-based distributed lock with heartbeat → Effect.repeat + addFinalizer - [ ] `util/process.ts` — child process spawn wrapper → return Effect instead of Promise - [ ] `util/lazy.ts` — replace uses in Effect code with Effect.cached; keep for sync-only code + +## Destroying the facades + +Every service currently exports async facade functions at the bottom of its namespace — `export async function read(...) { return runPromise(...) }` — backed by a per-service `makeRuntime`. These exist because cyclic imports used to force each service to build its own independent runtime. Now that the layer DAG is acyclic and `AppRuntime` (`src/effect/app-runtime.ts`) composes everything into one `ManagedRuntime`, we're removing them. + +### Process + +For each service, the migration is roughly: + +1. **Find callers.** `grep -n "Namespace\.(methodA|methodB|...)"` across `src/` and `test/`. Skip the service file itself. +2. **Migrate production callers.** For each effectful caller that does `Effect.tryPromise(() => Namespace.method(...))`: + - Add the service to the caller's layer R type (`Layer.Layer`) + - Yield it at the top of the layer: `const ns = yield* Namespace.Service` + - Replace `Effect.tryPromise(() => Namespace.method(...))` with `yield* ns.method(...)` (or `ns.method(...).pipe(Effect.orElseSucceed(...))` for the common fallback case) + - Add `Layer.provide(Namespace.defaultLayer)` to the caller's own `defaultLayer` chain +3. **Fix tests that used the caller's raw `.layer`.** Any test that composes `Caller.layer` (not `defaultLayer`) needs to also provide the newly-required service tag. The fastest fix is usually switching to `Caller.defaultLayer` since it now pulls in the new dependency. +4. **Migrate test callers of the facade.** Tests calling `Namespace.method(...)` directly get converted to full effectful style using `testEffect(Namespace.defaultLayer)` + `it.live` / `it.effect` + `yield* svc.method(...)`. Don't wrap the test body in `Effect.promise(async () => {...})` — do the whole thing in `Effect.gen` and use `AppFileSystem.Service` / `tmpdirScoped` / `Effect.addFinalizer` for what used to be raw `fs` / `Bun.write` / `try/finally`. +5. **Delete the facades.** Once `grep` shows zero callers, remove the `export async function` block AND the `makeRuntime(...)` line from the service namespace. Also remove the now-unused `import { makeRuntime }`. + +### Pitfalls + +- **Layer caching inside tests.** `testEffect(layer)` constructs the Storage (or whatever) service once and memoizes it. If a test then tries `inner.pipe(Effect.provide(customStorage))` to swap in a differently-configured Storage, the outer cached one wins and the inner provision is a no-op. Fix: wrap the overriding layer in `Layer.fresh(...)`, which forces a new instance to be built instead of hitting the memoMap cache. This lets a single `testEffect(...)` serve both simple and per-test-customized cases. +- **`Effect.tryPromise` → `yield*` drops the Promise layer.** The old code was `Effect.tryPromise(() => Storage.read(...))` — a `tryPromise` wrapper because the facade returned a Promise. The new code is `yield* storage.read(...)` directly — the service method already returns an Effect, so no wrapper is needed. Don't reach for `Effect.promise` or `Effect.tryPromise` during migration; if you're using them on a service method call, you're doing it wrong. +- **Raw `.layer` test callers break silently in the type checker.** When you add a new R requirement to a service's `.layer`, any test that composes it raw (not `defaultLayer`) becomes under-specified. `tsgo` will flag this — the error looks like `Type 'Storage.Service' is not assignable to type '... | Service | TestConsole'`. Usually the fix is to switch that composition to `defaultLayer`, or add `Layer.provide(NewDep.defaultLayer)` to the custom composition. +- **Tests that do async setup with `fs`, `Bun.write`, `tmpdir`.** Convert these to `AppFileSystem.Service` calls inside `Effect.gen`, and use `tmpdirScoped()` instead of `tmpdir()` so cleanup happens via the scope finalizer. For file operations on the actual filesystem (not via a service), a small helper like `const writeJson = Effect.fnUntraced(function* (file, value) { const fs = yield* AppFileSystem.Service; yield* fs.makeDirectory(path.dirname(file), { recursive: true }); yield* fs.writeFileString(file, JSON.stringify(value, null, 2)) })` keeps the migration tests clean. + +### Migration log + +- `Storage` — migrated 2026-04-10. One production caller (`Session.diff`) and all storage.test.ts tests converted to effectful style. Facades and `makeRuntime` removed. diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index e57807e31..ebc8603f6 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -361,10 +361,11 @@ export namespace Session { const db = (fn: (d: Parameters[0] extends (trx: infer D) => any ? D : never) => T) => Effect.sync(() => Database.use(fn)) - export const layer: Layer.Layer = Layer.effect( + export const layer: Layer.Layer = Layer.effect( Service, Effect.gen(function* () { const bus = yield* Bus.Service + const storage = yield* Storage.Service const createNext = Effect.fn("Session.createNext")(function* (input: { id?: SessionID @@ -585,7 +586,7 @@ export namespace Session { }) const diff = Effect.fn("Session.diff")(function* (sessionID: SessionID) { - return yield* Effect.tryPromise(() => Storage.read(["session_diff", sessionID])).pipe( + return yield* storage.read(["session_diff", sessionID]).pipe( Effect.orElseSucceed((): Snapshot.FileDiff[] => []), ) }) @@ -660,7 +661,7 @@ export namespace Session { }), ) - export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) + export const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Storage.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts index c30089a18..c8fc59c14 100644 --- a/packages/opencode/src/storage/storage.ts +++ b/packages/opencode/src/storage/storage.ts @@ -4,7 +4,6 @@ import { Global } from "../global" import { NamedError } from "@opencode-ai/util/error" import z from "zod" import { AppFileSystem } from "@/filesystem" -import { makeRuntime } from "@/effect/run-service" import { Effect, Exit, Layer, Option, RcMap, Schema, ServiceMap, TxReentrantLock } from "effect" import { Git } from "@/git" @@ -331,26 +330,4 @@ export namespace Storage { ) export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer), Layer.provide(Git.defaultLayer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function remove(key: string[]) { - return runPromise((svc) => svc.remove(key)) - } - - export async function read(key: string[]) { - return runPromise((svc) => svc.read(key)) - } - - export async function update(key: string[], fn: (draft: T) => void) { - return runPromise((svc) => svc.update(key, fn)) - } - - export async function write(key: string[], content: T) { - return runPromise((svc) => svc.write(key, content)) - } - - export async function list(prefix: string[]) { - return runPromise((svc) => svc.list(prefix)) - } } diff --git a/packages/opencode/test/share/share-next.test.ts b/packages/opencode/test/share/share-next.test.ts index 6619b3c60..fd230f545 100644 --- a/packages/opencode/test/share/share-next.test.ts +++ b/packages/opencode/test/share/share-next.test.ts @@ -13,6 +13,7 @@ import { Provider } from "../../src/provider/provider" import { Session } from "../../src/session" import type { SessionID } from "../../src/session/schema" import { ShareNext } from "../../src/share/share-next" +import { Storage } from "../../src/storage/storage" import { SessionShareTable } from "../../src/share/share.sql" import { Database, eq } from "../../src/storage/db" import { provideTmpdirInstance } from "../fixture/fixture" @@ -55,7 +56,7 @@ function wired(client: HttpClient.HttpClient) { return Layer.mergeAll( Bus.layer, ShareNext.layer, - Session.layer, + Session.defaultLayer, AccountRepo.layer, NodeFileSystem.layer, CrossSpawnSpawner.defaultLayer, diff --git a/packages/opencode/test/storage/storage.test.ts b/packages/opencode/test/storage/storage.test.ts index 1ff40b4b9..cbeb5f039 100644 --- a/packages/opencode/test/storage/storage.test.ts +++ b/packages/opencode/test/storage/storage.test.ts @@ -1,296 +1,296 @@ -import { describe, expect, test } from "bun:test" -import fs from "fs/promises" +import { describe, expect } from "bun:test" import path from "path" -import { Effect, Layer, ManagedRuntime } from "effect" +import { Effect, Exit, Layer } from "effect" import { AppFileSystem } from "../../src/filesystem" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Git } from "../../src/git" import { Global } from "../../src/global" import { Storage } from "../../src/storage/storage" -import { tmpdir } from "../fixture/fixture" +import { tmpdirScoped } from "../fixture/fixture" +import { testEffect } from "../lib/effect" const dir = path.join(Global.Path.data, "storage") -async function withScope(fn: (root: string[]) => Promise) { - const root = ["storage_test", crypto.randomUUID()] - try { - return await fn(root) - } finally { - await fs.rm(path.join(dir, ...root), { recursive: true, force: true }) - } -} +const it = testEffect( + Layer.mergeAll(Storage.defaultLayer, AppFileSystem.defaultLayer, CrossSpawnSpawner.defaultLayer), +) -function map(root: string, file: string) { +const scope = Effect.fnUntraced(function* () { + const root = ["storage_test", crypto.randomUUID()] + const fs = yield* AppFileSystem.Service + const svc = yield* Storage.Service + yield* Effect.addFinalizer(() => + fs.remove(path.join(dir, ...root), { recursive: true, force: true }).pipe(Effect.ignore), + ) + return { root, svc } +}) + +// remap(root) rewrites any path under Global.Path.data to live under `root` instead. +// Used by remappedFs to build an AppFileSystem that Storage thinks is the real global +// data dir but actually targets a tmp dir — letting migration tests stage legacy layouts. +// NOTE: only the 6 methods below are intercepted. If Storage starts using a different +// AppFileSystem method that touches Global.Path.data, add it here. +function remap(root: string, file: string) { if (file === Global.Path.data) return root if (file.startsWith(Global.Path.data + path.sep)) return path.join(root, path.relative(Global.Path.data, file)) return file } -function layer(root: string) { +function remappedFs(root: string) { return Layer.effect( AppFileSystem.Service, Effect.gen(function* () { const fs = yield* AppFileSystem.Service return AppFileSystem.Service.of({ ...fs, - isDir: (file) => fs.isDir(map(root, file)), - readJson: (file) => fs.readJson(map(root, file)), - writeWithDirs: (file, content, mode) => fs.writeWithDirs(map(root, file), content, mode), - readFileString: (file) => fs.readFileString(map(root, file)), - remove: (file) => fs.remove(map(root, file)), + isDir: (file) => fs.isDir(remap(root, file)), + readJson: (file) => fs.readJson(remap(root, file)), + writeWithDirs: (file, content, mode) => fs.writeWithDirs(remap(root, file), content, mode), + readFileString: (file) => fs.readFileString(remap(root, file)), + remove: (file) => fs.remove(remap(root, file)), glob: (pattern, options) => - fs.glob(pattern, options?.cwd ? { ...options, cwd: map(root, options.cwd) } : options), + fs.glob(pattern, options?.cwd ? { ...options, cwd: remap(root, options.cwd) } : options), }) }), ).pipe(Layer.provide(AppFileSystem.defaultLayer)) } -async function withStorage( - root: string, - fn: (run: (body: Effect.Effect) => Promise) => Promise, -) { - const rt = ManagedRuntime.make(Storage.layer.pipe(Layer.provide(layer(root)), Layer.provide(Git.defaultLayer))) - try { - return await fn((body) => rt.runPromise(body)) - } finally { - await rt.dispose() - } -} - -async function write(file: string, value: unknown) { - await fs.mkdir(path.dirname(file), { recursive: true }) - await Bun.write(file, JSON.stringify(value, null, 2)) -} - -async function text(file: string, value: string) { - await fs.mkdir(path.dirname(file), { recursive: true }) - await Bun.write(file, value) -} - -async function exists(file: string) { - return fs - .stat(file) - .then(() => true) - .catch(() => false) -} +// Layer.fresh forces a new Storage instance — without it, Effect's in-test layer cache +// returns the outer testEffect's Storage (which uses the real AppFileSystem), not a new +// one built on top of remappedFs. +const remappedStorage = (root: string) => + Layer.fresh(Storage.layer.pipe(Layer.provide(remappedFs(root)), Layer.provide(Git.defaultLayer))) describe("Storage", () => { - test("round-trips JSON content", async () => { - await withScope(async (root) => { + it.live("round-trips JSON content", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "session_diff", "roundtrip"] const value = [{ file: "a.ts", additions: 2, deletions: 1 }] - await Storage.write(key, value) + yield* svc.write(key, value) + expect(yield* svc.read(key)).toEqual(value) + }), + ) - expect(await Storage.read(key)).toEqual(value) - }) - }) + it.live("maps missing reads to NotFoundError", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + const exit = yield* svc.read([...root, "missing", "value"]).pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) - test("maps missing reads to NotFoundError", async () => { - await withScope(async (root) => { - await expect(Storage.read([...root, "missing", "value"])).rejects.toMatchObject({ name: "NotFoundError" }) - }) - }) - - test("update on missing key throws NotFoundError", async () => { - await withScope(async (root) => { - await expect( - Storage.update<{ value: number }>([...root, "missing", "key"], (draft) => { + it.live("update on missing key throws NotFoundError", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + const exit = yield* svc + .update<{ value: number }>([...root, "missing", "key"], (draft) => { draft.value += 1 - }), - ).rejects.toMatchObject({ name: "NotFoundError" }) - }) - }) + }) + .pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) - test("write overwrites existing value", async () => { - await withScope(async (root) => { + it.live("write overwrites existing value", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "overwrite", "test"] - await Storage.write<{ v: number }>(key, { v: 1 }) - await Storage.write<{ v: number }>(key, { v: 2 }) - expect(await Storage.read<{ v: number }>(key)).toEqual({ v: 2 }) - }) - }) + yield* svc.write<{ v: number }>(key, { v: 1 }) + yield* svc.write<{ v: number }>(key, { v: 2 }) - test("remove on missing key is a no-op", async () => { - await withScope(async (root) => { - await expect(Storage.remove([...root, "nonexistent", "key"])).resolves.toBeUndefined() - }) - }) + expect(yield* svc.read<{ v: number }>(key)).toEqual({ v: 2 }) + }), + ) - test("list on missing prefix returns empty", async () => { - await withScope(async (root) => { - expect(await Storage.list([...root, "nonexistent"])).toEqual([]) - }) - }) + it.live("remove on missing key is a no-op", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + yield* svc.remove([...root, "nonexistent", "key"]) + }), + ) - test("serializes concurrent updates for the same key", async () => { - await withScope(async (root) => { + it.live("list on missing prefix returns empty", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + expect(yield* svc.list([...root, "nonexistent"])).toEqual([]) + }), + ) + + it.live("serializes concurrent updates for the same key", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "counter", "shared"] - await Storage.write(key, { value: 0 }) - await Promise.all( + yield* svc.write(key, { value: 0 }) + + yield* Effect.all( Array.from({ length: 25 }, () => - Storage.update<{ value: number }>(key, (draft) => { + svc.update<{ value: number }>(key, (draft) => { draft.value += 1 }), ), + { concurrency: "unbounded" }, ) - expect(await Storage.read<{ value: number }>(key)).toEqual({ value: 25 }) - }) - }) + expect(yield* svc.read<{ value: number }>(key)).toEqual({ value: 25 }) + }), + ) - test("concurrent reads do not block each other", async () => { - await withScope(async (root) => { + it.live("concurrent reads do not block each other", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "concurrent", "reads"] - await Storage.write(key, { ok: true }) - const results = await Promise.all(Array.from({ length: 10 }, () => Storage.read(key))) + yield* svc.write(key, { ok: true }) + + const results = yield* Effect.all( + Array.from({ length: 10 }, () => svc.read(key)), + { concurrency: "unbounded" }, + ) expect(results).toHaveLength(10) for (const r of results) expect(r).toEqual({ ok: true }) - }) - }) + }), + ) - test("nested keys create deep paths", async () => { - await withScope(async (root) => { + it.live("nested keys create deep paths", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "a", "b", "c", "deep"] - await Storage.write<{ nested: boolean }>(key, { nested: true }) - expect(await Storage.read<{ nested: boolean }>(key)).toEqual({ nested: true }) - expect(await Storage.list([...root, "a"])).toEqual([key]) - }) - }) + yield* svc.write<{ nested: boolean }>(key, { nested: true }) - test("lists and removes stored entries", async () => { - await withScope(async (root) => { + expect(yield* svc.read<{ nested: boolean }>(key)).toEqual({ nested: true }) + expect(yield* svc.list([...root, "a"])).toEqual([key]) + }), + ) + + it.live("lists and removes stored entries", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const a = [...root, "list", "a"] const b = [...root, "list", "b"] const prefix = [...root, "list"] - await Storage.write(b, { value: 2 }) - await Storage.write(a, { value: 1 }) + yield* svc.write(b, { value: 2 }) + yield* svc.write(a, { value: 1 }) - expect(await Storage.list(prefix)).toEqual([a, b]) + expect(yield* svc.list(prefix)).toEqual([a, b]) - await Storage.remove(a) + yield* svc.remove(a) - expect(await Storage.list(prefix)).toEqual([b]) - await expect(Storage.read(a)).rejects.toMatchObject({ name: "NotFoundError" }) - }) - }) + expect(yield* svc.list(prefix)).toEqual([b]) + const exit = yield* svc.read(a).pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) - test("migration 2 runs when marker contents are invalid", async () => { - await using tmp = await tmpdir() - const storage = path.join(tmp.path, "storage") - const diffs = [ - { additions: 2, deletions: 1 }, - { additions: 3, deletions: 4 }, - ] + it.live("migration 2 runs when marker contents are invalid", () => + Effect.gen(function* () { + const fs = yield* AppFileSystem.Service + const tmp = yield* tmpdirScoped() + const storage = path.join(tmp, "storage") + const diffs = [ + { additions: 2, deletions: 1 }, + { additions: 3, deletions: 4 }, + ] - await text(path.join(storage, "migration"), "wat") - await write(path.join(storage, "session", "proj_test", "ses_test.json"), { - id: "ses_test", - projectID: "proj_test", - title: "legacy", - summary: { diffs }, - }) - - await withStorage(tmp.path, async (run) => { - expect(await run(Storage.Service.use((svc) => svc.list(["session_diff"])))).toEqual([ - ["session_diff", "ses_test"], - ]) - expect(await run(Storage.Service.use((svc) => svc.read(["session_diff", "ses_test"])))).toEqual( - diffs, + yield* fs.writeWithDirs(path.join(storage, "migration"), "wat") + yield* fs.writeWithDirs( + path.join(storage, "session", "proj_test", "ses_test.json"), + JSON.stringify({ + id: "ses_test", + projectID: "proj_test", + title: "legacy", + summary: { diffs }, + }), ) - expect( - await run( - Storage.Service.use((svc) => - svc.read<{ - id: string - projectID: string - title: string - summary: { - additions: number - deletions: number - } - }>(["session", "proj_test", "ses_test"]), - ), - ), - ).toEqual({ - id: "ses_test", - projectID: "proj_test", - title: "legacy", - summary: { - additions: 5, - deletions: 5, - }, - }) - }) - expect(await Bun.file(path.join(storage, "migration")).text()).toBe("2") - }) + yield* Effect.gen(function* () { + const svc = yield* Storage.Service + expect(yield* svc.list(["session_diff"])).toEqual([["session_diff", "ses_test"]]) + expect(yield* svc.read(["session_diff", "ses_test"])).toEqual(diffs) + expect( + yield* svc.read<{ + id: string + projectID: string + title: string + summary: { additions: number; deletions: number } + }>(["session", "proj_test", "ses_test"]), + ).toEqual({ + id: "ses_test", + projectID: "proj_test", + title: "legacy", + summary: { additions: 5, deletions: 5 }, + }) + }).pipe(Effect.provide(remappedStorage(tmp))) - test("migration 1 tolerates malformed legacy records", async () => { - await using tmp = await tmpdir({ git: true }) - const storage = path.join(tmp.path, "storage") - const legacy = path.join(tmp.path, "project", "legacy") + expect(yield* fs.readFileString(path.join(storage, "migration"))).toBe("2") + }), + ) - await write(path.join(legacy, "storage", "session", "message", "probe", "0.json"), []) - await write(path.join(legacy, "storage", "session", "message", "probe", "1.json"), { - path: { root: tmp.path }, - }) - await write(path.join(legacy, "storage", "session", "info", "ses_legacy.json"), { - id: "ses_legacy", - title: "legacy", - }) - await write(path.join(legacy, "storage", "session", "message", "ses_legacy", "msg_legacy.json"), { - role: "user", - text: "hello", - }) + it.live("migration 1 tolerates malformed legacy records", () => + Effect.gen(function* () { + const fs = yield* AppFileSystem.Service + const tmp = yield* tmpdirScoped({ git: true }) + const storage = path.join(tmp, "storage") + const legacy = path.join(tmp, "project", "legacy") - await withStorage(tmp.path, async (run) => { - const projects = await run(Storage.Service.use((svc) => svc.list(["project"]))) - expect(projects).toHaveLength(1) - const project = projects[0]![1] + yield* fs.writeWithDirs(path.join(legacy, "storage", "session", "message", "probe", "0.json"), "[]") + yield* fs.writeWithDirs( + path.join(legacy, "storage", "session", "message", "probe", "1.json"), + JSON.stringify({ path: { root: tmp } }), + ) + yield* fs.writeWithDirs( + path.join(legacy, "storage", "session", "info", "ses_legacy.json"), + JSON.stringify({ id: "ses_legacy", title: "legacy" }), + ) + yield* fs.writeWithDirs( + path.join(legacy, "storage", "session", "message", "ses_legacy", "msg_legacy.json"), + JSON.stringify({ role: "user", text: "hello" }), + ) - expect(await run(Storage.Service.use((svc) => svc.list(["session", project])))).toEqual([ - ["session", project, "ses_legacy"], - ]) - expect( - await run( - Storage.Service.use((svc) => svc.read<{ id: string; title: string }>(["session", project, "ses_legacy"])), - ), - ).toEqual({ - id: "ses_legacy", - title: "legacy", - }) - expect( - await run( - Storage.Service.use((svc) => - svc.read<{ role: string; text: string }>(["message", "ses_legacy", "msg_legacy"]), - ), - ), - ).toEqual({ - role: "user", - text: "hello", - }) - }) + yield* Effect.gen(function* () { + const svc = yield* Storage.Service + const projects = yield* svc.list(["project"]) + expect(projects).toHaveLength(1) + const project = projects[0]![1] - expect(await Bun.file(path.join(storage, "migration")).text()).toBe("2") - }) + expect(yield* svc.list(["session", project])).toEqual([["session", project, "ses_legacy"]]) + expect(yield* svc.read<{ id: string; title: string }>(["session", project, "ses_legacy"])).toEqual({ + id: "ses_legacy", + title: "legacy", + }) + expect(yield* svc.read<{ role: string; text: string }>(["message", "ses_legacy", "msg_legacy"])).toEqual({ + role: "user", + text: "hello", + }) + }).pipe(Effect.provide(remappedStorage(tmp))) - test("failed migrations do not advance the marker", async () => { - await using tmp = await tmpdir() - const storage = path.join(tmp.path, "storage") - const legacy = path.join(tmp.path, "project", "legacy") + expect(yield* fs.readFileString(path.join(storage, "migration"))).toBe("2") + }), + ) - await text(path.join(legacy, "storage", "session", "message", "probe", "0.json"), "{") + it.live("failed migrations do not advance the marker", () => + Effect.gen(function* () { + const fs = yield* AppFileSystem.Service + const tmp = yield* tmpdirScoped() + const storage = path.join(tmp, "storage") + const legacy = path.join(tmp, "project", "legacy") - await withStorage(tmp.path, async (run) => { - expect(await run(Storage.Service.use((svc) => svc.list(["project"])))).toEqual([]) - }) + yield* fs.writeWithDirs(path.join(legacy, "storage", "session", "message", "probe", "0.json"), "{") - expect(await exists(path.join(storage, "migration"))).toBe(false) - }) + yield* Effect.gen(function* () { + const svc = yield* Storage.Service + expect(yield* svc.list(["project"])).toEqual([]) + }).pipe(Effect.provide(remappedStorage(tmp))) + + const exit = yield* fs.access(path.join(storage, "migration")).pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) }) + From 605559b1653640187f01a99389248e918016195e Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 01:22:01 +0000 Subject: [PATCH 084/151] chore: generate --- packages/opencode/src/session/index.ts | 6 +++--- packages/opencode/test/storage/storage.test.ts | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index ebc8603f6..ba073cb1a 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -586,9 +586,9 @@ export namespace Session { }) const diff = Effect.fn("Session.diff")(function* (sessionID: SessionID) { - return yield* storage.read(["session_diff", sessionID]).pipe( - Effect.orElseSucceed((): Snapshot.FileDiff[] => []), - ) + return yield* storage + .read(["session_diff", sessionID]) + .pipe(Effect.orElseSucceed((): Snapshot.FileDiff[] => [])) }) const messages = Effect.fn("Session.messages")(function* (input: { sessionID: SessionID; limit?: number }) { diff --git a/packages/opencode/test/storage/storage.test.ts b/packages/opencode/test/storage/storage.test.ts index cbeb5f039..ea8f1feb4 100644 --- a/packages/opencode/test/storage/storage.test.ts +++ b/packages/opencode/test/storage/storage.test.ts @@ -11,9 +11,7 @@ import { testEffect } from "../lib/effect" const dir = path.join(Global.Path.data, "storage") -const it = testEffect( - Layer.mergeAll(Storage.defaultLayer, AppFileSystem.defaultLayer, CrossSpawnSpawner.defaultLayer), -) +const it = testEffect(Layer.mergeAll(Storage.defaultLayer, AppFileSystem.defaultLayer, CrossSpawnSpawner.defaultLayer)) const scope = Effect.fnUntraced(function* () { const root = ["storage_test", crypto.randomUUID()] @@ -293,4 +291,3 @@ describe("Storage", () => { }), ) }) - From face8791001a06dbf598006022925e8bd5b5f0c5 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 21:27:24 -0400 Subject: [PATCH 085/151] fix: disable default Effect console logger (#21963) --- packages/opencode/src/effect/logger.ts | 2 +- packages/opencode/src/effect/oltp.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/effect/logger.ts b/packages/opencode/src/effect/logger.ts index e78089ca0..7a7f0a541 100644 --- a/packages/opencode/src/effect/logger.ts +++ b/packages/opencode/src/effect/logger.ts @@ -55,7 +55,7 @@ export namespace EffectLogger { } }) - export const layer = Logger.layer([logger], { mergeWithExisting: true }) + export const layer = Logger.layer([logger], { mergeWithExisting: false }) export const create = (base: Fields = {}): Handle => ({ debug: (msg, extra) => call((item) => Effect.logDebug(item), base, msg, extra), diff --git a/packages/opencode/src/effect/oltp.ts b/packages/opencode/src/effect/oltp.ts index 6ef80dd29..cd8bcdc79 100644 --- a/packages/opencode/src/effect/oltp.ts +++ b/packages/opencode/src/effect/oltp.ts @@ -6,9 +6,8 @@ import { Flag } from "@/flag/flag" import { CHANNEL, VERSION } from "@/installation/meta" export namespace Observability { - export const enabled = !!Flag.OTEL_EXPORTER_OTLP_ENDPOINT - const base = Flag.OTEL_EXPORTER_OTLP_ENDPOINT + export const enabled = !!base const resource = { serviceName: "opencode", @@ -36,7 +35,7 @@ export namespace Observability { EffectLogger.layer, Otlp.layerJson({ baseUrl: base, - loggerExportInterval: Duration.seconds(5), + loggerExportInterval: Duration.seconds(1), loggerMergeWithExisting: true, resource, headers, From a4c686025cf5b09e8091810705c88264a839ba37 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 21:47:28 -0400 Subject: [PATCH 086/151] refactor: destroy Todo facade (#21962) --- packages/opencode/src/effect/oltp.ts | 17 +++++++---------- packages/opencode/src/server/routes/session.ts | 3 ++- packages/opencode/src/session/todo.ts | 6 ------ 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/packages/opencode/src/effect/oltp.ts b/packages/opencode/src/effect/oltp.ts index cd8bcdc79..33b67151a 100644 --- a/packages/opencode/src/effect/oltp.ts +++ b/packages/opencode/src/effect/oltp.ts @@ -31,14 +31,11 @@ export namespace Observability { export const layer = !base ? EffectLogger.layer - : Layer.mergeAll( - EffectLogger.layer, - Otlp.layerJson({ - baseUrl: base, - loggerExportInterval: Duration.seconds(1), - loggerMergeWithExisting: true, - resource, - headers, - }), - ).pipe(Layer.provide(FetchHttpClient.layer)) + : Otlp.layerJson({ + baseUrl: base, + loggerExportInterval: Duration.seconds(1), + loggerMergeWithExisting: true, + resource, + headers, + }).pipe(Layer.provide(EffectLogger.layer), Layer.provide(FetchHttpClient.layer)) } diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index 83658987e..cccaa7541 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -13,6 +13,7 @@ import { SessionShare } from "@/share/session" import { SessionStatus } from "@/session/status" import { SessionSummary } from "@/session/summary" import { Todo } from "../../session/todo" +import { AppRuntime } from "../../effect/app-runtime" import { Agent } from "../../agent/agent" import { Snapshot } from "@/snapshot" import { Command } from "../../command" @@ -185,7 +186,7 @@ export const SessionRoutes = lazy(() => ), async (c) => { const sessionID = c.req.valid("param").sessionID - const todos = await Todo.get(sessionID) + const todos = await AppRuntime.runPromise(Todo.Service.use((svc) => svc.get(sessionID))) return c.json(todos) }, ) diff --git a/packages/opencode/src/session/todo.ts b/packages/opencode/src/session/todo.ts index 4adfc7bc5..a7aa49aa3 100644 --- a/packages/opencode/src/session/todo.ts +++ b/packages/opencode/src/session/todo.ts @@ -1,6 +1,5 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" -import { makeRuntime } from "@/effect/run-service" import { SessionID } from "./schema" import { Effect, Layer, ServiceMap } from "effect" import z from "zod" @@ -83,9 +82,4 @@ export namespace Todo { ) export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function get(sessionID: SessionID) { - return runPromise((svc) => svc.get(sessionID)) - } } From 57f939767729a7cc6d127674528732e0d9beb24e Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 01:48:25 +0000 Subject: [PATCH 087/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 34 ++++----- packages/sdk/openapi.json | 94 ++++++++++++------------- 2 files changed, 64 insertions(+), 64 deletions(-) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index c1a77bfe8..7ca6ea05c 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -469,6 +469,21 @@ export type EventTodoUpdated = { } } +export type EventWorktreeReady = { + type: "worktree.ready" + properties: { + name: string + branch: string + } +} + +export type EventWorktreeFailed = { + type: "worktree.failed" + properties: { + message: string + } +} + export type Pty = { id: string title: string @@ -508,21 +523,6 @@ export type EventPtyDeleted = { } } -export type EventWorktreeReady = { - type: "worktree.ready" - properties: { - name: string - branch: string - } -} - -export type EventWorktreeFailed = { - type: "worktree.failed" - properties: { - message: string - } -} - export type OutputFormatText = { type: "text" } @@ -1005,12 +1005,12 @@ export type Event = | EventSessionIdle | EventSessionCompacted | EventTodoUpdated + | EventWorktreeReady + | EventWorktreeFailed | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted - | EventWorktreeReady - | EventWorktreeFailed | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index deece485e..7bc6392b9 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -8351,6 +8351,47 @@ }, "required": ["type", "properties"] }, + "Event.worktree.ready": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "worktree.ready" + }, + "properties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "branch": { + "type": "string" + } + }, + "required": ["name", "branch"] + } + }, + "required": ["type", "properties"] + }, + "Event.worktree.failed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "worktree.failed" + }, + "properties": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": ["message"] + } + }, + "required": ["type", "properties"] + }, "Pty": { "type": "object", "properties": { @@ -8464,47 +8505,6 @@ }, "required": ["type", "properties"] }, - "Event.worktree.ready": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "worktree.ready" - }, - "properties": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "branch": { - "type": "string" - } - }, - "required": ["name", "branch"] - } - }, - "required": ["type", "properties"] - }, - "Event.worktree.failed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "worktree.failed" - }, - "properties": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": ["message"] - } - }, - "required": ["type", "properties"] - }, "OutputFormatText": { "type": "object", "properties": { @@ -9967,6 +9967,12 @@ { "$ref": "#/components/schemas/Event.todo.updated" }, + { + "$ref": "#/components/schemas/Event.worktree.ready" + }, + { + "$ref": "#/components/schemas/Event.worktree.failed" + }, { "$ref": "#/components/schemas/Event.pty.created" }, @@ -9979,12 +9985,6 @@ { "$ref": "#/components/schemas/Event.pty.deleted" }, - { - "$ref": "#/components/schemas/Event.worktree.ready" - }, - { - "$ref": "#/components/schemas/Event.worktree.failed" - }, { "$ref": "#/components/schemas/Event.message.updated" }, From a17ac02061a20c022bb2e733185c122d77e473ad Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 22:00:56 -0400 Subject: [PATCH 088/151] refactor: extract LSP diagnostic report formatter (#21964) --- packages/opencode/src/lsp/index.ts | 11 +++++++++++ packages/opencode/src/tool/apply_patch.ts | 15 ++++----------- packages/opencode/src/tool/edit.ts | 14 ++------------ packages/opencode/src/tool/write.ts | 19 +++++++------------ 4 files changed, 24 insertions(+), 35 deletions(-) diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts index 33fd209cc..793a4475d 100644 --- a/packages/opencode/src/lsp/index.ts +++ b/packages/opencode/src/lsp/index.ts @@ -540,6 +540,8 @@ export namespace LSP { export const outgoingCalls = async (input: LocInput) => runPromise((svc) => svc.outgoingCalls(input)) export namespace Diagnostic { + const MAX_PER_FILE = 20 + export function pretty(diagnostic: LSPClient.Diagnostic) { const severityMap = { 1: "ERROR", @@ -554,5 +556,14 @@ export namespace LSP { return `${severity} [${line}:${col}] ${diagnostic.message}` } + + export function report(file: string, issues: LSPClient.Diagnostic[]) { + const errors = issues.filter((item) => item.severity === 1) + if (errors.length === 0) return "" + const limited = errors.slice(0, MAX_PER_FILE) + const more = errors.length - MAX_PER_FILE + const suffix = more > 0 ? `\n... and ${more} more` : "" + return `\n${limited.map(pretty).join("\n")}${suffix}\n` + } } } diff --git a/packages/opencode/src/tool/apply_patch.ts b/packages/opencode/src/tool/apply_patch.ts index 4b523aeaf..91adc5b92 100644 --- a/packages/opencode/src/tool/apply_patch.ts +++ b/packages/opencode/src/tool/apply_patch.ts @@ -258,20 +258,13 @@ export const ApplyPatchTool = Tool.defineEffect( }) let output = `Success. Updated the following files:\n${summaryLines.join("\n")}` - // Report LSP errors for changed files - const MAX_DIAGNOSTICS_PER_FILE = 20 for (const change of fileChanges) { if (change.type === "delete") continue const target = change.movePath ?? change.filePath - const normalized = AppFileSystem.normalizePath(target) - const issues = diagnostics[normalized] ?? [] - const errors = issues.filter((item) => item.severity === 1) - if (errors.length > 0) { - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" - output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } + const block = LSP.Diagnostic.report(target, diagnostics[AppFileSystem.normalizePath(target)] ?? []) + if (!block) continue + const rel = path.relative(Instance.worktree, target).replaceAll("\\", "/") + output += `\n\nLSP errors detected in ${rel}, please fix:\n${block}` } return { diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index e0b54bc11..7988ff943 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -20,8 +20,6 @@ import { Instance } from "../project/instance" import { Snapshot } from "@/snapshot" import { assertExternalDirectoryEffect } from "./external-directory" -const MAX_DIAGNOSTICS_PER_FILE = 20 - function normalizeLineEndings(text: string): string { return text.replaceAll("\r\n", "\n") } @@ -166,16 +164,8 @@ export const EditTool = Tool.defineEffect( yield* lsp.touchFile(filePath, true) const diagnostics = yield* lsp.diagnostics() const normalizedFilePath = Filesystem.normalizePath(filePath) - const issues = diagnostics[normalizedFilePath] ?? [] - const errors = issues.filter((item) => item.severity === 1) - if (errors.length > 0) { - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE - ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` - : "" - output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } + const block = LSP.Diagnostic.report(filePath, diagnostics[normalizedFilePath] ?? []) + if (block) output += `\n\nLSP errors detected in this file, please fix:\n${block}` return { metadata: { diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 23a975abc..52e36ffd9 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -15,7 +15,6 @@ import { Instance } from "../project/instance" import { trimDiff } from "./edit" import { assertExternalDirectoryEffect } from "./external-directory" -const MAX_DIAGNOSTICS_PER_FILE = 20 const MAX_PROJECT_DIAGNOSTICS_FILES = 5 export const WriteTool = Tool.defineEffect( @@ -72,20 +71,16 @@ export const WriteTool = Tool.defineEffect( const normalizedFilepath = AppFileSystem.normalizePath(filepath) let projectDiagnosticsCount = 0 for (const [file, issues] of Object.entries(diagnostics)) { - const errors = issues.filter((item) => item.severity === 1) - if (errors.length === 0) continue - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE - ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` - : "" - if (file === normalizedFilepath) { - output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + const current = file === normalizedFilepath + if (!current && projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue + const block = LSP.Diagnostic.report(current ? filepath : file, issues) + if (!block) continue + if (current) { + output += `\n\nLSP errors detected in this file, please fix:\n${block}` continue } - if (projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue projectDiagnosticsCount++ - output += `\n\nLSP errors detected in other files:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + output += `\n\nLSP errors detected in other files:\n${block}` } return { From 9e7045eaec4a28aee20bd889981932f73b1edd79 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 22:03:06 -0400 Subject: [PATCH 089/151] refactor: destroy ShareNext facade (#21965) --- packages/opencode/specs/effect-migration.md | 3 ++- packages/opencode/src/cli/cmd/import.ts | 5 +++-- packages/opencode/src/project/bootstrap.ts | 3 ++- packages/opencode/src/share/share-next.ts | 23 --------------------- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index ab90d6a44..7aa94d874 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -219,11 +219,11 @@ Fully migrated (single namespace, InstanceState where needed, flattened facade): - [x] `Instruction` — `session/instruction.ts` - [x] `Provider` — `provider/provider.ts` - [x] `Storage` — `storage/storage.ts` +- [x] `ShareNext` — `share/share-next.ts` Still open: - [ ] `SessionTodo` — `session/todo.ts` -- [ ] `ShareNext` — `share/share-next.ts` - [ ] `SyncEvent` — `sync/index.ts` - [ ] `Workspace` — `control-plane/workspace.ts` @@ -336,4 +336,5 @@ For each service, the migration is roughly: ### Migration log +- `ShareNext` — migrated 2026-04-11. Swapped remaining async callers to `AppRuntime.runPromise(ShareNext.Service.use(...))`, removed the `makeRuntime(...)` facade, and kept instance bootstrap on the shared app runtime. - `Storage` — migrated 2026-04-10. One production caller (`Session.diff`) and all storage.test.ts tests converted to effectful style. Facades and `makeRuntime` removed. diff --git a/packages/opencode/src/cli/cmd/import.ts b/packages/opencode/src/cli/cmd/import.ts index a0c0101fe..1232f0742 100644 --- a/packages/opencode/src/cli/cmd/import.ts +++ b/packages/opencode/src/cli/cmd/import.ts @@ -10,6 +10,7 @@ import { Instance } from "../../project/instance" import { ShareNext } from "../../share/share-next" import { EOL } from "os" import { Filesystem } from "../../util/filesystem" +import { AppRuntime } from "@/effect/app-runtime" /** Discriminated union returned by the ShareNext API (GET /api/shares/:id/data) */ export type ShareData = @@ -100,7 +101,7 @@ export const ImportCommand = cmd({ if (isUrl) { const slug = parseShareUrl(args.file) if (!slug) { - const baseUrl = await ShareNext.url() + const baseUrl = await AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.url())) process.stdout.write(`Invalid URL format. Expected: ${baseUrl}/share/`) process.stdout.write(EOL) return @@ -108,7 +109,7 @@ export const ImportCommand = cmd({ const parsed = new URL(args.file) const baseUrl = parsed.origin - const req = await ShareNext.request() + const req = await AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.request())) const headers = shouldAttachShareAuthHeaders(args.file, req.baseUrl) ? req.headers : {} const dataPath = req.api.data(slug) diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index a8ad84297..9ddcca556 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -10,12 +10,13 @@ import { Bus } from "../bus" import { Command } from "../command" import { Instance } from "./instance" import { Log } from "@/util/log" +import { AppRuntime } from "@/effect/app-runtime" import { ShareNext } from "@/share/share-next" export async function InstanceBootstrap() { Log.Default.info("bootstrapping", { directory: Instance.directory }) await Plugin.init() - ShareNext.init() + void AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.init())) Format.init() await LSP.init() File.init() diff --git a/packages/opencode/src/share/share-next.ts b/packages/opencode/src/share/share-next.ts index 26b2d2570..11fc08e24 100644 --- a/packages/opencode/src/share/share-next.ts +++ b/packages/opencode/src/share/share-next.ts @@ -4,7 +4,6 @@ import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } fr import { Account } from "@/account" import { Bus } from "@/bus" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { Provider } from "@/provider/provider" import { ModelID, ProviderID } from "@/provider/schema" import { Session } from "@/session" @@ -348,26 +347,4 @@ export namespace ShareNext { Layer.provide(Provider.defaultLayer), Layer.provide(Session.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function init() { - return runPromise((svc) => svc.init()) - } - - export async function url() { - return runPromise((svc) => svc.url()) - } - - export async function request(): Promise { - return runPromise((svc) => svc.request()) - } - - export async function create(sessionID: SessionID) { - return runPromise((svc) => svc.create(sessionID)) - } - - export async function remove(sessionID: SessionID) { - return runPromise((svc) => svc.remove(sessionID)) - } } From b898c6d0ea2fcd83b6c23da52f811c082b329771 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 02:04:02 +0000 Subject: [PATCH 090/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 100 +++++----- packages/sdk/openapi.json | 242 ++++++++++++------------ 2 files changed, 171 insertions(+), 171 deletions(-) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 7ca6ea05c..ab0707787 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -316,29 +316,6 @@ export type EventCommandExecuted = { } } -export type EventWorkspaceReady = { - type: "workspace.ready" - properties: { - name: string - } -} - -export type EventWorkspaceFailed = { - type: "workspace.failed" - properties: { - message: string - } -} - -export type EventWorkspaceStatus = { - type: "workspace.status" - properties: { - workspaceID: string - status: "connected" | "connecting" | "disconnected" | "error" - error?: string - } -} - export type QuestionOption = { /** * Display text (1-5 words, concise) @@ -410,6 +387,29 @@ export type EventQuestionRejected = { } } +export type Todo = { + /** + * Brief description of the task + */ + content: string + /** + * Current status of the task: pending, in_progress, completed, cancelled + */ + status: string + /** + * Priority level of the task: high, medium, low + */ + priority: string +} + +export type EventTodoUpdated = { + type: "todo.updated" + properties: { + sessionID: string + todos: Array + } +} + export type SessionStatus = | { type: "idle" @@ -446,29 +446,6 @@ export type EventSessionCompacted = { } } -export type Todo = { - /** - * Brief description of the task - */ - content: string - /** - * Current status of the task: pending, in_progress, completed, cancelled - */ - status: string - /** - * Priority level of the task: high, medium, low - */ - priority: string -} - -export type EventTodoUpdated = { - type: "todo.updated" - properties: { - sessionID: string - todos: Array - } -} - export type EventWorktreeReady = { type: "worktree.ready" properties: { @@ -523,6 +500,29 @@ export type EventPtyDeleted = { } } +export type EventWorkspaceReady = { + type: "workspace.ready" + properties: { + name: string + } +} + +export type EventWorkspaceFailed = { + type: "workspace.failed" + properties: { + message: string + } +} + +export type EventWorkspaceStatus = { + type: "workspace.status" + properties: { + workspaceID: string + status: "connected" | "connecting" | "disconnected" | "error" + error?: string + } +} + export type OutputFormatText = { type: "text" } @@ -995,22 +995,22 @@ export type Event = | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventCommandExecuted - | EventWorkspaceReady - | EventWorkspaceFailed - | EventWorkspaceStatus | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected + | EventTodoUpdated | EventSessionStatus | EventSessionIdle | EventSessionCompacted - | EventTodoUpdated | EventWorktreeReady | EventWorktreeFailed | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted + | EventWorkspaceReady + | EventWorkspaceFailed + | EventWorkspaceStatus | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 7bc6392b9..71b17966e 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7986,71 +7986,6 @@ }, "required": ["type", "properties"] }, - "Event.workspace.ready": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.ready" - }, - "properties": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": ["name"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.failed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.failed" - }, - "properties": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": ["message"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.status": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.status" - }, - "properties": { - "type": "object", - "properties": { - "workspaceID": { - "type": "string", - "pattern": "^wrk.*" - }, - "status": { - "type": "string", - "enum": ["connected", "connecting", "disconnected", "error"] - }, - "error": { - "type": "string" - } - }, - "required": ["workspaceID", "status"] - } - }, - "required": ["type", "properties"] - }, "QuestionOption": { "type": "object", "properties": { @@ -8201,6 +8136,50 @@ }, "required": ["type", "properties"] }, + "Todo": { + "type": "object", + "properties": { + "content": { + "description": "Brief description of the task", + "type": "string" + }, + "status": { + "description": "Current status of the task: pending, in_progress, completed, cancelled", + "type": "string" + }, + "priority": { + "description": "Priority level of the task: high, medium, low", + "type": "string" + } + }, + "required": ["content", "status", "priority"] + }, + "Event.todo.updated": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "todo.updated" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "todos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Todo" + } + } + }, + "required": ["sessionID", "todos"] + } + }, + "required": ["type", "properties"] + }, "SessionStatus": { "anyOf": [ { @@ -8307,50 +8286,6 @@ }, "required": ["type", "properties"] }, - "Todo": { - "type": "object", - "properties": { - "content": { - "description": "Brief description of the task", - "type": "string" - }, - "status": { - "description": "Current status of the task: pending, in_progress, completed, cancelled", - "type": "string" - }, - "priority": { - "description": "Priority level of the task: high, medium, low", - "type": "string" - } - }, - "required": ["content", "status", "priority"] - }, - "Event.todo.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "todo.updated" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "todos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Todo" - } - } - }, - "required": ["sessionID", "todos"] - } - }, - "required": ["type", "properties"] - }, "Event.worktree.ready": { "type": "object", "properties": { @@ -8505,6 +8440,71 @@ }, "required": ["type", "properties"] }, + "Event.workspace.ready": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.ready" + }, + "properties": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"] + } + }, + "required": ["type", "properties"] + }, + "Event.workspace.failed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.failed" + }, + "properties": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": ["message"] + } + }, + "required": ["type", "properties"] + }, + "Event.workspace.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.status" + }, + "properties": { + "type": "object", + "properties": { + "workspaceID": { + "type": "string", + "pattern": "^wrk.*" + }, + "status": { + "type": "string", + "enum": ["connected", "connecting", "disconnected", "error"] + }, + "error": { + "type": "string" + } + }, + "required": ["workspaceID", "status"] + } + }, + "required": ["type", "properties"] + }, "OutputFormatText": { "type": "object", "properties": { @@ -9937,15 +9937,6 @@ { "$ref": "#/components/schemas/Event.command.executed" }, - { - "$ref": "#/components/schemas/Event.workspace.ready" - }, - { - "$ref": "#/components/schemas/Event.workspace.failed" - }, - { - "$ref": "#/components/schemas/Event.workspace.status" - }, { "$ref": "#/components/schemas/Event.question.asked" }, @@ -9955,6 +9946,9 @@ { "$ref": "#/components/schemas/Event.question.rejected" }, + { + "$ref": "#/components/schemas/Event.todo.updated" + }, { "$ref": "#/components/schemas/Event.session.status" }, @@ -9964,9 +9958,6 @@ { "$ref": "#/components/schemas/Event.session.compacted" }, - { - "$ref": "#/components/schemas/Event.todo.updated" - }, { "$ref": "#/components/schemas/Event.worktree.ready" }, @@ -9985,6 +9976,15 @@ { "$ref": "#/components/schemas/Event.pty.deleted" }, + { + "$ref": "#/components/schemas/Event.workspace.ready" + }, + { + "$ref": "#/components/schemas/Event.workspace.failed" + }, + { + "$ref": "#/components/schemas/Event.workspace.status" + }, { "$ref": "#/components/schemas/Event.message.updated" }, From f99812443c97022d88957bf67cf98be3e790bb7d Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 22:16:53 -0400 Subject: [PATCH 091/151] refactor: destroy SessionStatus facade (#21968) --- packages/opencode/specs/effect-migration.md | 1 + .../opencode/src/server/routes/session.ts | 2 +- packages/opencode/src/session/status.ts | 14 -------------- packages/opencode/test/session/retry.test.ts | 19 ++++++++++++------- 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index 7aa94d874..dacf55b07 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -336,5 +336,6 @@ For each service, the migration is roughly: ### Migration log +- `SessionStatus` — migrated 2026-04-11. Replaced the last route and retry-policy callers with `AppRuntime.runPromise(SessionStatus.Service.use(...))` and removed the `makeRuntime(...)` facade. - `ShareNext` — migrated 2026-04-11. Swapped remaining async callers to `AppRuntime.runPromise(ShareNext.Service.use(...))`, removed the `makeRuntime(...)` facade, and kept instance bootstrap on the shared app runtime. - `Storage` — migrated 2026-04-10. One production caller (`Session.diff`) and all storage.test.ts tests converted to effectful style. Facades and `makeRuntime` removed. diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index cccaa7541..a2a15d59e 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -94,7 +94,7 @@ export const SessionRoutes = lazy(() => }, }), async (c) => { - const result = await SessionStatus.list() + const result = await AppRuntime.runPromise(SessionStatus.Service.use((svc) => svc.list())) return c.json(Object.fromEntries(result)) }, ) diff --git a/packages/opencode/src/session/status.ts b/packages/opencode/src/session/status.ts index 16fccaf3e..d54d8b795 100644 --- a/packages/opencode/src/session/status.ts +++ b/packages/opencode/src/session/status.ts @@ -1,7 +1,6 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { SessionID } from "./schema" import { Effect, Layer, ServiceMap } from "effect" import z from "zod" @@ -86,17 +85,4 @@ export namespace SessionStatus { ) export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function get(sessionID: SessionID) { - return runPromise((svc) => svc.get(sessionID)) - } - - export async function list() { - return runPromise((svc) => svc.list()) - } - - export async function set(sessionID: SessionID, status: Info) { - return runPromise((svc) => svc.set(sessionID, status)) - } } diff --git a/packages/opencode/test/session/retry.test.ts b/packages/opencode/test/session/retry.test.ts index 0204c7a11..a598c37fc 100644 --- a/packages/opencode/test/session/retry.test.ts +++ b/packages/opencode/test/session/retry.test.ts @@ -6,6 +6,7 @@ import { Effect, Schedule } from "effect" import { SessionRetry } from "../../src/session/retry" import { MessageV2 } from "../../src/session/message-v2" import { ProviderID } from "../../src/provider/schema" +import { AppRuntime } from "../../src/effect/app-runtime" import { SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { Instance } from "../../src/project/instance" @@ -94,12 +95,16 @@ describe("session.retry.delay", () => { parse: (err) => err as MessageV2.APIError, set: (info) => Effect.promise(() => - SessionStatus.set(sessionID, { - type: "retry", - attempt: info.attempt, - message: info.message, - next: info.next, - }), + AppRuntime.runPromise( + SessionStatus.Service.use((svc) => + svc.set(sessionID, { + type: "retry", + attempt: info.attempt, + message: info.message, + next: info.next, + }), + ), + ), ), }), ) @@ -108,7 +113,7 @@ describe("session.retry.delay", () => { }), ) - expect(await SessionStatus.get(sessionID)).toMatchObject({ + expect(await AppRuntime.runPromise(SessionStatus.Service.use((svc) => svc.get(sessionID)))).toMatchObject({ type: "retry", attempt: 2, message: "boom", From c5fb6281f05949f9928673d0045de411d24e0e20 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 22:36:02 -0400 Subject: [PATCH 092/151] =?UTF-8?q?refactor(tool):=20Tool.Def.execute=20re?= =?UTF-8?q?turns=20Effect,=20rename=20defineEffect=20=E2=86=92=20define=20?= =?UTF-8?q?(#21961)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/opencode/src/cli/cmd/debug/agent.ts | 15 +- packages/opencode/src/file/time.ts | 8 +- packages/opencode/src/session/prompt.ts | 131 +++++++------- packages/opencode/src/tool/apply_patch.ts | 33 ++-- packages/opencode/src/tool/bash.ts | 32 ++-- packages/opencode/src/tool/codesearch.ts | 24 ++- packages/opencode/src/tool/edit.ts | 136 ++++++++------- .../opencode/src/tool/external-directory.ts | 20 +-- packages/opencode/src/tool/glob.ts | 24 ++- packages/opencode/src/tool/grep.ts | 26 ++- packages/opencode/src/tool/invalid.ts | 29 ++-- packages/opencode/src/tool/ls.ts | 22 ++- packages/opencode/src/tool/lsp.ts | 6 +- packages/opencode/src/tool/multiedit.ts | 22 ++- packages/opencode/src/tool/plan.ts | 4 +- packages/opencode/src/tool/question.ts | 4 +- packages/opencode/src/tool/read.ts | 20 +-- packages/opencode/src/tool/registry.ts | 46 +++-- packages/opencode/src/tool/skill.ts | 18 +- packages/opencode/src/tool/task.ts | 26 ++- packages/opencode/src/tool/todo.ts | 37 ++-- packages/opencode/src/tool/tool.ts | 86 +++++----- packages/opencode/src/tool/webfetch.ts | 26 ++- packages/opencode/src/tool/websearch.ts | 30 ++-- packages/opencode/src/tool/write.ts | 40 ++--- .../test/session/prompt-effect.test.ts | 26 +-- .../test/session/snapshot-tool-race.test.ts | 2 +- .../opencode/test/tool/apply_patch.test.ts | 12 +- packages/opencode/test/tool/bash.test.ts | 162 +++++++++--------- packages/opencode/test/tool/edit.test.ts | 125 +++++++------- .../test/tool/external-directory.test.ts | 66 ++----- packages/opencode/test/tool/grep.test.ts | 14 +- packages/opencode/test/tool/question.test.ts | 6 +- packages/opencode/test/tool/read.test.ts | 30 ++-- packages/opencode/test/tool/skill.test.ts | 7 +- packages/opencode/test/tool/task.test.ts | 35 ++-- .../opencode/test/tool/tool-define.test.ts | 27 +-- packages/opencode/test/tool/webfetch.test.ts | 10 +- packages/opencode/test/tool/write.test.ts | 8 +- 39 files changed, 674 insertions(+), 721 deletions(-) diff --git a/packages/opencode/src/cli/cmd/debug/agent.ts b/packages/opencode/src/cli/cmd/debug/agent.ts index 458f92547..fde64e53f 100644 --- a/packages/opencode/src/cli/cmd/debug/agent.ts +++ b/packages/opencode/src/cli/cmd/debug/agent.ts @@ -1,5 +1,6 @@ import { EOL } from "os" import { basename } from "path" +import { Effect } from "effect" import { Agent } from "../../../agent/agent" import { Provider } from "../../../provider/provider" import { Session } from "../../../session" @@ -158,13 +159,15 @@ async function createToolContext(agent: Agent.Info) { abort: new AbortController().signal, messages: [], metadata: () => {}, - async ask(req: Omit) { - for (const pattern of req.patterns) { - const rule = Permission.evaluate(req.permission, pattern, ruleset) - if (rule.action === "deny") { - throw new Permission.DeniedError({ ruleset }) + ask(req: Omit) { + return Effect.sync(() => { + for (const pattern of req.patterns) { + const rule = Permission.evaluate(req.permission, pattern, ruleset) + if (rule.action === "deny") { + throw new Permission.DeniedError({ ruleset }) + } } - } + }) }, } } diff --git a/packages/opencode/src/file/time.ts b/packages/opencode/src/file/time.ts index d5ca3db85..6af71e91a 100644 --- a/packages/opencode/src/file/time.ts +++ b/packages/opencode/src/file/time.ts @@ -34,7 +34,7 @@ export namespace FileTime { readonly read: (sessionID: SessionID, file: string) => Effect.Effect readonly get: (sessionID: SessionID, file: string) => Effect.Effect readonly assert: (sessionID: SessionID, filepath: string) => Effect.Effect - readonly withLock: (filepath: string, fn: () => Promise) => Effect.Effect + readonly withLock: (filepath: string, fn: () => Effect.Effect) => Effect.Effect } export class Service extends ServiceMap.Service()("@opencode/FileTime") {} @@ -103,8 +103,8 @@ export namespace FileTime { ) }) - const withLock = Effect.fn("FileTime.withLock")(function* (filepath: string, fn: () => Promise) { - return yield* Effect.promise(fn).pipe((yield* getLock(filepath)).withPermits(1)) + const withLock = Effect.fn("FileTime.withLock")(function* (filepath: string, fn: () => Effect.Effect) { + return yield* fn().pipe((yield* getLock(filepath)).withPermits(1)) }) return Service.of({ read, get, assert, withLock }) @@ -128,6 +128,6 @@ export namespace FileTime { } export async function withLock(filepath: string, fn: () => Promise): Promise { - return runPromise((s) => s.withLock(filepath, fn)) + return runPromise((s) => s.withLock(filepath, () => Effect.promise(fn))) } } diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 50923d78b..6c0c55e2b 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -103,6 +103,13 @@ export namespace SessionPrompt { const state = yield* SessionRunState.Service const revert = yield* SessionRevert.Service + const run = { + promise: (effect: Effect.Effect) => + Effect.runPromise(effect.pipe(Effect.provide(EffectLogger.layer))), + fork: (effect: Effect.Effect) => + Effect.runFork(effect.pipe(Effect.provide(EffectLogger.layer))), + } + const cancel = Effect.fn("SessionPrompt.cancel")(function* (sessionID: SessionID) { yield* elog.info("cancel", { sessionID }) yield* state.cancel(sessionID) @@ -358,7 +365,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the agent: input.agent.name, messages: input.messages, metadata: (val) => - Effect.runPromise( + run.promise( input.processor.updateToolCall(options.toolCallId, (match) => { if (!["running", "pending"].includes(match.state.status)) return match return { @@ -374,14 +381,14 @@ NOTE: At any point in time through this workflow you should feel free to ask the }), ), ask: (req) => - Effect.runPromise( - permission.ask({ + permission + .ask({ ...req, sessionID: input.session.id, tool: { messageID: input.processor.message.id, callID: options.toolCallId }, ruleset: Permission.merge(input.agent.permission, input.session.permission ?? []), - }), - ), + }) + .pipe(Effect.orDie), }) for (const item of yield* registry.tools({ @@ -395,7 +402,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the description: item.description, inputSchema: jsonSchema(schema as any), execute(args, options) { - return Effect.runPromise( + return run.promise( Effect.gen(function* () { const ctx = context(args, options) yield* plugin.trigger( @@ -403,7 +410,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the { tool: item.id, sessionID: ctx.sessionID, callID: ctx.callID }, { args }, ) - const result = yield* Effect.promise(() => item.execute(args, ctx)) + const result = yield* item.execute(args, ctx) const output = { ...result, attachments: result.attachments?.map((attachment) => ({ @@ -436,7 +443,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the const transformed = ProviderTransform.schema(input.model, schema) item.inputSchema = jsonSchema(transformed) item.execute = (args, opts) => - Effect.runPromise( + run.promise( Effect.gen(function* () { const ctx = context(args, opts) yield* plugin.trigger( @@ -444,7 +451,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the { tool: key, sessionID: ctx.sessionID, callID: opts.toolCallId }, { args }, ) - yield* Effect.promise(() => ctx.ask({ permission: key, metadata: {}, patterns: ["*"], always: ["*"] })) + yield* ctx.ask({ permission: key, metadata: {}, patterns: ["*"], always: ["*"] }) const result: Awaited>> = yield* Effect.promise(() => execute(args, opts), ) @@ -576,45 +583,46 @@ NOTE: At any point in time through this workflow you should feel free to ask the } let error: Error | undefined - const result = yield* Effect.promise((signal) => - taskTool - .execute(taskArgs, { - agent: task.agent, - messageID: assistantMessage.id, - sessionID, - abort: signal, - callID: part.callID, - extra: { bypassAgentCheck: true, promptOps }, - messages: msgs, - metadata(val: { title?: string; metadata?: Record }) { - return Effect.runPromise( - Effect.gen(function* () { - part = yield* sessions.updatePart({ - ...part, - type: "tool", - state: { ...part.state, ...val }, - } satisfies MessageV2.ToolPart) - }), - ) - }, - ask(req: any) { - return Effect.runPromise( - permission.ask({ - ...req, - sessionID, - ruleset: Permission.merge(taskAgent.permission, session.permission ?? []), - }), - ) - }, - }) - .catch((e) => { - error = e instanceof Error ? e : new Error(String(e)) + const taskAbort = new AbortController() + const result = yield* taskTool + .execute(taskArgs, { + agent: task.agent, + messageID: assistantMessage.id, + sessionID, + abort: taskAbort.signal, + callID: part.callID, + extra: { bypassAgentCheck: true, promptOps }, + messages: msgs, + metadata(val: { title?: string; metadata?: Record }) { + return run.promise( + Effect.gen(function* () { + part = yield* sessions.updatePart({ + ...part, + type: "tool", + state: { ...part.state, ...val }, + } satisfies MessageV2.ToolPart) + }), + ) + }, + ask: (req: any) => + permission + .ask({ + ...req, + sessionID, + ruleset: Permission.merge(taskAgent.permission, session.permission ?? []), + }) + .pipe(Effect.orDie), + }) + .pipe( + Effect.catchCause((cause) => { + const defect = Cause.squash(cause) + error = defect instanceof Error ? defect : new Error(String(defect)) log.error("subtask execution failed", { error, agent: task.agent, description: task.description }) - return undefined + return Effect.void }), - ).pipe( - Effect.onInterrupt(() => - Effect.gen(function* () { + Effect.onInterrupt(() => + Effect.gen(function* () { + taskAbort.abort() assistantMessage.finish = "tool-calls" assistantMessage.time.completed = Date.now() yield* sessions.updateMessage(assistantMessage) @@ -630,9 +638,8 @@ NOTE: At any point in time through this workflow you should feel free to ask the }, } satisfies MessageV2.ToolPart) } - }), - ), - ) + })), + ) const attachments = result?.attachments?.map((attachment) => ({ ...attachment, @@ -855,7 +862,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the output += chunk if (part.state.status === "running") { part.state.metadata = { output, description: "" } - void Effect.runFork(sessions.updatePart(part)) + void run.fork(sessions.updatePart(part)) } }), ) @@ -1037,19 +1044,21 @@ NOTE: At any point in time through this workflow you should feel free to ask the if (yield* fsys.isDir(filepath)) part.mime = "application/x-directory" const { read } = yield* registry.named() - const execRead = (args: Parameters[0], extra?: Tool.Context["extra"]) => - Effect.promise((signal: AbortSignal) => - read.execute(args, { + const execRead = (args: Parameters[0], extra?: Tool.Context["extra"]) => { + const controller = new AbortController() + return read + .execute(args, { sessionID: input.sessionID, - abort: signal, + abort: controller.signal, agent: input.agent!, messageID: info.id, extra: { bypassCwdCheck: true, ...extra }, messages: [], - metadata: async () => {}, - ask: async () => {}, - }), - ) + metadata: () => {}, + ask: () => Effect.void, + }) + .pipe(Effect.onInterrupt(() => Effect.sync(() => controller.abort()))) + } if (part.mime === "text/plain") { let offset: number | undefined @@ -1655,9 +1664,9 @@ NOTE: At any point in time through this workflow you should feel free to ask the }) const promptOps: TaskPromptOps = { - cancel: (sessionID) => Effect.runFork(cancel(sessionID)), - resolvePromptParts: (template) => Effect.runPromise(resolvePromptParts(template)), - prompt: (input) => Effect.runPromise(prompt(input)), + cancel: (sessionID) => run.fork(cancel(sessionID)), + resolvePromptParts: (template) => run.promise(resolvePromptParts(template)), + prompt: (input) => run.promise(prompt(input)), } return Service.of({ diff --git a/packages/opencode/src/tool/apply_patch.ts b/packages/opencode/src/tool/apply_patch.ts index 91adc5b92..fd38a9b22 100644 --- a/packages/opencode/src/tool/apply_patch.ts +++ b/packages/opencode/src/tool/apply_patch.ts @@ -19,12 +19,13 @@ const PatchParams = z.object({ patchText: z.string().describe("The full patch text that describes all changes to be made"), }) -export const ApplyPatchTool = Tool.defineEffect( +export const ApplyPatchTool = Tool.define( "apply_patch", Effect.gen(function* () { const lsp = yield* LSP.Service const afs = yield* AppFileSystem.Service const format = yield* Format.Service + const bus = yield* Bus.Service const run = Effect.fn("ApplyPatchTool.execute")(function* (params: z.infer, ctx: Tool.Context) { if (!params.patchText) { @@ -178,18 +179,16 @@ export const ApplyPatchTool = Tool.defineEffect( // Check permissions if needed const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath).replaceAll("\\", "/")) - yield* Effect.promise(() => - ctx.ask({ - permission: "edit", - patterns: relativePaths, - always: ["*"], - metadata: { - filepath: relativePaths.join(", "), - diff: totalDiff, - files, - }, - }), - ) + yield* ctx.ask({ + permission: "edit", + patterns: relativePaths, + always: ["*"], + metadata: { + filepath: relativePaths.join(", "), + diff: totalDiff, + files, + }, + }) // Apply the changes const updates: Array<{ file: string; event: "add" | "change" | "unlink" }> = [] @@ -228,13 +227,13 @@ export const ApplyPatchTool = Tool.defineEffect( if (edited) { yield* format.file(edited) - Bus.publish(File.Event.Edited, { file: edited }) + yield* bus.publish(File.Event.Edited, { file: edited }) } } // Publish file change events for (const update of updates) { - Bus.publish(FileWatcher.Event.Updated, update) + yield* bus.publish(FileWatcher.Event.Updated, update) } // Notify LSP of file changes and collect diagnostics @@ -281,9 +280,7 @@ export const ApplyPatchTool = Tool.defineEffect( return { description: DESCRIPTION, parameters: PatchParams, - async execute(params: z.infer, ctx) { - return Effect.runPromise(run(params, ctx).pipe(Effect.orDie)) - }, + execute: (params: z.infer, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index abcb9e327..2f81e56ae 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -226,25 +226,21 @@ const ask = Effect.fn("BashTool.ask")(function* (ctx: Tool.Context, scan: Scan) if (process.platform === "win32") return AppFileSystem.normalizePathPattern(path.join(dir, "*")) return path.join(dir, "*") }) - yield* Effect.promise(() => - ctx.ask({ - permission: "external_directory", - patterns: globs, - always: globs, - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "external_directory", + patterns: globs, + always: globs, + metadata: {}, + }) } if (scan.patterns.size === 0) return - yield* Effect.promise(() => - ctx.ask({ - permission: "bash", - patterns: Array.from(scan.patterns), - always: Array.from(scan.always), - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "bash", + patterns: Array.from(scan.patterns), + always: Array.from(scan.always), + metadata: {}, + }) }) function cmd(shell: string, name: string, command: string, cwd: string, env: NodeJS.ProcessEnv) { @@ -294,7 +290,7 @@ const parser = lazy(async () => { }) // TODO: we may wanna rename this tool so it works better on other shells -export const BashTool = Tool.defineEffect( +export const BashTool = Tool.define( "bash", Effect.gen(function* () { const spawner = yield* ChildProcessSpawner @@ -504,7 +500,7 @@ export const BashTool = Tool.defineEffect( }, ctx, ) - }).pipe(Effect.orDie, Effect.runPromise), + }), } } }), diff --git a/packages/opencode/src/tool/codesearch.ts b/packages/opencode/src/tool/codesearch.ts index 7e167df55..d4d5779bf 100644 --- a/packages/opencode/src/tool/codesearch.ts +++ b/packages/opencode/src/tool/codesearch.ts @@ -5,7 +5,7 @@ import { Tool } from "./tool" import * as McpExa from "./mcp-exa" import DESCRIPTION from "./codesearch.txt" -export const CodeSearchTool = Tool.defineEffect( +export const CodeSearchTool = Tool.define( "codesearch", Effect.gen(function* () { const http = yield* HttpClient.HttpClient @@ -29,17 +29,15 @@ export const CodeSearchTool = Tool.defineEffect( }), execute: (params: { query: string; tokensNum: number }, ctx: Tool.Context) => Effect.gen(function* () { - yield* Effect.promise(() => - ctx.ask({ - permission: "codesearch", - patterns: [params.query], - always: ["*"], - metadata: { - query: params.query, - tokensNum: params.tokensNum, - }, - }), - ) + yield* ctx.ask({ + permission: "codesearch", + patterns: [params.query], + always: ["*"], + metadata: { + query: params.query, + tokensNum: params.tokensNum, + }, + }) const result = yield* McpExa.call( http, @@ -59,7 +57,7 @@ export const CodeSearchTool = Tool.defineEffect( title: `Code search: ${params.query}`, metadata: {}, } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index 7988ff943..a076d054f 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -19,6 +19,7 @@ import { Filesystem } from "../util/filesystem" import { Instance } from "../project/instance" import { Snapshot } from "@/snapshot" import { assertExternalDirectoryEffect } from "./external-directory" +import { AppFileSystem } from "../filesystem" function normalizeLineEndings(text: string): string { return text.replaceAll("\r\n", "\n") @@ -40,11 +41,14 @@ const Parameters = z.object({ replaceAll: z.boolean().optional().describe("Replace all occurrences of oldString (default false)"), }) -export const EditTool = Tool.defineEffect( +export const EditTool = Tool.define( "edit", Effect.gen(function* () { const lsp = yield* LSP.Service const filetime = yield* FileTime.Service + const afs = yield* AppFileSystem.Service + const format = yield* Format.Service + const bus = yield* Bus.Service return { description: DESCRIPTION, @@ -67,12 +71,53 @@ export const EditTool = Tool.defineEffect( let diff = "" let contentOld = "" let contentNew = "" - yield* filetime.withLock(filePath, async () => { - if (params.oldString === "") { - const existed = await Filesystem.exists(filePath) - contentNew = params.newString - diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) - await ctx.ask({ + yield* filetime.withLock(filePath, () => + Effect.gen(function* () { + if (params.oldString === "") { + const existed = yield* afs.existsSafe(filePath) + contentNew = params.newString + diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) + yield* ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filePath)], + always: ["*"], + metadata: { + filepath: filePath, + diff, + }, + }) + yield* afs.writeWithDirs(filePath, params.newString) + yield* format.file(filePath) + yield* bus.publish(File.Event.Edited, { file: filePath }) + yield* bus.publish(FileWatcher.Event.Updated, { + file: filePath, + event: existed ? "change" : "add", + }) + yield* filetime.read(ctx.sessionID, filePath) + return + } + + const info = yield* afs.stat(filePath).pipe(Effect.catch(() => Effect.succeed(undefined))) + if (!info) throw new Error(`File ${filePath} not found`) + if (info.type === "Directory") throw new Error(`Path is a directory, not a file: ${filePath}`) + yield* filetime.assert(ctx.sessionID, filePath) + contentOld = yield* afs.readFileString(filePath) + + const ending = detectLineEnding(contentOld) + const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) + const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) + + contentNew = replace(contentOld, old, next, params.replaceAll) + + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + yield* ctx.ask({ permission: "edit", patterns: [path.relative(Instance.worktree, filePath)], always: ["*"], @@ -81,65 +126,26 @@ export const EditTool = Tool.defineEffect( diff, }, }) - await Filesystem.write(filePath, params.newString) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { + + yield* afs.writeWithDirs(filePath, contentNew) + yield* format.file(filePath) + yield* bus.publish(File.Event.Edited, { file: filePath }) + yield* bus.publish(FileWatcher.Event.Updated, { file: filePath, - event: existed ? "change" : "add", + event: "change", }) - await FileTime.read(ctx.sessionID, filePath) - return - } - - const stats = Filesystem.stat(filePath) - if (!stats) throw new Error(`File ${filePath} not found`) - if (stats.isDirectory()) throw new Error(`Path is a directory, not a file: ${filePath}`) - await FileTime.assert(ctx.sessionID, filePath) - contentOld = await Filesystem.readText(filePath) - - const ending = detectLineEnding(contentOld) - const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) - const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) - - contentNew = replace(contentOld, old, next, params.replaceAll) - - diff = trimDiff( - createTwoFilesPatch( - filePath, - filePath, - normalizeLineEndings(contentOld), - normalizeLineEndings(contentNew), - ), - ) - await ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filePath)], - always: ["*"], - metadata: { - filepath: filePath, - diff, - }, - }) - - await Filesystem.write(filePath, contentNew) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { - file: filePath, - event: "change", - }) - contentNew = await Filesystem.readText(filePath) - diff = trimDiff( - createTwoFilesPatch( - filePath, - filePath, - normalizeLineEndings(contentOld), - normalizeLineEndings(contentNew), - ), - ) - await FileTime.read(ctx.sessionID, filePath) - }) + contentNew = yield* afs.readFileString(filePath) + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + yield* filetime.read(ctx.sessionID, filePath) + }).pipe(Effect.orDie), + ) const filediff: Snapshot.FileDiff = { file: filePath, @@ -176,7 +182,7 @@ export const EditTool = Tool.defineEffect( title: `${path.relative(Instance.worktree, filePath)}`, output, } - }).pipe(Effect.orDie, Effect.runPromise), + }), } }), ) diff --git a/packages/opencode/src/tool/external-directory.ts b/packages/opencode/src/tool/external-directory.ts index f11455cf5..ed9d2af2f 100644 --- a/packages/opencode/src/tool/external-directory.ts +++ b/packages/opencode/src/tool/external-directory.ts @@ -11,7 +11,11 @@ type Options = { kind?: Kind } -export async function assertExternalDirectory(ctx: Tool.Context, target?: string, options?: Options) { +export const assertExternalDirectoryEffect = Effect.fn("Tool.assertExternalDirectory")(function* ( + ctx: Tool.Context, + target?: string, + options?: Options, +) { if (!target) return if (options?.bypass) return @@ -26,7 +30,7 @@ export async function assertExternalDirectory(ctx: Tool.Context, target?: string ? AppFileSystem.normalizePathPattern(path.join(dir, "*")) : path.join(dir, "*").replaceAll("\\", "/") - await ctx.ask({ + yield* ctx.ask({ permission: "external_directory", patterns: [glob], always: [glob], @@ -35,12 +39,8 @@ export async function assertExternalDirectory(ctx: Tool.Context, target?: string parentDir: dir, }, }) -} - -export const assertExternalDirectoryEffect = Effect.fn("Tool.assertExternalDirectory")(function* ( - ctx: Tool.Context, - target?: string, - options?: Options, -) { - yield* Effect.promise(() => assertExternalDirectory(ctx, target, options)) }) + +export async function assertExternalDirectory(ctx: Tool.Context, target?: string, options?: Options) { + return Effect.runPromise(assertExternalDirectoryEffect(ctx, target, options)) +} diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts index 973f14699..a3ff5aef7 100644 --- a/packages/opencode/src/tool/glob.ts +++ b/packages/opencode/src/tool/glob.ts @@ -9,7 +9,7 @@ import { Instance } from "../project/instance" import { assertExternalDirectoryEffect } from "./external-directory" import { AppFileSystem } from "../filesystem" -export const GlobTool = Tool.defineEffect( +export const GlobTool = Tool.define( "glob", Effect.gen(function* () { const rg = yield* Ripgrep.Service @@ -28,17 +28,15 @@ export const GlobTool = Tool.defineEffect( }), execute: (params: { pattern: string; path?: string }, ctx: Tool.Context) => Effect.gen(function* () { - yield* Effect.promise(() => - ctx.ask({ - permission: "glob", - patterns: [params.pattern], - always: ["*"], - metadata: { - pattern: params.pattern, - path: params.path, - }, - }), - ) + yield* ctx.ask({ + permission: "glob", + patterns: [params.pattern], + always: ["*"], + metadata: { + pattern: params.pattern, + path: params.path, + }, + }) let search = params.path ?? Instance.directory search = path.isAbsolute(search) ? search : path.resolve(Instance.directory, search) @@ -90,7 +88,7 @@ export const GlobTool = Tool.defineEffect( }, output: output.join("\n"), } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts index 8f53c2e21..b5ae6c350 100644 --- a/packages/opencode/src/tool/grep.ts +++ b/packages/opencode/src/tool/grep.ts @@ -14,7 +14,7 @@ import { assertExternalDirectoryEffect } from "./external-directory" const MAX_LINE_LENGTH = 2000 -export const GrepTool = Tool.defineEffect( +export const GrepTool = Tool.define( "grep", Effect.gen(function* () { const spawner = yield* ChildProcessSpawner @@ -32,18 +32,16 @@ export const GrepTool = Tool.defineEffect( throw new Error("pattern is required") } - yield* Effect.promise(() => - ctx.ask({ - permission: "grep", - patterns: [params.pattern], - always: ["*"], - metadata: { - pattern: params.pattern, - path: params.path, - include: params.include, - }, - }), - ) + yield* ctx.ask({ + permission: "grep", + patterns: [params.pattern], + always: ["*"], + metadata: { + pattern: params.pattern, + path: params.path, + include: params.include, + }, + }) let searchPath = params.path ?? Instance.directory searchPath = path.isAbsolute(searchPath) ? searchPath : path.resolve(Instance.directory, searchPath) @@ -171,7 +169,7 @@ export const GrepTool = Tool.defineEffect( }, output: outputLines.join("\n"), } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/invalid.ts b/packages/opencode/src/tool/invalid.ts index 728e9c89f..b9794ed5f 100644 --- a/packages/opencode/src/tool/invalid.ts +++ b/packages/opencode/src/tool/invalid.ts @@ -1,17 +1,20 @@ import z from "zod" +import { Effect } from "effect" import { Tool } from "./tool" -export const InvalidTool = Tool.define("invalid", { - description: "Do not use", - parameters: z.object({ - tool: z.string(), - error: z.string(), +export const InvalidTool = Tool.define( + "invalid", + Effect.succeed({ + description: "Do not use", + parameters: z.object({ + tool: z.string(), + error: z.string(), + }), + execute: (params: { tool: string; error: string }) => + Effect.succeed({ + title: "Invalid Tool", + output: `The arguments provided to the tool are invalid: ${params.error}`, + metadata: {}, + }), }), - async execute(params) { - return { - title: "Invalid Tool", - output: `The arguments provided to the tool are invalid: ${params.error}`, - metadata: {}, - } - }, -}) +) diff --git a/packages/opencode/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts index 2453b6e9c..600a5532a 100644 --- a/packages/opencode/src/tool/ls.ts +++ b/packages/opencode/src/tool/ls.ts @@ -37,7 +37,7 @@ export const IGNORE_PATTERNS = [ const LIMIT = 100 -export const ListTool = Tool.defineEffect( +export const ListTool = Tool.define( "list", Effect.gen(function* () { const rg = yield* Ripgrep.Service @@ -56,16 +56,14 @@ export const ListTool = Tool.defineEffect( const searchPath = path.resolve(Instance.directory, params.path || ".") yield* assertExternalDirectoryEffect(ctx, searchPath, { kind: "directory" }) - yield* Effect.promise(() => - ctx.ask({ - permission: "list", - patterns: [searchPath], - always: ["*"], - metadata: { - path: searchPath, - }, - }), - ) + yield* ctx.ask({ + permission: "list", + patterns: [searchPath], + always: ["*"], + metadata: { + path: searchPath, + }, + }) const ignoreGlobs = IGNORE_PATTERNS.map((p) => `!${p}*`).concat(params.ignore?.map((p) => `!${p}`) || []) const files = yield* rg.files({ cwd: searchPath, glob: ignoreGlobs }).pipe( @@ -130,7 +128,7 @@ export const ListTool = Tool.defineEffect( }, output, } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/lsp.ts b/packages/opencode/src/tool/lsp.ts index ac0b4c6fc..c5a5d6f81 100644 --- a/packages/opencode/src/tool/lsp.ts +++ b/packages/opencode/src/tool/lsp.ts @@ -21,7 +21,7 @@ const operations = [ "outgoingCalls", ] as const -export const LspTool = Tool.defineEffect( +export const LspTool = Tool.define( "lsp", Effect.gen(function* () { const lsp = yield* LSP.Service @@ -42,7 +42,7 @@ export const LspTool = Tool.defineEffect( Effect.gen(function* () { const file = path.isAbsolute(args.filePath) ? args.filePath : path.join(Instance.directory, args.filePath) yield* assertExternalDirectoryEffect(ctx, file) - yield* Effect.promise(() => ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} })) + yield* ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} }) const uri = pathToFileURL(file).href const position = { file, line: args.line - 1, character: args.character - 1 } @@ -85,7 +85,7 @@ export const LspTool = Tool.defineEffect( metadata: { result }, output: result.length === 0 ? `No results found for ${args.operation}` : JSON.stringify(result, null, 2), } - }).pipe(Effect.runPromise), + }), } }), ) diff --git a/packages/opencode/src/tool/multiedit.ts b/packages/opencode/src/tool/multiedit.ts index f84ddaf03..82d6988c2 100644 --- a/packages/opencode/src/tool/multiedit.ts +++ b/packages/opencode/src/tool/multiedit.ts @@ -6,7 +6,7 @@ import DESCRIPTION from "./multiedit.txt" import path from "path" import { Instance } from "../project/instance" -export const MultiEditTool = Tool.defineEffect( +export const MultiEditTool = Tool.define( "multiedit", Effect.gen(function* () { const editInfo = yield* EditTool @@ -37,16 +37,14 @@ export const MultiEditTool = Tool.defineEffect( Effect.gen(function* () { const results = [] for (const [, entry] of params.edits.entries()) { - const result = yield* Effect.promise(() => - edit.execute( - { - filePath: params.filePath, - oldString: entry.oldString, - newString: entry.newString, - replaceAll: entry.replaceAll, - }, - ctx, - ), + const result = yield* edit.execute( + { + filePath: params.filePath, + oldString: entry.oldString, + newString: entry.newString, + replaceAll: entry.replaceAll, + }, + ctx, ) results.push(result) } @@ -57,7 +55,7 @@ export const MultiEditTool = Tool.defineEffect( }, output: results.at(-1)!.output, } - }).pipe(Effect.orDie, Effect.runPromise), + }), } }), ) diff --git a/packages/opencode/src/tool/plan.ts b/packages/opencode/src/tool/plan.ts index aa9c69884..1613821fe 100644 --- a/packages/opencode/src/tool/plan.ts +++ b/packages/opencode/src/tool/plan.ts @@ -17,7 +17,7 @@ function getLastModel(sessionID: SessionID) { return undefined } -export const PlanExitTool = Tool.defineEffect( +export const PlanExitTool = Tool.define( "plan_exit", Effect.gen(function* () { const session = yield* Session.Service @@ -74,7 +74,7 @@ export const PlanExitTool = Tool.defineEffect( output: "User approved switching to build agent. Wait for further instructions.", metadata: {}, } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/question.ts b/packages/opencode/src/tool/question.ts index f7adbadcf..8cfa700a5 100644 --- a/packages/opencode/src/tool/question.ts +++ b/packages/opencode/src/tool/question.ts @@ -12,7 +12,7 @@ type Metadata = { answers: Question.Answer[] } -export const QuestionTool = Tool.defineEffect( +export const QuestionTool = Tool.define( "question", Effect.gen(function* () { const question = yield* Question.Service @@ -39,7 +39,7 @@ export const QuestionTool = Tool.defineEffect - ctx.ask({ - permission: "read", - patterns: [filepath], - always: ["*"], - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "read", + patterns: [filepath], + always: ["*"], + metadata: {}, + }) if (!stat) return yield* miss(filepath) @@ -218,9 +216,7 @@ export const ReadTool = Tool.defineEffect( return { description: DESCRIPTION, parameters, - async execute(params: z.infer, ctx) { - return Effect.runPromise(run(params, ctx).pipe(Effect.orDie)) - }, + execute: (params: z.infer, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index f6324b3d7..7ba99c0c9 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -44,6 +44,7 @@ import { LSP } from "../lsp" import { FileTime } from "../file/time" import { Instruction } from "../session/instruction" import { AppFileSystem } from "../filesystem" +import { Bus } from "../bus" import { Agent } from "../agent/agent" import { Skill } from "../skill" import { Permission } from "@/permission" @@ -89,10 +90,12 @@ export namespace ToolRegistry { | FileTime.Service | Instruction.Service | AppFileSystem.Service + | Bus.Service | HttpClient.HttpClient | ChildProcessSpawner | Ripgrep.Service | Format.Service + | Truncate.Service > = Layer.effect( Service, Effect.gen(function* () { @@ -100,7 +103,9 @@ export namespace ToolRegistry { const plugin = yield* Plugin.Service const agents = yield* Agent.Service const skill = yield* Skill.Service + const truncate = yield* Truncate.Service + const invalid = yield* InvalidTool const task = yield* TaskTool const read = yield* ReadTool const question = yield* QuestionTool @@ -127,23 +132,26 @@ export namespace ToolRegistry { id, parameters: z.object(def.args), description: def.description, - execute: async (args, toolCtx) => { - const pluginCtx: PluginToolContext = { - ...toolCtx, - directory: ctx.directory, - worktree: ctx.worktree, - } - const result = await def.execute(args as any, pluginCtx) - const out = await Truncate.output(result, {}, await Agent.get(toolCtx.agent)) - return { - title: "", - output: out.truncated ? out.content : result, - metadata: { - truncated: out.truncated, - outputPath: out.truncated ? out.outputPath : undefined, - }, - } - }, + execute: (args, toolCtx) => + Effect.gen(function* () { + const pluginCtx: PluginToolContext = { + ...toolCtx, + ask: (req) => Effect.runPromise(toolCtx.ask(req)), + directory: ctx.directory, + worktree: ctx.worktree, + } + const result = yield* Effect.promise(() => def.execute(args as any, pluginCtx)) + const agent = yield* Effect.promise(() => Agent.get(toolCtx.agent)) + const out = yield* truncate.output(result, {}, agent) + return { + title: "", + output: out.truncated ? out.content : result, + metadata: { + truncated: out.truncated, + outputPath: out.truncated ? out.outputPath : undefined, + }, + } + }), } } @@ -174,7 +182,7 @@ export namespace ToolRegistry { ["app", "cli", "desktop"].includes(Flag.OPENCODE_CLIENT) || Flag.OPENCODE_ENABLE_QUESTION_TOOL const tool = yield* Effect.all({ - invalid: Tool.init(InvalidTool), + invalid: Tool.init(invalid), bash: Tool.init(bash), read: Tool.init(read), glob: Tool.init(globtool), @@ -328,10 +336,12 @@ export namespace ToolRegistry { Layer.provide(FileTime.defaultLayer), Layer.provide(Instruction.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), + Layer.provide(Bus.layer), Layer.provide(FetchHttpClient.layer), Layer.provide(Format.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Ripgrep.defaultLayer), + Layer.provide(Truncate.defaultLayer), ), ) diff --git a/packages/opencode/src/tool/skill.ts b/packages/opencode/src/tool/skill.ts index f53f4e2bc..22eac69cf 100644 --- a/packages/opencode/src/tool/skill.ts +++ b/packages/opencode/src/tool/skill.ts @@ -11,7 +11,7 @@ const Parameters = z.object({ name: z.string().describe("The name of the skill from available_skills"), }) -export const SkillTool = Tool.defineEffect( +export const SkillTool = Tool.define( "skill", Effect.gen(function* () { const skill = yield* Skill.Service @@ -51,14 +51,12 @@ export const SkillTool = Tool.defineEffect( throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) } - yield* Effect.promise(() => - ctx.ask({ - permission: "skill", - patterns: [params.name], - always: [params.name], - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "skill", + patterns: [params.name], + always: [params.name], + metadata: {}, + }) const dir = path.dirname(info.location) const base = pathToFileURL(dir).href @@ -94,7 +92,7 @@ export const SkillTool = Tool.defineEffect( dir, }, } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } } }), diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 440691e46..3829aeae1 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -31,7 +31,7 @@ const parameters = z.object({ command: z.string().describe("The command that triggered this task").optional(), }) -export const TaskTool = Tool.defineEffect( +export const TaskTool = Tool.define( id, Effect.gen(function* () { const agent = yield* Agent.Service @@ -41,17 +41,15 @@ export const TaskTool = Tool.defineEffect( const cfg = yield* config.get() if (!ctx.extra?.bypassAgentCheck) { - yield* Effect.promise(() => - ctx.ask({ - permission: id, - patterns: [params.subagent_type], - always: ["*"], - metadata: { - description: params.description, - subagent_type: params.subagent_type, - }, - }), - ) + yield* ctx.ask({ + permission: id, + patterns: [params.subagent_type], + always: ["*"], + metadata: { + description: params.description, + subagent_type: params.subagent_type, + }, + }) } const next = yield* agent.get(params.subagent_type) @@ -178,9 +176,7 @@ export const TaskTool = Tool.defineEffect( return { description: DESCRIPTION, parameters, - async execute(params: z.infer, ctx) { - return Effect.runPromise(run(params, ctx)) - }, + execute: (params: z.infer, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/todo.ts b/packages/opencode/src/tool/todo.ts index 92318164c..253bcfa32 100644 --- a/packages/opencode/src/tool/todo.ts +++ b/packages/opencode/src/tool/todo.ts @@ -12,7 +12,7 @@ type Metadata = { todos: Todo.Info[] } -export const TodoWriteTool = Tool.defineEffect( +export const TodoWriteTool = Tool.define( "todowrite", Effect.gen(function* () { const todo = yield* Todo.Service @@ -20,29 +20,28 @@ export const TodoWriteTool = Tool.defineEffect, ctx: Tool.Context) { - await ctx.ask({ - permission: "todowrite", - patterns: ["*"], - always: ["*"], - metadata: {}, - }) + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + yield* ctx.ask({ + permission: "todowrite", + patterns: ["*"], + always: ["*"], + metadata: {}, + }) - await todo - .update({ + yield* todo.update({ sessionID: ctx.sessionID, todos: params.todos, }) - .pipe(Effect.runPromise) - return { - title: `${params.todos.filter((x) => x.status !== "completed").length} todos`, - output: JSON.stringify(params.todos, null, 2), - metadata: { - todos: params.todos, - }, - } - }, + return { + title: `${params.todos.filter((x) => x.status !== "completed").length} todos`, + output: JSON.stringify(params.todos, null, 2), + metadata: { + todos: params.todos, + }, + } + }), } satisfies Tool.DefWithoutID }), ) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index ae347341c..254cdb911 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -23,22 +23,21 @@ export namespace Tool { extra?: { [key: string]: any } messages: MessageV2.WithParts[] metadata(input: { title?: string; metadata?: M }): void - ask(input: Omit): Promise + ask(input: Omit): Effect.Effect + } + + export interface ExecuteResult { + title: string + metadata: M + output: string + attachments?: Omit[] } export interface Def { id: string description: string parameters: Parameters - execute( - args: z.infer, - ctx: Context, - ): Promise<{ - title: string - metadata: M - output: string - attachments?: Omit[] - }> + execute(args: z.infer, ctx: Context): Effect.Effect> formatValidationError?(error: z.ZodError): string } export type DefWithoutID = Omit< @@ -74,48 +73,41 @@ export namespace Tool { return async () => { const toolInfo = init instanceof Function ? await init() : { ...init } const execute = toolInfo.execute - toolInfo.execute = async (args, ctx) => { - try { - toolInfo.parameters.parse(args) - } catch (error) { - if (error instanceof z.ZodError && toolInfo.formatValidationError) { - throw new Error(toolInfo.formatValidationError(error), { cause: error }) + toolInfo.execute = (args, ctx) => + Effect.gen(function* () { + yield* Effect.try({ + try: () => toolInfo.parameters.parse(args), + catch: (error) => { + if (error instanceof z.ZodError && toolInfo.formatValidationError) { + return new Error(toolInfo.formatValidationError(error), { cause: error }) + } + return new Error( + `The ${id} tool was called with invalid arguments: ${error}.\nPlease rewrite the input so it satisfies the expected schema.`, + { cause: error }, + ) + }, + }) + const result = yield* execute(args, ctx) + if (result.metadata.truncated !== undefined) { + return result } - throw new Error( - `The ${id} tool was called with invalid arguments: ${error}.\nPlease rewrite the input so it satisfies the expected schema.`, - { cause: error }, - ) - } - const result = await execute(args, ctx) - if (result.metadata.truncated !== undefined) { - return result - } - const truncated = await Truncate.output(result.output, {}, await Agent.get(ctx.agent)) - return { - ...result, - output: truncated.content, - metadata: { - ...result.metadata, - truncated: truncated.truncated, - ...(truncated.truncated && { outputPath: truncated.outputPath }), - }, - } - } + const agent = yield* Effect.promise(() => Agent.get(ctx.agent)) + const truncated = yield* Effect.promise(() => Truncate.output(result.output, {}, agent)) + return { + ...result, + output: truncated.content, + metadata: { + ...result.metadata, + truncated: truncated.truncated, + ...(truncated.truncated && { outputPath: truncated.outputPath }), + }, + } + }).pipe(Effect.orDie) return toolInfo } } - export function define( - id: ID, - init: (() => Promise>) | DefWithoutID, - ): Info & { id: ID } { - return { - id, - init: wrap(id, init), - } - } - - export function defineEffect( + export function define( id: ID, init: Effect.Effect<(() => Promise>) | DefWithoutID, never, R>, ): Effect.Effect, never, R> & { id: ID } { diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts index 1c89d950a..9339038b0 100644 --- a/packages/opencode/src/tool/webfetch.ts +++ b/packages/opencode/src/tool/webfetch.ts @@ -18,7 +18,7 @@ const parameters = z.object({ timeout: z.number().describe("Optional timeout in seconds (max 120)").optional(), }) -export const WebFetchTool = Tool.defineEffect( +export const WebFetchTool = Tool.define( "webfetch", Effect.gen(function* () { const http = yield* HttpClient.HttpClient @@ -33,18 +33,16 @@ export const WebFetchTool = Tool.defineEffect( throw new Error("URL must start with http:// or https://") } - yield* Effect.promise(() => - ctx.ask({ - permission: "webfetch", - patterns: [params.url], - always: ["*"], - metadata: { - url: params.url, - format: params.format, - timeout: params.timeout, - }, - }), - ) + yield* ctx.ask({ + permission: "webfetch", + patterns: [params.url], + always: ["*"], + metadata: { + url: params.url, + format: params.format, + timeout: params.timeout, + }, + }) const timeout = Math.min((params.timeout ?? DEFAULT_TIMEOUT / 1000) * 1000, MAX_TIMEOUT) @@ -153,7 +151,7 @@ export const WebFetchTool = Tool.defineEffect( default: return { output: content, title, metadata: {} } } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/websearch.ts b/packages/opencode/src/tool/websearch.ts index be7b9b399..968e1e34b 100644 --- a/packages/opencode/src/tool/websearch.ts +++ b/packages/opencode/src/tool/websearch.ts @@ -24,7 +24,7 @@ const Parameters = z.object({ .describe("Maximum characters for context string optimized for LLMs (default: 10000)"), }) -export const WebSearchTool = Tool.defineEffect( +export const WebSearchTool = Tool.define( "websearch", Effect.gen(function* () { const http = yield* HttpClient.HttpClient @@ -36,20 +36,18 @@ export const WebSearchTool = Tool.defineEffect( parameters: Parameters, execute: (params: z.infer, ctx: Tool.Context) => Effect.gen(function* () { - yield* Effect.promise(() => - ctx.ask({ - permission: "websearch", - patterns: [params.query], - always: ["*"], - metadata: { - query: params.query, - numResults: params.numResults, - livecrawl: params.livecrawl, - type: params.type, - contextMaxCharacters: params.contextMaxCharacters, - }, - }), - ) + yield* ctx.ask({ + permission: "websearch", + patterns: [params.query], + always: ["*"], + metadata: { + query: params.query, + numResults: params.numResults, + livecrawl: params.livecrawl, + type: params.type, + contextMaxCharacters: params.contextMaxCharacters, + }, + }) const result = yield* McpExa.call( http, @@ -70,7 +68,7 @@ export const WebSearchTool = Tool.defineEffect( title: `Web search: ${params.query}`, metadata: {}, } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 52e36ffd9..7a9d82cf8 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -17,12 +17,14 @@ import { assertExternalDirectoryEffect } from "./external-directory" const MAX_PROJECT_DIAGNOSTICS_FILES = 5 -export const WriteTool = Tool.defineEffect( +export const WriteTool = Tool.define( "write", Effect.gen(function* () { const lsp = yield* LSP.Service const fs = yield* AppFileSystem.Service const filetime = yield* FileTime.Service + const bus = yield* Bus.Service + const format = yield* Format.Service return { description: DESCRIPTION, @@ -42,27 +44,23 @@ export const WriteTool = Tool.defineEffect( if (exists) yield* filetime.assert(ctx.sessionID, filepath) const diff = trimDiff(createTwoFilesPatch(filepath, filepath, contentOld, params.content)) - yield* Effect.promise(() => - ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filepath)], - always: ["*"], - metadata: { - filepath, - diff, - }, - }), - ) + yield* ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filepath)], + always: ["*"], + metadata: { + filepath, + diff, + }, + }) yield* fs.writeWithDirs(filepath, params.content) - yield* Effect.promise(() => Format.file(filepath)) - Bus.publish(File.Event.Edited, { file: filepath }) - yield* Effect.promise(() => - Bus.publish(FileWatcher.Event.Updated, { - file: filepath, - event: exists ? "change" : "add", - }), - ) + yield* format.file(filepath) + yield* bus.publish(File.Event.Edited, { file: filepath }) + yield* bus.publish(FileWatcher.Event.Updated, { + file: filepath, + event: exists ? "change" : "add", + }) yield* filetime.read(ctx.sessionID, filepath) let output = "Wrote file successfully." @@ -92,7 +90,7 @@ export const WriteTool = Tool.defineEffect( }, output, } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index bd7548d2a..ba33cb086 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -144,7 +144,7 @@ const filetime = Layer.succeed( read: () => Effect.void, get: () => Effect.succeed(undefined), assert: () => Effect.void, - withLock: (_filepath, fn) => Effect.promise(fn), + withLock: (_filepath, fn) => fn(), }), ) @@ -735,19 +735,12 @@ it.live( const registry = yield* ToolRegistry.Service const { task } = yield* registry.named() const original = task.execute - task.execute = async (_args, ctx) => { - ready.resolve() - ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) - await new Promise(() => {}) - return { - title: "", - metadata: { - sessionId: SessionID.make("task"), - model: ref, - }, - output: "", - } - } + task.execute = (_args, ctx) => + Effect.callback((resume) => { + ready.resolve() + ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) + return Effect.sync(() => aborted.resolve()) + }) yield* Effect.addFinalizer(() => Effect.sync(() => void (task.execute = original))) const { prompt, chat } = yield* boot() @@ -1393,11 +1386,10 @@ function hangUntilAborted(tool: { execute: (...args: any[]) => any }) { const ready = defer() const aborted = defer() const original = tool.execute - tool.execute = async (_args: any, ctx: any) => { + tool.execute = (_args: any, ctx: any) => { ready.resolve() ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) - await new Promise(() => {}) - return { title: "", metadata: {}, output: "" } + return Effect.callback(() => {}) } const restore = Effect.addFinalizer(() => Effect.sync(() => void (tool.execute = original))) return { ready, aborted, restore } diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 4901c6f4f..1c242128e 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -107,7 +107,7 @@ const filetime = Layer.succeed( read: () => Effect.void, get: () => Effect.succeed(undefined), assert: () => Effect.void, - withLock: (_filepath, fn) => Effect.promise(fn), + withLock: (_filepath, fn) => fn(), }), ) diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index d54d34b83..8ce1c5eca 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -7,10 +7,11 @@ import { Instance } from "../../src/project/instance" import { LSP } from "../../src/lsp" import { AppFileSystem } from "../../src/filesystem" import { Format } from "../../src/format" +import { Bus } from "../../src/bus" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" -const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer)) +const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer)) const baseCtx = { sessionID: SessionID.make("ses_test"), @@ -42,22 +43,21 @@ type AskInput = { } type ToolCtx = typeof baseCtx & { - ask: (input: AskInput) => Promise + ask: (input: AskInput) => Effect.Effect } const execute = async (params: { patchText: string }, ctx: ToolCtx) => { const info = await runtime.runPromise(ApplyPatchTool) const tool = await info.init() - return tool.execute(params, ctx) + return Effect.runPromise(tool.execute(params, ctx)) } const makeCtx = () => { const calls: AskInput[] = [] const ctx: ToolCtx = { ...baseCtx, - ask: async (input) => { - calls.push(input) - }, + ask: (input) => + Effect.sync(() => { calls.push(input) }), } return { ctx, calls } diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index 15518fa57..54e615408 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -30,7 +30,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } Shell.acceptable.reset() @@ -109,10 +109,11 @@ const each = (name: string, fn: (item: { label: string; shell: string }) => Prom const capture = (requests: Array>, stop?: Error) => ({ ...ctx, - ask: async (req: Omit) => { - requests.push(req) - if (stop) throw stop - }, + ask: (req: Omit) => + Effect.sync(() => { + requests.push(req) + if (stop) throw stop + }), }) const mustTruncate = (result: { @@ -131,13 +132,13 @@ describe("tool.bash", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: "echo test", description: "Echo test message", }, ctx, - ) + )) expect(result.metadata.exit).toBe(0) expect(result.metadata.output).toContain("test") }, @@ -153,13 +154,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "echo hello", description: "Echo hello", }, capture(requests), - ) + )) expect(requests.length).toBe(1) expect(requests[0].permission).toBe("bash") expect(requests[0].patterns).toContain("echo hello") @@ -174,13 +175,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "echo foo && echo bar", description: "Echo twice", }, capture(requests), - ) + )) expect(requests.length).toBe(1) expect(requests[0].permission).toBe("bash") expect(requests[0].patterns).toContain("echo foo") @@ -198,13 +199,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "Write-Host foo; if ($?) { Write-Host bar }", description: "Check PowerShell conditional", }, capture(requests), - ) + )) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() expect(bashReq!.patterns).toContain("Write-Host foo") @@ -226,13 +227,13 @@ describe("tool.bash permissions", () => { const file = process.platform === "win32" ? `${process.env.WINDIR!.replaceAll("\\", "/")}/*` : "/etc/*" const want = process.platform === "win32" ? glob(path.join(process.env.WINDIR!, "*")) : "/etc/*" await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: `cat ${file}`, description: "Read wildcard path", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -257,13 +258,13 @@ describe("tool.bash permissions", () => { const bash = await initBash() const file = path.join(outerTmp.path, "outside.txt").replaceAll("\\", "/") const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: `echo $(cat "${file}")`, description: "Read nested bash file", }, capture(requests), - ) + )) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") expect(extDirReq).toBeDefined() @@ -289,13 +290,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: `Copy-Item -PassThru "${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini" ./out`, description: "Copy Windows ini", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -316,13 +317,13 @@ describe("tool.bash permissions", () => { const bash = await initBash() const requests: Array> = [] const file = `${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini` - await bash.execute( + await Effect.runPromise(bash.execute( { command: `Write-Output $(Get-Content ${file})`, description: "Read nested PowerShell file", }, capture(requests), - ) + )) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") expect(extDirReq).toBeDefined() @@ -347,13 +348,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: 'Get-Content "C:../outside.txt"', description: "Read drive-relative file", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -375,13 +376,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: 'Get-Content "$HOME/.ssh/config"', description: "Read home config", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -404,13 +405,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: 'Get-Content "$PWD/../outside.txt"', description: "Read pwd-relative file", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -432,13 +433,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: 'Get-Content "$PSHOME/outside.txt"', description: "Read pshome file", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -465,13 +466,13 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const root = path.parse(process.env.WINDIR!).root.replace(/[\\/]+$/, "") await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: `Get-Content -Path "${root}$env:${key}\\Windows\\win.ini"`, description: "Read Windows ini with missing env", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -495,13 +496,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "Get-Content $env:WINDIR/win.ini", description: "Read Windows ini from env", }, capture(requests), - ) + )) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() expect(extDirReq!.patterns).toContain( @@ -524,13 +525,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: `Get-Content -Path FileSystem::${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini`, description: "Read Windows ini from FileSystem provider", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -554,13 +555,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "Get-Content ${env:WINDIR}/win.ini", description: "Read Windows ini from braced env", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -582,13 +583,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "Set-Location C:/Windows", description: "Change location", }, capture(requests), - ) + )) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") expect(extDirReq).toBeDefined() @@ -611,13 +612,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "Write-Output ('a' * 3)", description: "Write repeated text", }, capture(requests), - ) + )) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() expect(bashReq!.patterns).not.toContain("a * 3") @@ -638,13 +639,13 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "cd ../", description: "Change to parent directory", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -661,14 +662,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "echo ok", workdir: os.tmpdir(), description: "Echo from temp dir", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -691,14 +692,14 @@ describe("tool.bash permissions", () => { for (const dir of forms(outerTmp.path)) { const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "echo ok", workdir: dir, description: "Echo from external dir", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -724,14 +725,14 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "echo ok", workdir: "/tmp", description: "Echo from Git Bash tmp", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]).toMatchObject({ permission: "external_directory", @@ -754,13 +755,13 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "cat /tmp/opencode-does-not-exist", description: "Read Git Bash tmp file", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) expect(requests[0]).toMatchObject({ permission: "external_directory", @@ -789,13 +790,13 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const filepath = path.join(outerTmp.path, "outside.txt") await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: `cat ${filepath}`, description: "Read external file", }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") const expected = glob(path.join(outerTmp.path, "*")) @@ -817,13 +818,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: `rm -rf ${path.join(tmp.path, "nested")}`, description: "Remove nested dir", }, capture(requests), - ) + )) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeUndefined() }, @@ -837,13 +838,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "git log --oneline -5", description: "Git log", }, capture(requests), - ) + )) expect(requests.length).toBe(1) expect(requests[0].always.length).toBeGreaterThan(0) expect(requests[0].always.some((item) => item.endsWith("*"))).toBe(true) @@ -858,13 +859,13 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( + await Effect.runPromise(bash.execute( { command: "cd .", description: "Stay in current directory", }, capture(requests), - ) + )) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeUndefined() }, @@ -880,10 +881,10 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( + Effect.runPromise(bash.execute( { command: "echo test > output.txt", description: "Redirect test output" }, capture(requests, err), - ), + )), ).rejects.toThrow(err.message) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() @@ -899,7 +900,7 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute({ command: "ls -la", description: "List" }, capture(requests)) + await Effect.runPromise(bash.execute({ command: "ls -la", description: "List" }, capture(requests))) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() expect(bashReq!.always[0]).toBe("ls *") @@ -916,7 +917,7 @@ describe("tool.bash abort", () => { const bash = await initBash() const controller = new AbortController() const collected: string[] = [] - const result = bash.execute( + const res = await Effect.runPromise(bash.execute( { command: `echo before && sleep 30`, description: "Long running command", @@ -932,8 +933,7 @@ describe("tool.bash abort", () => { } }, }, - ) - const res = await result + )) expect(res.output).toContain("before") expect(res.output).toContain("User aborted the command") expect(collected.length).toBeGreaterThan(0) @@ -946,14 +946,14 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: `echo started && sleep 60`, description: "Timeout test", timeout: 500, }, ctx, - ) + )) expect(result.output).toContain("started") expect(result.output).toContain("bash tool terminated command after exceeding timeout") }, @@ -965,13 +965,13 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: `echo stdout_msg && echo stderr_msg >&2`, description: "Stderr test", }, ctx, - ) + )) expect(result.output).toContain("stdout_msg") expect(result.output).toContain("stderr_msg") expect(result.metadata.exit).toBe(0) @@ -984,13 +984,13 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: `exit 42`, description: "Non-zero exit", }, ctx, - ) + )) expect(result.metadata.exit).toBe(42) }, }) @@ -1002,7 +1002,7 @@ describe("tool.bash abort", () => { fn: async () => { const bash = await initBash() const updates: string[] = [] - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: `echo first && sleep 0.1 && echo second`, description: "Streaming test", @@ -1014,7 +1014,7 @@ describe("tool.bash abort", () => { if (output) updates.push(output) }, }, - ) + )) expect(result.output).toContain("first") expect(result.output).toContain("second") expect(updates.length).toBeGreaterThan(1) @@ -1030,13 +1030,13 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const lineCount = Truncate.MAX_LINES + 500 - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: fill("lines", lineCount), description: "Generate lines exceeding limit", }, ctx, - ) + )) mustTruncate(result) expect(result.output).toContain("truncated") expect(result.output).toContain("The tool call succeeded but the output was truncated") @@ -1050,13 +1050,13 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const byteCount = Truncate.MAX_BYTES + 10000 - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: fill("bytes", byteCount), description: "Generate bytes exceeding limit", }, ctx, - ) + )) mustTruncate(result) expect(result.output).toContain("truncated") expect(result.output).toContain("The tool call succeeded but the output was truncated") @@ -1069,13 +1069,13 @@ describe("tool.bash truncation", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: "echo hello", description: "Echo hello", }, ctx, - ) + )) expect((result.metadata as { truncated?: boolean }).truncated).toBe(false) expect(result.output).toContain("hello") }, @@ -1088,13 +1088,13 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const lineCount = Truncate.MAX_LINES + 100 - const result = await bash.execute( + const result = await Effect.runPromise(bash.execute( { command: fill("lines", lineCount), description: "Generate lines for file check", }, ctx, - ) + )) mustTruncate(result) const filepath = (result.metadata as { outputPath?: string }).outputPath diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index feb0f592b..21dc57e36 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -7,6 +7,10 @@ import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" import { FileTime } from "../../src/file/time" import { LSP } from "../../src/lsp" +import { AppFileSystem } from "../../src/filesystem" +import { Format } from "../../src/format" +import { Bus } from "../../src/bus" +import { BusEvent } from "../../src/bus/bus-event" import { SessionID, MessageID } from "../../src/session/schema" const ctx = { @@ -17,7 +21,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } afterEach(async () => { @@ -29,7 +33,9 @@ async function touch(file: string, time: number) { await fs.utimes(file, date, date) } -const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer)) +const runtime = ManagedRuntime.make( + Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), +) afterAll(async () => { await runtime.dispose() @@ -43,6 +49,12 @@ const resolve = () => }), ) +const readFileTime = (sessionID: SessionID, filepath: string) => + runtime.runPromise(FileTime.Service.use((ft) => ft.read(sessionID, filepath))) + +const subscribeBus = (def: D, callback: () => unknown) => + runtime.runPromise(Bus.Service.use((bus) => bus.subscribeCallback(def, callback))) + describe("tool.edit", () => { describe("creating new files", () => { test("creates new file when oldString is empty", async () => { @@ -53,14 +65,14 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { const edit = await resolve() - const result = await edit.execute( + const result = await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "", newString: "new content", }, ctx, - ) + )) expect(result.metadata.diff).toContain("new content") @@ -78,14 +90,14 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { const edit = await resolve() - await edit.execute( + await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "", newString: "nested file", }, ctx, - ) + )) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("nested file") @@ -100,22 +112,20 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const { Bus } = await import("../../src/bus") - const { File } = await import("../../src/file") const { FileWatcher } = await import("../../src/file/watcher") const events: string[] = [] - const unsubUpdated = Bus.subscribe(FileWatcher.Event.Updated, () => events.push("updated")) + const unsubUpdated = await subscribeBus(FileWatcher.Event.Updated, () => events.push("updated")) const edit = await resolve() - await edit.execute( + await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "", newString: "content", }, ctx, - ) + )) expect(events).toContain("updated") unsubUpdated() @@ -133,17 +143,17 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - const result = await edit.execute( + const result = await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "old content", newString: "new content", }, ctx, - ) + )) expect(result.output).toContain("Edit applied successfully") @@ -160,18 +170,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: filepath, oldString: "old", newString: "new", }, ctx, - ), + )), ).rejects.toThrow("not found") }, }) @@ -187,14 +197,14 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: filepath, oldString: "same", newString: "same", }, ctx, - ), + )), ).rejects.toThrow("identical") }, }) @@ -208,18 +218,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: filepath, oldString: "not in file", newString: "replacement", }, ctx, - ), + )), ).rejects.toThrow() }, }) @@ -235,14 +245,14 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: filepath, oldString: "content", newString: "modified", }, ctx, - ), + )), ).rejects.toThrow("You must read file") }, }) @@ -258,7 +268,7 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { // Read first - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) // Simulate external modification await fs.writeFile(filepath, "modified externally", "utf-8") @@ -267,14 +277,14 @@ describe("tool.edit", () => { // Try to edit with the new content const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: filepath, oldString: "modified externally", newString: "edited", }, ctx, - ), + )), ).rejects.toThrow("modified since it was last read") }, }) @@ -288,10 +298,10 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await edit.execute( + await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "foo", @@ -299,7 +309,7 @@ describe("tool.edit", () => { replaceAll: true, }, ctx, - ) + )) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("qux bar qux baz qux") @@ -315,23 +325,22 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) - const { Bus } = await import("../../src/bus") const { FileWatcher } = await import("../../src/file/watcher") const events: string[] = [] - const unsubUpdated = Bus.subscribe(FileWatcher.Event.Updated, () => events.push("updated")) + const unsubUpdated = await subscribeBus(FileWatcher.Event.Updated, () => events.push("updated")) const edit = await resolve() - await edit.execute( + await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "original", newString: "modified", }, ctx, - ) + )) expect(events).toContain("updated") unsubUpdated() @@ -349,17 +358,17 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await edit.execute( + await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "line2", newString: "new line 2\nextra line", }, ctx, - ) + )) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("line1\nnew line 2\nextra line\nline3") @@ -375,17 +384,17 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await edit.execute( + await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "old", newString: "new", }, ctx, - ) + )) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("line1\r\nnew\r\nline3") @@ -403,14 +412,14 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: filepath, oldString: "", newString: "", }, ctx, - ), + )), ).rejects.toThrow("identical") }, }) @@ -424,18 +433,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, dirpath) + await readFileTime(ctx.sessionID, dirpath) const edit = await resolve() await expect( - edit.execute( + Effect.runPromise(edit.execute( { filePath: dirpath, oldString: "old", newString: "new", }, ctx, - ), + )), ).rejects.toThrow("directory") }, }) @@ -449,17 +458,17 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - const result = await edit.execute( + const result = await Effect.runPromise(edit.execute( { filePath: filepath, oldString: "line2", newString: "new line a\nnew line b", }, ctx, - ) + )) expect(result.metadata.filediff).toBeDefined() expect(result.metadata.filediff.file).toBe(filepath) @@ -520,8 +529,8 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() const filePath = path.join(tmp.path, "test.txt") - await FileTime.read(ctx.sessionID, filePath) - await edit.execute( + await readFileTime(ctx.sessionID, filePath) + await Effect.runPromise(edit.execute( { filePath, oldString: input.oldString, @@ -529,7 +538,7 @@ describe("tool.edit", () => { replaceAll: input.replaceAll, }, ctx, - ) + )) return await Bun.file(filePath).text() }, }) @@ -661,31 +670,31 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() // Two concurrent edits - const promise1 = edit.execute( + const promise1 = Effect.runPromise(edit.execute( { filePath: filepath, oldString: "0", newString: "1", }, ctx, - ) + )) // Need to read again since FileTime tracks per-session - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) - const promise2 = edit.execute( + const promise2 = Effect.runPromise(edit.execute( { filePath: filepath, oldString: "0", newString: "2", }, ctx, - ) + )) // Both should complete without error (though one might fail due to content mismatch) const results = await Promise.allSettled([promise1, promise2]) diff --git a/packages/opencode/test/tool/external-directory.test.ts b/packages/opencode/test/tool/external-directory.test.ts index cf95eaf4b..dd739b5f6 100644 --- a/packages/opencode/test/tool/external-directory.test.ts +++ b/packages/opencode/test/tool/external-directory.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from "bun:test" import path from "path" +import { Effect } from "effect" import type { Tool } from "../../src/tool/tool" import { Instance } from "../../src/project/instance" import { assertExternalDirectory } from "../../src/tool/external-directory" @@ -21,15 +22,18 @@ const baseCtx: Omit = { const glob = (p: string) => process.platform === "win32" ? Filesystem.normalizePathPattern(p) : p.replaceAll("\\", "/") +function makeCtx() { + const requests: Array> = [] + const ctx: Tool.Context = { + ...baseCtx, + ask: (req) => Effect.sync(() => { requests.push(req) }), + } + return { requests, ctx } +} + describe("tool.assertExternalDirectory", () => { test("no-ops for empty target", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await Instance.provide({ directory: "/tmp", @@ -42,13 +46,7 @@ describe("tool.assertExternalDirectory", () => { }) test("no-ops for paths inside Instance.directory", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await Instance.provide({ directory: "/tmp/project", @@ -61,13 +59,7 @@ describe("tool.assertExternalDirectory", () => { }) test("asks with a single canonical glob", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() const directory = "/tmp/project" const target = "/tmp/outside/file.txt" @@ -87,13 +79,7 @@ describe("tool.assertExternalDirectory", () => { }) test("uses target directory when kind=directory", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() const directory = "/tmp/project" const target = "/tmp/outside" @@ -113,13 +99,7 @@ describe("tool.assertExternalDirectory", () => { }) test("skips prompting when bypass=true", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await Instance.provide({ directory: "/tmp/project", @@ -133,13 +113,7 @@ describe("tool.assertExternalDirectory", () => { if (process.platform === "win32") { test("normalizes Windows path variants to one glob", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await using outerTmp = await tmpdir({ init: async (dir) => { @@ -169,13 +143,7 @@ describe("tool.assertExternalDirectory", () => { }) test("uses drive root glob for root files", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await using tmp = await tmpdir({ git: true }) const root = path.parse(tmp.path).root diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index a0cfb61c4..c35c5c08f 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -21,7 +21,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } const projectRoot = path.join(__dirname, "../..") @@ -32,14 +32,14 @@ describe("tool.grep", () => { directory: projectRoot, fn: async () => { const grep = await initGrep() - const result = await grep.execute( + const result = await Effect.runPromise(grep.execute( { pattern: "export", path: path.join(projectRoot, "src/tool"), include: "*.ts", }, ctx, - ) + )) expect(result.metadata.matches).toBeGreaterThan(0) expect(result.output).toContain("Found") }, @@ -56,13 +56,13 @@ describe("tool.grep", () => { directory: tmp.path, fn: async () => { const grep = await initGrep() - const result = await grep.execute( + const result = await Effect.runPromise(grep.execute( { pattern: "xyznonexistentpatternxyz123", path: tmp.path, }, ctx, - ) + )) expect(result.metadata.matches).toBe(0) expect(result.output).toBe("No files found") }, @@ -81,13 +81,13 @@ describe("tool.grep", () => { directory: tmp.path, fn: async () => { const grep = await initGrep() - const result = await grep.execute( + const result = await Effect.runPromise(grep.execute( { pattern: "line", path: tmp.path, }, ctx, - ) + )) expect(result.metadata.matches).toBeGreaterThan(0) }, }) diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index f1d9492ca..e02c57dcd 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -16,7 +16,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } const it = testEffect(Layer.mergeAll(Question.defaultLayer, CrossSpawnSpawner.defaultLayer)) @@ -49,7 +49,7 @@ describe("tool.question", () => { }, ] - const fiber = yield* Effect.promise(() => tool.execute({ questions }, ctx)).pipe(Effect.forkScoped) + const fiber = yield* tool.execute({ questions }, ctx).pipe(Effect.forkScoped) const item = yield* pending(question) yield* question.reply({ requestID: item.id, answers: [["Red"]] }) @@ -73,7 +73,7 @@ describe("tool.question", () => { }, ] - const fiber = yield* Effect.promise(() => tool.execute({ questions }, ctx)).pipe(Effect.forkScoped) + const fiber = yield* tool.execute({ questions }, ctx).pipe(Effect.forkScoped) const item = yield* pending(question) yield* question.reply({ requestID: item.id, answers: [["Dog"]] }) diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index 12345266b..888cc4225 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -30,7 +30,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } const it = testEffect( @@ -54,7 +54,7 @@ const run = Effect.fn("ReadToolTest.run")(function* ( next: Tool.Context = ctx, ) { const tool = yield* init() - return yield* Effect.promise(() => tool.execute(args, next)) + return yield* tool.execute(args, next) }) const exec = Effect.fn("ReadToolTest.exec")(function* ( @@ -95,9 +95,8 @@ const asks = () => { items, next: { ...ctx, - ask: async (req: Omit) => { - items.push(req) - }, + ask: (req: Omit) => + Effect.sync(() => { items.push(req) }), }, } } @@ -226,17 +225,18 @@ describe("tool.read env file permissions", () => { let asked = false const next = { ...ctx, - ask: async (req: Omit) => { - for (const pattern of req.patterns) { - const rule = Permission.evaluate(req.permission, pattern, info.permission) - if (rule.action === "ask" && req.permission === "read") { - asked = true + ask: (req: Omit) => + Effect.sync(() => { + for (const pattern of req.patterns) { + const rule = Permission.evaluate(req.permission, pattern, info.permission) + if (rule.action === "ask" && req.permission === "read") { + asked = true + } + if (rule.action === "deny") { + throw new Permission.DeniedError({ ruleset: info.permission }) + } } - if (rule.action === "deny") { - throw new Permission.DeniedError({ ruleset: info.permission }) - } - } - }, + }), } yield* run({ filePath: path.join(dir, filename) }, next) diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index 1c97ee4af..bfde5835f 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -156,12 +156,11 @@ Use this skill. const requests: Array> = [] const ctx: Tool.Context = { ...baseCtx, - ask: async (req) => { - requests.push(req) - }, + ask: (req) => + Effect.sync(() => { requests.push(req) }), } - const result = await tool.execute({ name: "tool-skill" }, ctx) + const result = await runtime.runPromise(tool.execute({ name: "tool-skill" }, ctx)) const dir = path.join(tmp.path, ".opencode", "skill", "tool-skill") const file = path.resolve(dir, "scripts", "demo.txt") diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index c019052a5..f7288ad61 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -194,8 +194,7 @@ describe("tool.task", () => { let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ text: "resumed", onPrompt: (input) => (seen = input) }) - const result = yield* Effect.promise(() => - def.execute( + const result = yield* def.execute( { description: "inspect bug", prompt: "look into the cache key path", @@ -210,10 +209,9 @@ describe("tool.task", () => { extra: { promptOps }, messages: [], metadata() {}, - ask: async () => {}, + ask: () => Effect.void, }, - ), - ) + ) const kids = yield* sessions.children(chat.id) expect(kids).toHaveLength(1) @@ -235,8 +233,7 @@ describe("tool.task", () => { const promptOps = stubOps() const exec = (extra?: Record) => - Effect.promise(() => - def.execute( + def.execute( { description: "inspect bug", prompt: "look into the cache key path", @@ -250,12 +247,10 @@ describe("tool.task", () => { extra: { promptOps, ...extra }, messages: [], metadata() {}, - ask: async (input) => { - calls.push(input) - }, + ask: (input) => + Effect.sync(() => { calls.push(input) }), }, - ), - ) + ) yield* exec() yield* exec({ bypassAgentCheck: true }) @@ -284,8 +279,7 @@ describe("tool.task", () => { let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ text: "created", onPrompt: (input) => (seen = input) }) - const result = yield* Effect.promise(() => - def.execute( + const result = yield* def.execute( { description: "inspect bug", prompt: "look into the cache key path", @@ -300,10 +294,9 @@ describe("tool.task", () => { extra: { promptOps }, messages: [], metadata() {}, - ask: async () => {}, + ask: () => Effect.void, }, - ), - ) + ) const kids = yield* sessions.children(chat.id) expect(kids).toHaveLength(1) @@ -326,8 +319,7 @@ describe("tool.task", () => { let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ onPrompt: (input) => (seen = input) }) - const result = yield* Effect.promise(() => - def.execute( + const result = yield* def.execute( { description: "inspect bug", prompt: "look into the cache key path", @@ -341,10 +333,9 @@ describe("tool.task", () => { extra: { promptOps }, messages: [], metadata() {}, - ask: async () => {}, + ask: () => Effect.void, }, - ), - ) + ) const child = yield* sessions.get(result.metadata.sessionId) expect(child.parentID).toBe(chat.id) diff --git a/packages/opencode/test/tool/tool-define.test.ts b/packages/opencode/test/tool/tool-define.test.ts index 2ea6d56a5..4b44e17b0 100644 --- a/packages/opencode/test/tool/tool-define.test.ts +++ b/packages/opencode/test/tool/tool-define.test.ts @@ -1,4 +1,5 @@ import { describe, test, expect } from "bun:test" +import { Effect } from "effect" import z from "zod" import { Tool } from "../../src/tool/tool" @@ -8,9 +9,9 @@ function makeTool(id: string, executeFn?: () => void) { return { description: "test tool", parameters: params, - async execute() { + execute() { executeFn?.() - return { title: "test", output: "ok", metadata: {} } + return Effect.succeed({ title: "test", output: "ok", metadata: {} }) }, } } @@ -20,29 +21,31 @@ describe("Tool.define", () => { const original = makeTool("test") const originalExecute = original.execute - const tool = Tool.define("test-tool", original) + const info = await Effect.runPromise(Tool.define("test-tool", Effect.succeed(original))) - await tool.init() - await tool.init() - await tool.init() + await info.init() + await info.init() + await info.init() expect(original.execute).toBe(originalExecute) }) test("function-defined tool returns fresh objects and is unaffected", async () => { - const tool = Tool.define("test-fn-tool", () => Promise.resolve(makeTool("test"))) + const info = await Effect.runPromise( + Tool.define("test-fn-tool", Effect.succeed(() => Promise.resolve(makeTool("test")))), + ) - const first = await tool.init() - const second = await tool.init() + const first = await info.init() + const second = await info.init() expect(first).not.toBe(second) }) test("object-defined tool returns distinct objects per init() call", async () => { - const tool = Tool.define("test-copy", makeTool("test")) + const info = await Effect.runPromise(Tool.define("test-copy", Effect.succeed(makeTool("test")))) - const first = await tool.init() - const second = await tool.init() + const first = await info.init() + const second = await info.init() expect(first).not.toBe(second) }) diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index a26be24ae..8e9f96808 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -16,7 +16,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } async function withFetch(fetch: (req: Request) => Response | Promise, fn: (url: URL) => Promise) { @@ -42,10 +42,10 @@ describe("tool.webfetch", () => { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await webfetch.execute( + const result = await Effect.runPromise(webfetch.execute( { url: new URL("/image.png", url).toString(), format: "markdown" }, ctx, - ) + )) expect(result.output).toBe("Image fetched successfully") expect(result.attachments).toBeDefined() expect(result.attachments?.length).toBe(1) @@ -74,7 +74,7 @@ describe("tool.webfetch", () => { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx) + const result = await Effect.runPromise(webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx)) expect(result.output).toContain(" { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx) + const result = await Effect.runPromise(webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx)) expect(result.output).toBe("hello from webfetch") expect(result.attachments).toBeUndefined() }, diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 8289646eb..57d2cd6a7 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -7,6 +7,8 @@ import { Instance } from "../../src/project/instance" import { LSP } from "../../src/lsp" import { AppFileSystem } from "../../src/filesystem" import { FileTime } from "../../src/file/time" +import { Bus } from "../../src/bus" +import { Format } from "../../src/format" import { Tool } from "../../src/tool/tool" import { SessionID, MessageID } from "../../src/session/schema" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" @@ -21,7 +23,7 @@ const ctx = { abort: AbortSignal.any([]), messages: [], metadata: () => {}, - ask: async () => {}, + ask: () => Effect.void, } afterEach(async () => { @@ -29,7 +31,7 @@ afterEach(async () => { }) const it = testEffect( - Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, FileTime.defaultLayer, CrossSpawnSpawner.defaultLayer), + Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, FileTime.defaultLayer, Bus.layer, Format.defaultLayer, CrossSpawnSpawner.defaultLayer), ) const init = Effect.fn("WriteToolTest.init")(function* () { @@ -42,7 +44,7 @@ const run = Effect.fn("WriteToolTest.run")(function* ( next: Tool.Context = ctx, ) { const tool = yield* init() - return yield* Effect.promise(() => tool.execute(args, next)) + return yield* tool.execute(args, next) }) const markRead = Effect.fn("WriteToolTest.markRead")(function* (sessionID: string, filepath: string) { From 577139c62606630fee8e82ec2021f71e66d54b1f Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 02:36:59 +0000 Subject: [PATCH 093/151] chore: generate --- packages/opencode/src/session/prompt.ts | 38 +- .../opencode/test/tool/apply_patch.test.ts | 8 +- packages/opencode/test/tool/bash.test.ts | 622 ++++++++++-------- packages/opencode/test/tool/edit.test.ts | 346 +++++----- .../test/tool/external-directory.test.ts | 5 +- packages/opencode/test/tool/grep.test.ts | 50 +- packages/opencode/test/tool/read.test.ts | 4 +- packages/opencode/test/tool/skill.test.ts | 4 +- packages/opencode/test/tool/task.test.ts | 136 ++-- .../opencode/test/tool/tool-define.test.ts | 5 +- packages/opencode/test/tool/webfetch.test.ts | 15 +- packages/opencode/test/tool/write.test.ts | 9 +- 12 files changed, 693 insertions(+), 549 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 6c0c55e2b..fabcfdcf6 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -106,8 +106,7 @@ export namespace SessionPrompt { const run = { promise: (effect: Effect.Effect) => Effect.runPromise(effect.pipe(Effect.provide(EffectLogger.layer))), - fork: (effect: Effect.Effect) => - Effect.runFork(effect.pipe(Effect.provide(EffectLogger.layer))), + fork: (effect: Effect.Effect) => Effect.runFork(effect.pipe(Effect.provide(EffectLogger.layer))), } const cancel = Effect.fn("SessionPrompt.cancel")(function* (sessionID: SessionID) { @@ -622,23 +621,24 @@ NOTE: At any point in time through this workflow you should feel free to ask the }), Effect.onInterrupt(() => Effect.gen(function* () { - taskAbort.abort() - assistantMessage.finish = "tool-calls" - assistantMessage.time.completed = Date.now() - yield* sessions.updateMessage(assistantMessage) - if (part.state.status === "running") { - yield* sessions.updatePart({ - ...part, - state: { - status: "error", - error: "Cancelled", - time: { start: part.state.time.start, end: Date.now() }, - metadata: part.state.metadata, - input: part.state.input, - }, - } satisfies MessageV2.ToolPart) - } - })), + taskAbort.abort() + assistantMessage.finish = "tool-calls" + assistantMessage.time.completed = Date.now() + yield* sessions.updateMessage(assistantMessage) + if (part.state.status === "running") { + yield* sessions.updatePart({ + ...part, + state: { + status: "error", + error: "Cancelled", + time: { start: part.state.time.start, end: Date.now() }, + metadata: part.state.metadata, + input: part.state.input, + }, + } satisfies MessageV2.ToolPart) + } + }), + ), ) const attachments = result?.attachments?.map((attachment) => ({ diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index 8ce1c5eca..53b5f61ff 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -11,7 +11,9 @@ import { Bus } from "../../src/bus" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" -const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer)) +const runtime = ManagedRuntime.make( + Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), +) const baseCtx = { sessionID: SessionID.make("ses_test"), @@ -57,7 +59,9 @@ const makeCtx = () => { const ctx: ToolCtx = { ...baseCtx, ask: (input) => - Effect.sync(() => { calls.push(input) }), + Effect.sync(() => { + calls.push(input) + }), } return { ctx, calls } diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index 54e615408..1f4001a0c 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -132,13 +132,15 @@ describe("tool.bash", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await Effect.runPromise(bash.execute( - { - command: "echo test", - description: "Echo test message", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: "echo test", + description: "Echo test message", + }, + ctx, + ), + ) expect(result.metadata.exit).toBe(0) expect(result.metadata.output).toContain("test") }, @@ -154,13 +156,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "echo hello", - description: "Echo hello", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "echo hello", + description: "Echo hello", + }, + capture(requests), + ), + ) expect(requests.length).toBe(1) expect(requests[0].permission).toBe("bash") expect(requests[0].patterns).toContain("echo hello") @@ -175,13 +179,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "echo foo && echo bar", - description: "Echo twice", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "echo foo && echo bar", + description: "Echo twice", + }, + capture(requests), + ), + ) expect(requests.length).toBe(1) expect(requests[0].permission).toBe("bash") expect(requests[0].patterns).toContain("echo foo") @@ -199,13 +205,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "Write-Host foo; if ($?) { Write-Host bar }", - description: "Check PowerShell conditional", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "Write-Host foo; if ($?) { Write-Host bar }", + description: "Check PowerShell conditional", + }, + capture(requests), + ), + ) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() expect(bashReq!.patterns).toContain("Write-Host foo") @@ -227,13 +235,15 @@ describe("tool.bash permissions", () => { const file = process.platform === "win32" ? `${process.env.WINDIR!.replaceAll("\\", "/")}/*` : "/etc/*" const want = process.platform === "win32" ? glob(path.join(process.env.WINDIR!, "*")) : "/etc/*" await expect( - Effect.runPromise(bash.execute( - { - command: `cat ${file}`, - description: "Read wildcard path", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: `cat ${file}`, + description: "Read wildcard path", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -258,13 +268,15 @@ describe("tool.bash permissions", () => { const bash = await initBash() const file = path.join(outerTmp.path, "outside.txt").replaceAll("\\", "/") const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: `echo $(cat "${file}")`, - description: "Read nested bash file", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: `echo $(cat "${file}")`, + description: "Read nested bash file", + }, + capture(requests), + ), + ) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") expect(extDirReq).toBeDefined() @@ -290,13 +302,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: `Copy-Item -PassThru "${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini" ./out`, - description: "Copy Windows ini", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: `Copy-Item -PassThru "${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini" ./out`, + description: "Copy Windows ini", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -317,13 +331,15 @@ describe("tool.bash permissions", () => { const bash = await initBash() const requests: Array> = [] const file = `${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini` - await Effect.runPromise(bash.execute( - { - command: `Write-Output $(Get-Content ${file})`, - description: "Read nested PowerShell file", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: `Write-Output $(Get-Content ${file})`, + description: "Read nested PowerShell file", + }, + capture(requests), + ), + ) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") expect(extDirReq).toBeDefined() @@ -348,13 +364,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: 'Get-Content "C:../outside.txt"', - description: "Read drive-relative file", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "C:../outside.txt"', + description: "Read drive-relative file", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -376,13 +394,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: 'Get-Content "$HOME/.ssh/config"', - description: "Read home config", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "$HOME/.ssh/config"', + description: "Read home config", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -405,13 +425,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: 'Get-Content "$PWD/../outside.txt"', - description: "Read pwd-relative file", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "$PWD/../outside.txt"', + description: "Read pwd-relative file", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -433,13 +455,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: 'Get-Content "$PSHOME/outside.txt"', - description: "Read pshome file", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "$PSHOME/outside.txt"', + description: "Read pshome file", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -466,13 +490,15 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const root = path.parse(process.env.WINDIR!).root.replace(/[\\/]+$/, "") await expect( - Effect.runPromise(bash.execute( - { - command: `Get-Content -Path "${root}$env:${key}\\Windows\\win.ini"`, - description: "Read Windows ini with missing env", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: `Get-Content -Path "${root}$env:${key}\\Windows\\win.ini"`, + description: "Read Windows ini with missing env", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -496,13 +522,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "Get-Content $env:WINDIR/win.ini", - description: "Read Windows ini from env", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "Get-Content $env:WINDIR/win.ini", + description: "Read Windows ini from env", + }, + capture(requests), + ), + ) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() expect(extDirReq!.patterns).toContain( @@ -525,13 +553,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: `Get-Content -Path FileSystem::${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini`, - description: "Read Windows ini from FileSystem provider", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: `Get-Content -Path FileSystem::${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini`, + description: "Read Windows ini from FileSystem provider", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -555,13 +585,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: "Get-Content ${env:WINDIR}/win.ini", - description: "Read Windows ini from braced env", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: "Get-Content ${env:WINDIR}/win.ini", + description: "Read Windows ini from braced env", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") if (requests[0]?.permission !== "external_directory") return @@ -583,13 +615,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "Set-Location C:/Windows", - description: "Change location", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "Set-Location C:/Windows", + description: "Change location", + }, + capture(requests), + ), + ) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") expect(extDirReq).toBeDefined() @@ -612,13 +646,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "Write-Output ('a' * 3)", - description: "Write repeated text", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "Write-Output ('a' * 3)", + description: "Write repeated text", + }, + capture(requests), + ), + ) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() expect(bashReq!.patterns).not.toContain("a * 3") @@ -639,13 +675,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: "cd ../", - description: "Change to parent directory", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: "cd ../", + description: "Change to parent directory", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -662,14 +700,16 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: "echo ok", - workdir: os.tmpdir(), - description: "Echo from temp dir", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: "echo ok", + workdir: os.tmpdir(), + description: "Echo from temp dir", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -692,14 +732,16 @@ describe("tool.bash permissions", () => { for (const dir of forms(outerTmp.path)) { const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { - command: "echo ok", - workdir: dir, - description: "Echo from external dir", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: "echo ok", + workdir: dir, + description: "Echo from external dir", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -725,14 +767,16 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) await expect( - Effect.runPromise(bash.execute( - { - command: "echo ok", - workdir: "/tmp", - description: "Echo from Git Bash tmp", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: "echo ok", + workdir: "/tmp", + description: "Echo from Git Bash tmp", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]).toMatchObject({ permission: "external_directory", @@ -755,13 +799,15 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) await expect( - Effect.runPromise(bash.execute( - { - command: "cat /tmp/opencode-does-not-exist", - description: "Read Git Bash tmp file", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: "cat /tmp/opencode-does-not-exist", + description: "Read Git Bash tmp file", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) expect(requests[0]).toMatchObject({ permission: "external_directory", @@ -790,13 +836,15 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const filepath = path.join(outerTmp.path, "outside.txt") await expect( - Effect.runPromise(bash.execute( - { - command: `cat ${filepath}`, - description: "Read external file", - }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { + command: `cat ${filepath}`, + description: "Read external file", + }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") const expected = glob(path.join(outerTmp.path, "*")) @@ -818,13 +866,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: `rm -rf ${path.join(tmp.path, "nested")}`, - description: "Remove nested dir", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: `rm -rf ${path.join(tmp.path, "nested")}`, + description: "Remove nested dir", + }, + capture(requests), + ), + ) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeUndefined() }, @@ -838,13 +888,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "git log --oneline -5", - description: "Git log", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "git log --oneline -5", + description: "Git log", + }, + capture(requests), + ), + ) expect(requests.length).toBe(1) expect(requests[0].always.length).toBeGreaterThan(0) expect(requests[0].always.some((item) => item.endsWith("*"))).toBe(true) @@ -859,13 +911,15 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await Effect.runPromise(bash.execute( - { - command: "cd .", - description: "Stay in current directory", - }, - capture(requests), - )) + await Effect.runPromise( + bash.execute( + { + command: "cd .", + description: "Stay in current directory", + }, + capture(requests), + ), + ) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeUndefined() }, @@ -881,10 +935,12 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - Effect.runPromise(bash.execute( - { command: "echo test > output.txt", description: "Redirect test output" }, - capture(requests, err), - )), + Effect.runPromise( + bash.execute( + { command: "echo test > output.txt", description: "Redirect test output" }, + capture(requests, err), + ), + ), ).rejects.toThrow(err.message) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() @@ -917,23 +973,25 @@ describe("tool.bash abort", () => { const bash = await initBash() const controller = new AbortController() const collected: string[] = [] - const res = await Effect.runPromise(bash.execute( - { - command: `echo before && sleep 30`, - description: "Long running command", - }, - { - ...ctx, - abort: controller.signal, - metadata: (input) => { - const output = (input.metadata as { output?: string })?.output - if (output && output.includes("before") && !controller.signal.aborted) { - collected.push(output) - controller.abort() - } + const res = await Effect.runPromise( + bash.execute( + { + command: `echo before && sleep 30`, + description: "Long running command", }, - }, - )) + { + ...ctx, + abort: controller.signal, + metadata: (input) => { + const output = (input.metadata as { output?: string })?.output + if (output && output.includes("before") && !controller.signal.aborted) { + collected.push(output) + controller.abort() + } + }, + }, + ), + ) expect(res.output).toContain("before") expect(res.output).toContain("User aborted the command") expect(collected.length).toBeGreaterThan(0) @@ -946,14 +1004,16 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await Effect.runPromise(bash.execute( - { - command: `echo started && sleep 60`, - description: "Timeout test", - timeout: 500, - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: `echo started && sleep 60`, + description: "Timeout test", + timeout: 500, + }, + ctx, + ), + ) expect(result.output).toContain("started") expect(result.output).toContain("bash tool terminated command after exceeding timeout") }, @@ -965,13 +1025,15 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await Effect.runPromise(bash.execute( - { - command: `echo stdout_msg && echo stderr_msg >&2`, - description: "Stderr test", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: `echo stdout_msg && echo stderr_msg >&2`, + description: "Stderr test", + }, + ctx, + ), + ) expect(result.output).toContain("stdout_msg") expect(result.output).toContain("stderr_msg") expect(result.metadata.exit).toBe(0) @@ -984,13 +1046,15 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await Effect.runPromise(bash.execute( - { - command: `exit 42`, - description: "Non-zero exit", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: `exit 42`, + description: "Non-zero exit", + }, + ctx, + ), + ) expect(result.metadata.exit).toBe(42) }, }) @@ -1002,19 +1066,21 @@ describe("tool.bash abort", () => { fn: async () => { const bash = await initBash() const updates: string[] = [] - const result = await Effect.runPromise(bash.execute( - { - command: `echo first && sleep 0.1 && echo second`, - description: "Streaming test", - }, - { - ...ctx, - metadata: (input) => { - const output = (input.metadata as { output?: string })?.output - if (output) updates.push(output) + const result = await Effect.runPromise( + bash.execute( + { + command: `echo first && sleep 0.1 && echo second`, + description: "Streaming test", }, - }, - )) + { + ...ctx, + metadata: (input) => { + const output = (input.metadata as { output?: string })?.output + if (output) updates.push(output) + }, + }, + ), + ) expect(result.output).toContain("first") expect(result.output).toContain("second") expect(updates.length).toBeGreaterThan(1) @@ -1030,13 +1096,15 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const lineCount = Truncate.MAX_LINES + 500 - const result = await Effect.runPromise(bash.execute( - { - command: fill("lines", lineCount), - description: "Generate lines exceeding limit", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: fill("lines", lineCount), + description: "Generate lines exceeding limit", + }, + ctx, + ), + ) mustTruncate(result) expect(result.output).toContain("truncated") expect(result.output).toContain("The tool call succeeded but the output was truncated") @@ -1050,13 +1118,15 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const byteCount = Truncate.MAX_BYTES + 10000 - const result = await Effect.runPromise(bash.execute( - { - command: fill("bytes", byteCount), - description: "Generate bytes exceeding limit", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: fill("bytes", byteCount), + description: "Generate bytes exceeding limit", + }, + ctx, + ), + ) mustTruncate(result) expect(result.output).toContain("truncated") expect(result.output).toContain("The tool call succeeded but the output was truncated") @@ -1069,13 +1139,15 @@ describe("tool.bash truncation", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await Effect.runPromise(bash.execute( - { - command: "echo hello", - description: "Echo hello", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: "echo hello", + description: "Echo hello", + }, + ctx, + ), + ) expect((result.metadata as { truncated?: boolean }).truncated).toBe(false) expect(result.output).toContain("hello") }, @@ -1088,13 +1160,15 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const lineCount = Truncate.MAX_LINES + 100 - const result = await Effect.runPromise(bash.execute( - { - command: fill("lines", lineCount), - description: "Generate lines for file check", - }, - ctx, - )) + const result = await Effect.runPromise( + bash.execute( + { + command: fill("lines", lineCount), + description: "Generate lines for file check", + }, + ctx, + ), + ) mustTruncate(result) const filepath = (result.metadata as { outputPath?: string }).outputPath diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 21dc57e36..df58f6aa3 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -65,14 +65,16 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { const edit = await resolve() - const result = await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "", - newString: "new content", - }, - ctx, - )) + const result = await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "new content", + }, + ctx, + ), + ) expect(result.metadata.diff).toContain("new content") @@ -90,14 +92,16 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { const edit = await resolve() - await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "", - newString: "nested file", - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "nested file", + }, + ctx, + ), + ) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("nested file") @@ -118,14 +122,16 @@ describe("tool.edit", () => { const unsubUpdated = await subscribeBus(FileWatcher.Event.Updated, () => events.push("updated")) const edit = await resolve() - await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "", - newString: "content", - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "content", + }, + ctx, + ), + ) expect(events).toContain("updated") unsubUpdated() @@ -146,14 +152,16 @@ describe("tool.edit", () => { await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - const result = await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "old content", - newString: "new content", - }, - ctx, - )) + const result = await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "old content", + newString: "new content", + }, + ctx, + ), + ) expect(result.output).toContain("Edit applied successfully") @@ -174,14 +182,16 @@ describe("tool.edit", () => { const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "old", - newString: "new", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "old", + newString: "new", + }, + ctx, + ), + ), ).rejects.toThrow("not found") }, }) @@ -197,14 +207,16 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "same", - newString: "same", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "same", + newString: "same", + }, + ctx, + ), + ), ).rejects.toThrow("identical") }, }) @@ -222,14 +234,16 @@ describe("tool.edit", () => { const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "not in file", - newString: "replacement", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "not in file", + newString: "replacement", + }, + ctx, + ), + ), ).rejects.toThrow() }, }) @@ -245,14 +259,16 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "content", - newString: "modified", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "content", + newString: "modified", + }, + ctx, + ), + ), ).rejects.toThrow("You must read file") }, }) @@ -277,14 +293,16 @@ describe("tool.edit", () => { // Try to edit with the new content const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "modified externally", - newString: "edited", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "modified externally", + newString: "edited", + }, + ctx, + ), + ), ).rejects.toThrow("modified since it was last read") }, }) @@ -301,15 +319,17 @@ describe("tool.edit", () => { await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "foo", - newString: "qux", - replaceAll: true, - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "foo", + newString: "qux", + replaceAll: true, + }, + ctx, + ), + ) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("qux bar qux baz qux") @@ -333,14 +353,16 @@ describe("tool.edit", () => { const unsubUpdated = await subscribeBus(FileWatcher.Event.Updated, () => events.push("updated")) const edit = await resolve() - await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "original", - newString: "modified", - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "original", + newString: "modified", + }, + ctx, + ), + ) expect(events).toContain("updated") unsubUpdated() @@ -361,14 +383,16 @@ describe("tool.edit", () => { await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "line2", - newString: "new line 2\nextra line", - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "line2", + newString: "new line 2\nextra line", + }, + ctx, + ), + ) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("line1\nnew line 2\nextra line\nline3") @@ -387,14 +411,16 @@ describe("tool.edit", () => { await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "old", - newString: "new", - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "old", + newString: "new", + }, + ctx, + ), + ) const content = await fs.readFile(filepath, "utf-8") expect(content).toBe("line1\r\nnew\r\nline3") @@ -412,14 +438,16 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "", - newString: "", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "", + }, + ctx, + ), + ), ).rejects.toThrow("identical") }, }) @@ -437,14 +465,16 @@ describe("tool.edit", () => { const edit = await resolve() await expect( - Effect.runPromise(edit.execute( - { - filePath: dirpath, - oldString: "old", - newString: "new", - }, - ctx, - )), + Effect.runPromise( + edit.execute( + { + filePath: dirpath, + oldString: "old", + newString: "new", + }, + ctx, + ), + ), ).rejects.toThrow("directory") }, }) @@ -461,14 +491,16 @@ describe("tool.edit", () => { await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - const result = await Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "line2", - newString: "new line a\nnew line b", - }, - ctx, - )) + const result = await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "line2", + newString: "new line a\nnew line b", + }, + ctx, + ), + ) expect(result.metadata.filediff).toBeDefined() expect(result.metadata.filediff.file).toBe(filepath) @@ -530,15 +562,17 @@ describe("tool.edit", () => { const edit = await resolve() const filePath = path.join(tmp.path, "test.txt") await readFileTime(ctx.sessionID, filePath) - await Effect.runPromise(edit.execute( - { - filePath, - oldString: input.oldString, - newString: input.newString, - replaceAll: input.replaceAll, - }, - ctx, - )) + await Effect.runPromise( + edit.execute( + { + filePath, + oldString: input.oldString, + newString: input.newString, + replaceAll: input.replaceAll, + }, + ctx, + ), + ) return await Bun.file(filePath).text() }, }) @@ -675,26 +709,30 @@ describe("tool.edit", () => { const edit = await resolve() // Two concurrent edits - const promise1 = Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "0", - newString: "1", - }, - ctx, - )) + const promise1 = Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "0", + newString: "1", + }, + ctx, + ), + ) // Need to read again since FileTime tracks per-session await readFileTime(ctx.sessionID, filepath) - const promise2 = Effect.runPromise(edit.execute( - { - filePath: filepath, - oldString: "0", - newString: "2", - }, - ctx, - )) + const promise2 = Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "0", + newString: "2", + }, + ctx, + ), + ) // Both should complete without error (though one might fail due to content mismatch) const results = await Promise.allSettled([promise1, promise2]) diff --git a/packages/opencode/test/tool/external-directory.test.ts b/packages/opencode/test/tool/external-directory.test.ts index dd739b5f6..79b58c136 100644 --- a/packages/opencode/test/tool/external-directory.test.ts +++ b/packages/opencode/test/tool/external-directory.test.ts @@ -26,7 +26,10 @@ function makeCtx() { const requests: Array> = [] const ctx: Tool.Context = { ...baseCtx, - ask: (req) => Effect.sync(() => { requests.push(req) }), + ask: (req) => + Effect.sync(() => { + requests.push(req) + }), } return { requests, ctx } } diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index c35c5c08f..f907b626e 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -32,14 +32,16 @@ describe("tool.grep", () => { directory: projectRoot, fn: async () => { const grep = await initGrep() - const result = await Effect.runPromise(grep.execute( - { - pattern: "export", - path: path.join(projectRoot, "src/tool"), - include: "*.ts", - }, - ctx, - )) + const result = await Effect.runPromise( + grep.execute( + { + pattern: "export", + path: path.join(projectRoot, "src/tool"), + include: "*.ts", + }, + ctx, + ), + ) expect(result.metadata.matches).toBeGreaterThan(0) expect(result.output).toContain("Found") }, @@ -56,13 +58,15 @@ describe("tool.grep", () => { directory: tmp.path, fn: async () => { const grep = await initGrep() - const result = await Effect.runPromise(grep.execute( - { - pattern: "xyznonexistentpatternxyz123", - path: tmp.path, - }, - ctx, - )) + const result = await Effect.runPromise( + grep.execute( + { + pattern: "xyznonexistentpatternxyz123", + path: tmp.path, + }, + ctx, + ), + ) expect(result.metadata.matches).toBe(0) expect(result.output).toBe("No files found") }, @@ -81,13 +85,15 @@ describe("tool.grep", () => { directory: tmp.path, fn: async () => { const grep = await initGrep() - const result = await Effect.runPromise(grep.execute( - { - pattern: "line", - path: tmp.path, - }, - ctx, - )) + const result = await Effect.runPromise( + grep.execute( + { + pattern: "line", + path: tmp.path, + }, + ctx, + ), + ) expect(result.metadata.matches).toBeGreaterThan(0) }, }) diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index 888cc4225..a48cd4755 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -96,7 +96,9 @@ const asks = () => { next: { ...ctx, ask: (req: Omit) => - Effect.sync(() => { items.push(req) }), + Effect.sync(() => { + items.push(req) + }), }, } } diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index bfde5835f..ebd62dbcf 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -157,7 +157,9 @@ Use this skill. const ctx: Tool.Context = { ...baseCtx, ask: (req) => - Effect.sync(() => { requests.push(req) }), + Effect.sync(() => { + requests.push(req) + }), } const result = await runtime.runPromise(tool.execute({ name: "tool-skill" }, ctx)) diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index f7288ad61..478ff9662 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -195,23 +195,23 @@ describe("tool.task", () => { const promptOps = stubOps({ text: "resumed", onPrompt: (input) => (seen = input) }) const result = yield* def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "general", - task_id: child.id, - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps }, - messages: [], - metadata() {}, - ask: () => Effect.void, - }, - ) + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + task_id: child.id, + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps }, + messages: [], + metadata() {}, + ask: () => Effect.void, + }, + ) const kids = yield* sessions.children(chat.id) expect(kids).toHaveLength(1) @@ -234,23 +234,25 @@ describe("tool.task", () => { const exec = (extra?: Record) => def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "general", - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps, ...extra }, - messages: [], - metadata() {}, - ask: (input) => - Effect.sync(() => { calls.push(input) }), - }, - ) + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps, ...extra }, + messages: [], + metadata() {}, + ask: (input) => + Effect.sync(() => { + calls.push(input) + }), + }, + ) yield* exec() yield* exec({ bypassAgentCheck: true }) @@ -280,23 +282,23 @@ describe("tool.task", () => { const promptOps = stubOps({ text: "created", onPrompt: (input) => (seen = input) }) const result = yield* def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "general", - task_id: "ses_missing", - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps }, - messages: [], - metadata() {}, - ask: () => Effect.void, - }, - ) + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + task_id: "ses_missing", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps }, + messages: [], + metadata() {}, + ask: () => Effect.void, + }, + ) const kids = yield* sessions.children(chat.id) expect(kids).toHaveLength(1) @@ -320,22 +322,22 @@ describe("tool.task", () => { const promptOps = stubOps({ onPrompt: (input) => (seen = input) }) const result = yield* def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "reviewer", - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps }, - messages: [], - metadata() {}, - ask: () => Effect.void, - }, - ) + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "reviewer", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps }, + messages: [], + metadata() {}, + ask: () => Effect.void, + }, + ) const child = yield* sessions.get(result.metadata.sessionId) expect(child.parentID).toBe(chat.id) diff --git a/packages/opencode/test/tool/tool-define.test.ts b/packages/opencode/test/tool/tool-define.test.ts index 4b44e17b0..1f8f43b2d 100644 --- a/packages/opencode/test/tool/tool-define.test.ts +++ b/packages/opencode/test/tool/tool-define.test.ts @@ -32,7 +32,10 @@ describe("Tool.define", () => { test("function-defined tool returns fresh objects and is unaffected", async () => { const info = await Effect.runPromise( - Tool.define("test-fn-tool", Effect.succeed(() => Promise.resolve(makeTool("test")))), + Tool.define( + "test-fn-tool", + Effect.succeed(() => Promise.resolve(makeTool("test"))), + ), ) const first = await info.init() diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index 8e9f96808..d601f0deb 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -42,10 +42,9 @@ describe("tool.webfetch", () => { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await Effect.runPromise(webfetch.execute( - { url: new URL("/image.png", url).toString(), format: "markdown" }, - ctx, - )) + const result = await Effect.runPromise( + webfetch.execute({ url: new URL("/image.png", url).toString(), format: "markdown" }, ctx), + ) expect(result.output).toBe("Image fetched successfully") expect(result.attachments).toBeDefined() expect(result.attachments?.length).toBe(1) @@ -74,7 +73,9 @@ describe("tool.webfetch", () => { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await Effect.runPromise(webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx)) + const result = await Effect.runPromise( + webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx), + ) expect(result.output).toContain(" { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await Effect.runPromise(webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx)) + const result = await Effect.runPromise( + webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx), + ) expect(result.output).toBe("hello from webfetch") expect(result.attachments).toBeUndefined() }, diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 57d2cd6a7..aac55f1e7 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -31,7 +31,14 @@ afterEach(async () => { }) const it = testEffect( - Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, FileTime.defaultLayer, Bus.layer, Format.defaultLayer, CrossSpawnSpawner.defaultLayer), + Layer.mergeAll( + LSP.defaultLayer, + AppFileSystem.defaultLayer, + FileTime.defaultLayer, + Bus.layer, + Format.defaultLayer, + CrossSpawnSpawner.defaultLayer, + ), ) const init = Effect.fn("WriteToolTest.init")(function* () { From b6af4d0dc6fb37ffb2b4fb621e53593b12aa32a1 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Sat, 11 Apr 2026 10:43:40 +0800 Subject: [PATCH 094/151] refactor(config): pass instance context to containsPath (#21882) --- packages/opencode/src/config/config.ts | 37 +++++++++++++---------- packages/opencode/src/project/instance.ts | 7 +++-- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index ff79b739f..eabf971f4 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -41,6 +41,7 @@ import { Duration, Effect, Layer, Option, ServiceMap } from "effect" import { Flock } from "@/util/flock" import { isPathPluginSpec, parsePluginSpecifier, resolvePathPluginTarget } from "@/plugin/shared" import { Npm } from "@/npm" +import { InstanceRef } from "@/effect/instance-ref" export namespace Config { const ModelId = z.string().meta({ $ref: "https://models.dev/model-schema.json#/$defs/Model" }) @@ -1327,27 +1328,31 @@ export namespace Config { const consoleManagedProviders = new Set() let activeOrgName: string | undefined - const scope = (source: string): PluginScope => { + const scope = Effect.fnUntraced(function* (source: string) { if (source.startsWith("http://") || source.startsWith("https://")) return "global" if (source === "OPENCODE_CONFIG_CONTENT") return "local" - if (Instance.containsPath(source)) return "local" + if (yield* InstanceRef.use((ctx) => Effect.succeed(Instance.containsPath(source, ctx)))) return "local" return "global" - } + }) - const track = (source: string, list: PluginSpec[] | undefined, kind?: PluginScope) => { + const track = Effect.fnUntraced(function* ( + source: string, + list: PluginSpec[] | undefined, + kind?: PluginScope, + ) { if (!list?.length) return - const hit = kind ?? scope(source) + const hit = kind ?? (yield* scope(source)) const plugins = deduplicatePluginOrigins([ ...(result.plugin_origins ?? []), ...list.map((spec) => ({ spec, source, scope: hit })), ]) result.plugin = plugins.map((item) => item.spec) result.plugin_origins = plugins - } + }) const merge = (source: string, next: Info, kind?: PluginScope) => { result = mergeConfigConcatArrays(result, next) - track(source, next.plugin, kind) + return track(source, next.plugin, kind) } for (const [key, value] of Object.entries(auth)) { @@ -1367,16 +1372,16 @@ export namespace Config { dir: path.dirname(source), source, }) - merge(source, next, "global") + yield* merge(source, next, "global") log.debug("loaded remote config from well-known", { url }) } } const global = yield* getGlobal() - merge(Global.Path.config, global, "global") + yield* merge(Global.Path.config, global, "global") if (Flag.OPENCODE_CONFIG) { - merge(Flag.OPENCODE_CONFIG, yield* loadFile(Flag.OPENCODE_CONFIG)) + yield* merge(Flag.OPENCODE_CONFIG, yield* loadFile(Flag.OPENCODE_CONFIG)) log.debug("loaded custom config", { path: Flag.OPENCODE_CONFIG }) } @@ -1384,7 +1389,7 @@ export namespace Config { for (const file of yield* Effect.promise(() => ConfigPaths.projectFiles("opencode", ctx.directory, ctx.worktree), )) { - merge(file, yield* loadFile(file), "local") + yield* merge(file, yield* loadFile(file), "local") } } @@ -1405,7 +1410,7 @@ export namespace Config { for (const file of ["opencode.json", "opencode.jsonc"]) { const source = path.join(dir, file) log.debug(`loading config from ${source}`) - merge(source, yield* loadFile(source)) + yield* merge(source, yield* loadFile(source)) result.agent ??= {} result.mode ??= {} result.plugin ??= [] @@ -1424,7 +1429,7 @@ export namespace Config { result.agent = mergeDeep(result.agent, yield* Effect.promise(() => loadAgent(dir))) result.agent = mergeDeep(result.agent, yield* Effect.promise(() => loadMode(dir))) const list = yield* Effect.promise(() => loadPlugin(dir)) - track(dir, list) + yield* track(dir, list) } if (process.env.OPENCODE_CONFIG_CONTENT) { @@ -1433,7 +1438,7 @@ export namespace Config { dir: ctx.directory, source, }) - merge(source, next, "local") + yield* merge(source, next, "local") log.debug("loaded custom config from OPENCODE_CONFIG_CONTENT") } @@ -1462,7 +1467,7 @@ export namespace Config { for (const providerID of Object.keys(next.provider ?? {})) { consoleManagedProviders.add(providerID) } - merge(source, next, "global") + yield* merge(source, next, "global") } }).pipe( Effect.catch((err) => { @@ -1477,7 +1482,7 @@ export namespace Config { if (existsSync(managedDir)) { for (const file of ["opencode.json", "opencode.jsonc"]) { const source = path.join(managedDir, file) - merge(source, yield* loadFile(source), "global") + yield* merge(source, yield* loadFile(source), "global") } } diff --git a/packages/opencode/src/project/instance.ts b/packages/opencode/src/project/instance.ts index 33078183b..60665a99a 100644 --- a/packages/opencode/src/project/instance.ts +++ b/packages/opencode/src/project/instance.ts @@ -90,12 +90,13 @@ export const Instance = { * Returns true if path is inside Instance.directory OR Instance.worktree. * Paths within the worktree but outside the working directory should not trigger external_directory permission. */ - containsPath(filepath: string) { - if (Filesystem.contains(Instance.directory, filepath)) return true + containsPath(filepath: string, ctx?: InstanceContext) { + const instance = ctx ?? Instance + if (Filesystem.contains(instance.directory, filepath)) return true // Non-git projects set worktree to "/" which would match ANY absolute path. // Skip worktree check in this case to preserve external_directory permissions. if (Instance.worktree === "/") return false - return Filesystem.contains(Instance.worktree, filepath) + return Filesystem.contains(instance.worktree, filepath) }, /** * Captures the current instance ALS context and returns a wrapper that From 5917ac2162865c4057ddefdd2a4bb8a7dcff0f2c Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 22:55:08 -0400 Subject: [PATCH 095/151] fix: provide EffectLogger.layer to bare Effect.runPromise/runFork calls (#21974) --- packages/opencode/src/bus/index.ts | 3 ++- packages/opencode/src/command/index.ts | 2 ++ packages/opencode/src/effect/instance-state.ts | 3 ++- packages/opencode/src/mcp/index.ts | 5 +++-- packages/opencode/src/plugin/index.ts | 3 ++- packages/opencode/src/provider/provider.ts | 3 ++- packages/opencode/src/pty/index.ts | 5 +++-- packages/opencode/src/session/message-v2.ts | 3 ++- packages/opencode/src/tool/external-directory.ts | 3 ++- packages/opencode/src/tool/registry.ts | 3 ++- packages/opencode/src/tool/skill.ts | 3 ++- 11 files changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/opencode/src/bus/index.ts b/packages/opencode/src/bus/index.ts index 87b08d610..707c57c0c 100644 --- a/packages/opencode/src/bus/index.ts +++ b/packages/opencode/src/bus/index.ts @@ -1,5 +1,6 @@ import z from "zod" import { Effect, Exit, Layer, PubSub, Scope, ServiceMap, Stream } from "effect" +import { EffectLogger } from "@/effect/logger" import { Log } from "../util/log" import { BusEvent } from "./bus-event" import { GlobalBus } from "./global" @@ -146,7 +147,7 @@ export namespace Bus { return () => { log.info("unsubscribing", { type }) - Effect.runFork(Scope.close(scope, Exit.void)) + Effect.runFork(Scope.close(scope, Exit.void).pipe(Effect.provide(EffectLogger.layer))) } }) } diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts index 088d7c565..4c08dbbb3 100644 --- a/packages/opencode/src/command/index.ts +++ b/packages/opencode/src/command/index.ts @@ -3,6 +3,7 @@ import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { SessionID, MessageID } from "@/session/schema" import { Effect, Layer, ServiceMap } from "effect" +import { EffectLogger } from "@/effect/logger" import z from "zod" import { Config } from "../config/config" import { MCP } from "../mcp" @@ -140,6 +141,7 @@ export namespace Command { .map((message) => (message.content.type === "text" ? message.content.text : "")) .join("\n") || "", ), + Effect.provide(EffectLogger.layer), ), ) }, diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index 878648855..86f84ddb1 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -1,4 +1,5 @@ import { Effect, Fiber, ScopedCache, Scope, ServiceMap } from "effect" +import { EffectLogger } from "@/effect/logger" import { Instance, type InstanceContext } from "@/project/instance" import { Context } from "@/util/context" import { InstanceRef, WorkspaceRef } from "./instance-ref" @@ -47,7 +48,7 @@ export namespace InstanceState { }), }) - const off = registerDisposer((directory) => Effect.runPromise(ScopedCache.invalidate(cache, directory))) + const off = registerDisposer((directory) => Effect.runPromise(ScopedCache.invalidate(cache, directory).pipe(Effect.provide(EffectLogger.layer)))) yield* Effect.addFinalizer(() => Effect.sync(off)) return { diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 2599a8dec..c5d466e1f 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -25,6 +25,7 @@ import { Bus } from "@/bus" import { TuiEvent } from "@/cli/cmd/tui/event" import open from "open" import { Effect, Exit, Layer, Option, ServiceMap, Stream } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" @@ -469,12 +470,12 @@ export namespace MCP { log.info("tools list changed notification received", { server: name }) if (s.clients[name] !== client || s.status[name]?.status !== "connected") return - const listed = await Effect.runPromise(defs(name, client, timeout)) + const listed = await Effect.runPromise(defs(name, client, timeout).pipe(Effect.provide(EffectLogger.layer))) if (!listed) return if (s.clients[name] !== client || s.status[name]?.status !== "connected") return s.defs[name] = listed - await Effect.runPromise(bus.publish(ToolsChanged, { server: name }).pipe(Effect.ignore)) + await Effect.runPromise(bus.publish(ToolsChanged, { server: name }).pipe(Effect.ignore, Effect.provide(EffectLogger.layer))) }) } diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index 814e7870a..799b92f0b 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -12,6 +12,7 @@ import { gitlabAuthPlugin as GitlabAuthPlugin } from "opencode-gitlab-auth" import { PoeAuthPlugin } from "opencode-poe-auth" import { CloudflareAIGatewayAuthPlugin, CloudflareWorkersAuthPlugin } from "./cloudflare" import { Effect, Layer, ServiceMap, Stream } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { errorMessage } from "@/util/error" @@ -83,7 +84,7 @@ export namespace Plugin { } function publishPluginError(bus: Bus.Interface, message: string) { - Effect.runFork(bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })) + Effect.runFork(bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() }).pipe(Effect.provide(EffectLogger.layer))) } async function applyPlugin(load: PluginLoader.Loaded, input: PluginInput, hooks: Hooks[]) { diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 004fb77f9..57d6e99a4 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -20,6 +20,7 @@ import { Global } from "../global" import path from "path" import { Filesystem } from "../util/filesystem" import { Effect, Layer, ServiceMap } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -1215,7 +1216,7 @@ export namespace Provider { const options = yield* Effect.promise(() => plugin.auth!.loader!( - () => Effect.runPromise(auth.get(providerID).pipe(Effect.orDie)) as any, + () => Effect.runPromise(auth.get(providerID).pipe(Effect.orDie, Effect.provide(EffectLogger.layer))) as any, database[plugin.auth!.provider], ), ) diff --git a/packages/opencode/src/pty/index.ts b/packages/opencode/src/pty/index.ts index ff44de73b..0358c72e8 100644 --- a/packages/opencode/src/pty/index.ts +++ b/packages/opencode/src/pty/index.ts @@ -11,6 +11,7 @@ import { Shell } from "@/shell/shell" import { Plugin } from "@/plugin" import { PtyID } from "./schema" import { Effect, Layer, ServiceMap } from "effect" +import { EffectLogger } from "@/effect/logger" export namespace Pty { const log = Log.create({ service: "pty" }) @@ -256,8 +257,8 @@ export namespace Pty { if (session.info.status === "exited") return log.info("session exited", { id, exitCode }) session.info.status = "exited" - Effect.runFork(bus.publish(Event.Exited, { id, exitCode })) - Effect.runFork(remove(id)) + Effect.runFork(bus.publish(Event.Exited, { id, exitCode }).pipe(Effect.provide(EffectLogger.layer))) + Effect.runFork(remove(id).pipe(Effect.provide(EffectLogger.layer))) }), ) yield* bus.publish(Event.Created, { info }) diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 61c159646..aa42e1c1d 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -15,6 +15,7 @@ import type { SystemError } from "bun" import type { Provider } from "@/provider/provider" import { ModelID, ProviderID } from "@/provider/schema" import { Effect } from "effect" +import { EffectLogger } from "@/effect/logger" /** Error shape thrown by Bun's fetch() when gzip/br decompression fails mid-stream */ interface FetchDecompressionError extends Error { @@ -839,7 +840,7 @@ export namespace MessageV2 { model: Provider.Model, options?: { stripMedia?: boolean }, ): Promise { - return Effect.runPromise(toModelMessagesEffect(input, model, options)) + return Effect.runPromise(toModelMessagesEffect(input, model, options).pipe(Effect.provide(EffectLogger.layer))) } export function page(input: { sessionID: SessionID; limit: number; before?: string }) { diff --git a/packages/opencode/src/tool/external-directory.ts b/packages/opencode/src/tool/external-directory.ts index ed9d2af2f..ff8854649 100644 --- a/packages/opencode/src/tool/external-directory.ts +++ b/packages/opencode/src/tool/external-directory.ts @@ -1,5 +1,6 @@ import path from "path" import { Effect } from "effect" +import { EffectLogger } from "@/effect/logger" import type { Tool } from "./tool" import { Instance } from "../project/instance" import { AppFileSystem } from "../filesystem" @@ -42,5 +43,5 @@ export const assertExternalDirectoryEffect = Effect.fn("Tool.assertExternalDirec }) export async function assertExternalDirectory(ctx: Tool.Context, target?: string, options?: Options) { - return Effect.runPromise(assertExternalDirectoryEffect(ctx, target, options)) + return Effect.runPromise(assertExternalDirectoryEffect(ctx, target, options).pipe(Effect.provide(EffectLogger.layer))) } diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 7ba99c0c9..c2577a505 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -30,6 +30,7 @@ import { Glob } from "../util/glob" import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, ServiceMap } from "effect" +import { EffectLogger } from "@/effect/logger" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" @@ -136,7 +137,7 @@ export namespace ToolRegistry { Effect.gen(function* () { const pluginCtx: PluginToolContext = { ...toolCtx, - ask: (req) => Effect.runPromise(toolCtx.ask(req)), + ask: (req) => Effect.runPromise(toolCtx.ask(req).pipe(Effect.provide(EffectLogger.layer))), directory: ctx.directory, worktree: ctx.worktree, } diff --git a/packages/opencode/src/tool/skill.ts b/packages/opencode/src/tool/skill.ts index 22eac69cf..f9f06b9cd 100644 --- a/packages/opencode/src/tool/skill.ts +++ b/packages/opencode/src/tool/skill.ts @@ -2,6 +2,7 @@ import path from "path" import { pathToFileURL } from "url" import z from "zod" import { Effect } from "effect" +import { EffectLogger } from "@/effect/logger" import * as Stream from "effect/Stream" import { Tool } from "./tool" import { Skill } from "../skill" @@ -18,7 +19,7 @@ export const SkillTool = Tool.define( const rg = yield* Ripgrep.Service return async () => { - const list = await Effect.runPromise(skill.available()) + const list = await Effect.runPromise(skill.available().pipe(Effect.provide(EffectLogger.layer))) const description = list.length === 0 From 2a8a59ded981fd5ef542836dfe610c1ecf32ac7f Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 02:56:03 +0000 Subject: [PATCH 096/151] chore: generate --- packages/opencode/src/effect/instance-state.ts | 4 +++- packages/opencode/src/mcp/index.ts | 4 +++- packages/opencode/src/plugin/index.ts | 6 +++++- packages/opencode/src/provider/provider.ts | 3 ++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index 86f84ddb1..a73ca17c5 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -48,7 +48,9 @@ export namespace InstanceState { }), }) - const off = registerDisposer((directory) => Effect.runPromise(ScopedCache.invalidate(cache, directory).pipe(Effect.provide(EffectLogger.layer)))) + const off = registerDisposer((directory) => + Effect.runPromise(ScopedCache.invalidate(cache, directory).pipe(Effect.provide(EffectLogger.layer))), + ) yield* Effect.addFinalizer(() => Effect.sync(off)) return { diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index c5d466e1f..c175ea19e 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -475,7 +475,9 @@ export namespace MCP { if (s.clients[name] !== client || s.status[name]?.status !== "connected") return s.defs[name] = listed - await Effect.runPromise(bus.publish(ToolsChanged, { server: name }).pipe(Effect.ignore, Effect.provide(EffectLogger.layer))) + await Effect.runPromise( + bus.publish(ToolsChanged, { server: name }).pipe(Effect.ignore, Effect.provide(EffectLogger.layer)), + ) }) } diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index 799b92f0b..ae75bc6a1 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -84,7 +84,11 @@ export namespace Plugin { } function publishPluginError(bus: Bus.Interface, message: string) { - Effect.runFork(bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() }).pipe(Effect.provide(EffectLogger.layer))) + Effect.runFork( + bus + .publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() }) + .pipe(Effect.provide(EffectLogger.layer)), + ) } async function applyPlugin(load: PluginLoader.Loaded, input: PluginInput, hooks: Hooks[]) { diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 57d6e99a4..858306b62 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -1216,7 +1216,8 @@ export namespace Provider { const options = yield* Effect.promise(() => plugin.auth!.loader!( - () => Effect.runPromise(auth.get(providerID).pipe(Effect.orDie, Effect.provide(EffectLogger.layer))) as any, + () => + Effect.runPromise(auth.get(providerID).pipe(Effect.orDie, Effect.provide(EffectLogger.layer))) as any, database[plugin.auth!.provider], ), ) From af8aff37889c059e38ccf2e18e10ee156bf0eea1 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 22:57:47 -0400 Subject: [PATCH 097/151] refactor: make TaskPromptOps effectful (#21971) --- packages/opencode/src/session/prompt.ts | 4 +-- packages/opencode/src/tool/task.ts | 38 +++++++++++------------- packages/opencode/test/tool/task.test.ts | 11 +++---- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index fabcfdcf6..a1bdcb1b9 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1665,8 +1665,8 @@ NOTE: At any point in time through this workflow you should feel free to ask the const promptOps: TaskPromptOps = { cancel: (sessionID) => run.fork(cancel(sessionID)), - resolvePromptParts: (template) => run.promise(resolvePromptParts(template)), - prompt: (input) => run.promise(prompt(input)), + resolvePromptParts: (template) => resolvePromptParts(template), + prompt: (input) => prompt(input), } return Service.of({ diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 3829aeae1..a8e7a8d69 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -12,8 +12,8 @@ import { Log } from "@/util/log" export interface TaskPromptOps { cancel(sessionID: SessionID): void - resolvePromptParts(template: string): Promise - prompt(input: SessionPrompt.PromptInput): Promise + resolvePromptParts(template: string): Effect.Effect + prompt(input: SessionPrompt.PromptInput): Effect.Effect } const id = "task" @@ -132,24 +132,22 @@ export const TaskTool = Tool.define( }), () => Effect.gen(function* () { - const parts = yield* Effect.promise(() => ops.resolvePromptParts(params.prompt)) - const result = yield* Effect.promise(() => - ops.prompt({ - messageID, - sessionID: nextSession.id, - model: { - modelID: model.modelID, - providerID: model.providerID, - }, - agent: next.name, - tools: { - ...(canTodo ? {} : { todowrite: false }), - ...(canTask ? {} : { task: false }), - ...Object.fromEntries((cfg.experimental?.primary_tools ?? []).map((item) => [item, false])), - }, - parts, - }), - ) + const parts = yield* ops.resolvePromptParts(params.prompt) + const result = yield* ops.prompt({ + messageID, + sessionID: nextSession.id, + model: { + modelID: model.modelID, + providerID: model.providerID, + }, + agent: next.name, + tools: { + ...(canTodo ? {} : { todowrite: false }), + ...(canTask ? {} : { task: false }), + ...Object.fromEntries((cfg.experimental?.primary_tools ?? []).map((item) => [item, false])), + }, + parts, + }) return { title: params.description, diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index 478ff9662..943e68e78 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -65,11 +65,12 @@ const seed = Effect.fn("TaskToolTest.seed")(function* (title = "Pinned") { function stubOps(opts?: { onPrompt?: (input: SessionPrompt.PromptInput) => void; text?: string }): TaskPromptOps { return { cancel() {}, - resolvePromptParts: async (template) => [{ type: "text", text: template }], - prompt: async (input) => { - opts?.onPrompt?.(input) - return reply(input, opts?.text ?? "done") - }, + resolvePromptParts: (template) => Effect.succeed([{ type: "text" as const, text: template }]), + prompt: (input) => + Effect.sync(() => { + opts?.onPrompt?.(input) + return reply(input, opts?.text ?? "done") + }), } } From 9581bf06709195368bc3220294c36f3527dbc5c6 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:06:28 -0400 Subject: [PATCH 098/151] refactor(effect): upgrade opencode to beta.46 context APIs (#21977) --- bun.lock | 22 +++++++++---- package.json | 4 +-- packages/opencode/package.json | 2 +- packages/opencode/specs/effect-migration.md | 2 +- packages/opencode/src/account/index.ts | 4 +-- packages/opencode/src/account/repo.ts | 4 +-- packages/opencode/src/account/schema.ts | 32 ++++--------------- packages/opencode/src/agent/agent.ts | 4 +-- packages/opencode/src/auth/index.ts | 4 +-- packages/opencode/src/bus/index.ts | 4 +-- packages/opencode/src/command/index.ts | 7 ++-- packages/opencode/src/config/config.ts | 4 +-- packages/opencode/src/control-plane/schema.ts | 3 +- .../src/control-plane/workspace-context.ts | 4 +-- .../src/effect/cross-spawn-spawner.ts | 13 ++++++++ packages/opencode/src/effect/instance-ref.ts | 6 ++-- .../opencode/src/effect/instance-state.ts | 8 ++--- packages/opencode/src/effect/run-service.ts | 8 ++--- packages/opencode/src/file/index.ts | 4 +-- packages/opencode/src/file/ripgrep.ts | 4 +-- packages/opencode/src/file/time.ts | 4 +-- packages/opencode/src/file/watcher.ts | 4 +-- packages/opencode/src/filesystem/index.ts | 4 +-- packages/opencode/src/format/index.ts | 4 +-- packages/opencode/src/git/index.ts | 4 +-- packages/opencode/src/installation/index.ts | 4 +-- packages/opencode/src/lsp/index.ts | 4 +-- packages/opencode/src/mcp/auth.ts | 4 +-- packages/opencode/src/mcp/index.ts | 4 +-- packages/opencode/src/permission/index.ts | 4 +-- packages/opencode/src/permission/schema.ts | 6 +--- packages/opencode/src/plugin/index.ts | 4 +-- packages/opencode/src/project/instance.ts | 4 +-- packages/opencode/src/project/project.ts | 4 +-- packages/opencode/src/project/schema.ts | 3 +- packages/opencode/src/project/vcs.ts | 4 +-- packages/opencode/src/provider/auth.ts | 4 +-- packages/opencode/src/provider/provider.ts | 4 +-- packages/opencode/src/provider/schema.ts | 24 +++++++------- packages/opencode/src/pty/index.ts | 4 +-- packages/opencode/src/pty/schema.ts | 3 +- packages/opencode/src/question/index.ts | 4 +-- packages/opencode/src/question/schema.ts | 6 +--- packages/opencode/src/session/compaction.ts | 4 +-- packages/opencode/src/session/index.ts | 4 +-- packages/opencode/src/session/instruction.ts | 4 +-- packages/opencode/src/session/llm.ts | 4 +-- packages/opencode/src/session/processor.ts | 4 +-- packages/opencode/src/session/prompt.ts | 4 +-- packages/opencode/src/session/revert.ts | 4 +-- packages/opencode/src/session/run-state.ts | 4 +-- packages/opencode/src/session/schema.ts | 9 ++---- packages/opencode/src/session/status.ts | 4 +-- packages/opencode/src/session/summary.ts | 4 +-- packages/opencode/src/session/todo.ts | 4 +-- packages/opencode/src/share/session.ts | 4 +-- packages/opencode/src/share/share-next.ts | 4 +-- packages/opencode/src/skill/discovery.ts | 4 +-- packages/opencode/src/skill/index.ts | 4 +-- packages/opencode/src/snapshot/index.ts | 4 +-- packages/opencode/src/storage/db.ts | 8 ++--- packages/opencode/src/storage/storage.ts | 4 +-- packages/opencode/src/sync/schema.ts | 3 +- packages/opencode/src/tool/registry.ts | 4 +-- packages/opencode/src/tool/schema.ts | 3 +- packages/opencode/src/tool/truncate.ts | 4 +-- .../src/util/{context.ts => local-context.ts} | 2 +- packages/opencode/src/util/schema.ts | 10 +++--- packages/opencode/src/worktree/index.ts | 4 +-- .../test/effect/instance-state.test.ts | 14 ++++---- .../opencode/test/effect/run-service.test.ts | 8 ++--- packages/opencode/test/fixture/fixture.ts | 4 +-- .../test/installation/installation.test.ts | 1 + packages/opencode/test/lib/llm-server.ts | 4 +-- .../opencode/test/project/project.test.ts | 1 + 75 files changed, 195 insertions(+), 209 deletions(-) rename packages/opencode/src/util/{context.ts => local-context.ts} (94%) diff --git a/bun.lock b/bun.lock index deeda0646..3d6bf4f0f 100644 --- a/bun.lock +++ b/bun.lock @@ -413,7 +413,7 @@ }, "devDependencies": { "@babel/core": "7.28.4", - "@effect/language-service": "0.79.0", + "@effect/language-service": "0.84.2", "@octokit/webhooks-types": "7.6.1", "@opencode-ai/script": "workspace:*", "@parcel/watcher-darwin-arm64": "2.5.1", @@ -641,7 +641,7 @@ }, "catalog": { "@cloudflare/workers-types": "4.20251008.0", - "@effect/platform-node": "4.0.0-beta.43", + "@effect/platform-node": "4.0.0-beta.46", "@hono/zod-validator": "0.4.2", "@kobalte/core": "0.13.11", "@lydell/node-pty": "1.2.0-beta.10", @@ -668,7 +668,7 @@ "dompurify": "3.3.1", "drizzle-kit": "1.0.0-beta.19-d95b7a4", "drizzle-orm": "1.0.0-beta.19-d95b7a4", - "effect": "4.0.0-beta.43", + "effect": "4.0.0-beta.46", "fuzzysort": "3.1.0", "hono": "4.10.7", "hono-openapi": "1.1.2", @@ -1025,11 +1025,11 @@ "@drizzle-team/brocli": ["@drizzle-team/brocli@0.11.0", "", {}, "sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg=="], - "@effect/language-service": ["@effect/language-service@0.79.0", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-DEmIOsg1GjjP6s9HXH1oJrW+gDmzkhVv9WOZl6to5eNyyCrjz1S2PDqQ7aYrW/HuifhfwI5Bik1pK4pj7Z+lrg=="], + "@effect/language-service": ["@effect/language-service@0.84.2", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-l04qNxpiA8rY5yXWckRPJ7Mk5MNerXuNymSFf+IdflfI5i8jgL1bpBNLuP6ijg7wgjdHc/KmTnCj2kT0SCntuA=="], - "@effect/platform-node": ["@effect/platform-node@4.0.0-beta.43", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-beta.43", "mime": "^4.1.0", "undici": "^7.24.0" }, "peerDependencies": { "effect": "^4.0.0-beta.43", "ioredis": "^5.7.0" } }, "sha512-Uq6E1rjaIpjHauzjwoB2HzAg3battYt2Boy8XO50GoHiWCXKE6WapYZ0/AnaBx5v5qg2sOfqpuiLsUf9ZgxOkA=="], + "@effect/platform-node": ["@effect/platform-node@4.0.0-beta.46", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-beta.46", "mime": "^4.1.0", "undici": "^7.24.0" }, "peerDependencies": { "effect": "^4.0.0-beta.46", "ioredis": "^5.7.0" } }, "sha512-6AFRKjJO95dFl5lK/YnJi04uePjQDFi3+K1aXwcz/EfVlRwJ4+lg5O4vbievfKL/hnfcShVp3/eXnNS9tvlMZQ=="], - "@effect/platform-node-shared": ["@effect/platform-node-shared@4.0.0-beta.43", "", { "dependencies": { "@types/ws": "^8.18.1", "ws": "^8.19.0" }, "peerDependencies": { "effect": "^4.0.0-beta.43" } }, "sha512-A9q0GEb61pYcQ06Dr6gXj1nKlDI3KHsar1sk3qb1ZY+kVSR64tBAylI8zGon23KY+NPtTUj/sEIToB7jc3Qt5w=="], + "@effect/platform-node-shared": ["@effect/platform-node-shared@4.0.0-beta.46", "", { "dependencies": { "@types/ws": "^8.18.1", "ws": "^8.19.0" }, "peerDependencies": { "effect": "^4.0.0-beta.46" } }, "sha512-Yzci82XbZ1W3tuiownsJawrJZTGeTrTZKLD0uxdBWCBzlVyqDwoSwRwO5qh33DurJj9B7iS8MDf14fpGRBPNGQ=="], "@electron/asar": ["@electron/asar@3.4.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA=="], @@ -2889,7 +2889,7 @@ "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "effect": ["effect@4.0.0-beta.43", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ=="], + "effect": ["effect@4.0.0-beta.46", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-3f6gXvvUMtEueCRY0tU76Vq2Pej1SAwwE+s0Owd5nD53yS5n4RZhUA1rlCGFuSbQFA225pGy8vO72+lpvu7u5A=="], "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], @@ -5509,6 +5509,10 @@ "@solidjs/start/vite-plugin-solid": ["vite-plugin-solid@2.11.11", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-YMZCXsLw9kyuvQFEdwLP27fuTQJLmjNoHy90AOJnbRuJ6DwShUxKFo38gdFrWn9v11hnGicKCZEaeI/TFs6JKw=="], + "@standard-community/standard-json/effect": ["effect@4.0.0-beta.43", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ=="], + + "@standard-community/standard-openapi/effect": ["effect@4.0.0-beta.43", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ=="], + "@tailwindcss/oxide/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.9.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA=="], @@ -6435,6 +6439,10 @@ "@solidjs/start/shiki/@shikijs/types": ["@shikijs/types@1.29.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw=="], + "@standard-community/standard-json/effect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + + "@standard-community/standard-openapi/effect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], "@vitest/expect/@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.2.4", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA=="], diff --git a/package.json b/package.json index c0d3a568f..922133b40 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "packages/slack" ], "catalog": { - "@effect/platform-node": "4.0.0-beta.43", + "@effect/platform-node": "4.0.0-beta.46", "@types/bun": "1.3.11", "@types/cross-spawn": "6.0.6", "@octokit/rest": "22.0.0", @@ -47,7 +47,7 @@ "dompurify": "3.3.1", "drizzle-kit": "1.0.0-beta.19-d95b7a4", "drizzle-orm": "1.0.0-beta.19-d95b7a4", - "effect": "4.0.0-beta.43", + "effect": "4.0.0-beta.46", "ai": "6.0.149", "cross-spawn": "7.0.6", "hono": "4.10.7", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 7cce13190..9f428854a 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -43,7 +43,7 @@ }, "devDependencies": { "@babel/core": "7.28.4", - "@effect/language-service": "0.79.0", + "@effect/language-service": "0.84.2", "@octokit/webhooks-types": "7.6.1", "@opencode-ai/script": "workspace:*", "@parcel/watcher-darwin-arm64": "2.5.1", diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index dacf55b07..8ada3f738 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -23,7 +23,7 @@ export namespace Foo { readonly get: (id: FooID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Foo") {} + export class Service extends Context.Service()("@opencode/Foo") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/account/index.ts b/packages/opencode/src/account/index.ts index 0aca85782..ad4d30863 100644 --- a/packages/opencode/src/account/index.ts +++ b/packages/opencode/src/account/index.ts @@ -1,4 +1,4 @@ -import { Cache, Clock, Duration, Effect, Layer, Option, Schema, SchemaGetter, ServiceMap } from "effect" +import { Cache, Clock, Duration, Effect, Layer, Option, Schema, SchemaGetter, Context } from "effect" import { FetchHttpClient, HttpClient, @@ -181,7 +181,7 @@ export namespace Account { readonly poll: (input: Login) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Account") {} + export class Service extends Context.Service()("@opencode/Account") {} export const layer: Layer.Layer = Layer.effect( Service, diff --git a/packages/opencode/src/account/repo.ts b/packages/opencode/src/account/repo.ts index 4dbb9cab4..b2b084c08 100644 --- a/packages/opencode/src/account/repo.ts +++ b/packages/opencode/src/account/repo.ts @@ -1,5 +1,5 @@ import { eq } from "drizzle-orm" -import { Effect, Layer, Option, Schema, ServiceMap } from "effect" +import { Effect, Layer, Option, Schema, Context } from "effect" import { Database } from "@/storage/db" import { AccountStateTable, AccountTable } from "./account.sql" @@ -38,7 +38,7 @@ export namespace AccountRepo { } } -export class AccountRepo extends ServiceMap.Service()("@opencode/AccountRepo") { +export class AccountRepo extends Context.Service()("@opencode/AccountRepo") { static readonly layer: Layer.Layer = Layer.effect( AccountRepo, Effect.gen(function* () { diff --git a/packages/opencode/src/account/schema.ts b/packages/opencode/src/account/schema.ts index f8b3c2cf9..222296ff1 100644 --- a/packages/opencode/src/account/schema.ts +++ b/packages/opencode/src/account/schema.ts @@ -1,42 +1,22 @@ import { Schema } from "effect" import type * as HttpClientError from "effect/unstable/http/HttpClientError" -import { withStatics } from "@/util/schema" - -export const AccountID = Schema.String.pipe( - Schema.brand("AccountID"), - withStatics((s) => ({ make: (id: string) => s.makeUnsafe(id) })), -) +export const AccountID = Schema.String.pipe(Schema.brand("AccountID")) export type AccountID = Schema.Schema.Type -export const OrgID = Schema.String.pipe( - Schema.brand("OrgID"), - withStatics((s) => ({ make: (id: string) => s.makeUnsafe(id) })), -) +export const OrgID = Schema.String.pipe(Schema.brand("OrgID")) export type OrgID = Schema.Schema.Type -export const AccessToken = Schema.String.pipe( - Schema.brand("AccessToken"), - withStatics((s) => ({ make: (token: string) => s.makeUnsafe(token) })), -) +export const AccessToken = Schema.String.pipe(Schema.brand("AccessToken")) export type AccessToken = Schema.Schema.Type -export const RefreshToken = Schema.String.pipe( - Schema.brand("RefreshToken"), - withStatics((s) => ({ make: (token: string) => s.makeUnsafe(token) })), -) +export const RefreshToken = Schema.String.pipe(Schema.brand("RefreshToken")) export type RefreshToken = Schema.Schema.Type -export const DeviceCode = Schema.String.pipe( - Schema.brand("DeviceCode"), - withStatics((s) => ({ make: (code: string) => s.makeUnsafe(code) })), -) +export const DeviceCode = Schema.String.pipe(Schema.brand("DeviceCode")) export type DeviceCode = Schema.Schema.Type -export const UserCode = Schema.String.pipe( - Schema.brand("UserCode"), - withStatics((s) => ({ make: (code: string) => s.makeUnsafe(code) })), -) +export const UserCode = Schema.String.pipe(Schema.brand("UserCode")) export type UserCode = Schema.Schema.Type export class Info extends Schema.Class("Account")({ diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 2a8bed092..93b393f13 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -19,7 +19,7 @@ import { Global } from "@/global" import path from "path" import { Plugin } from "@/plugin" import { Skill } from "../skill" -import { Effect, ServiceMap, Layer } from "effect" +import { Effect, Context, Layer } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -67,7 +67,7 @@ export namespace Agent { type State = Omit - export class Service extends ServiceMap.Service()("@opencode/Agent") {} + export class Service extends Context.Service()("@opencode/Agent") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/auth/index.ts b/packages/opencode/src/auth/index.ts index 2a9fb6c19..2e83fe287 100644 --- a/packages/opencode/src/auth/index.ts +++ b/packages/opencode/src/auth/index.ts @@ -1,5 +1,5 @@ import path from "path" -import { Effect, Layer, Record, Result, Schema, ServiceMap } from "effect" +import { Effect, Layer, Record, Result, Schema, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { zod } from "@/util/effect-zod" import { Global } from "../global" @@ -49,7 +49,7 @@ export namespace Auth { readonly remove: (key: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Auth") {} + export class Service extends Context.Service()("@opencode/Auth") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/bus/index.ts b/packages/opencode/src/bus/index.ts index 707c57c0c..0638777bd 100644 --- a/packages/opencode/src/bus/index.ts +++ b/packages/opencode/src/bus/index.ts @@ -1,5 +1,5 @@ import z from "zod" -import { Effect, Exit, Layer, PubSub, Scope, ServiceMap, Stream } from "effect" +import { Effect, Exit, Layer, PubSub, Scope, Context, Stream } from "effect" import { EffectLogger } from "@/effect/logger" import { Log } from "../util/log" import { BusEvent } from "./bus-event" @@ -42,7 +42,7 @@ export namespace Bus { readonly subscribeAllCallback: (callback: (event: any) => unknown) => Effect.Effect<() => void> } - export class Service extends ServiceMap.Service()("@opencode/Bus") {} + export class Service extends Context.Service()("@opencode/Bus") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts index 4c08dbbb3..0c5ef67f4 100644 --- a/packages/opencode/src/command/index.ts +++ b/packages/opencode/src/command/index.ts @@ -1,8 +1,9 @@ import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" +import type { InstanceContext } from "@/project/instance" import { SessionID, MessageID } from "@/session/schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { EffectLogger } from "@/effect/logger" import z from "zod" import { Config } from "../config/config" @@ -71,7 +72,7 @@ export namespace Command { readonly list: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Command") {} + export class Service extends Context.Service()("@opencode/Command") {} export const layer = Layer.effect( Service, @@ -80,7 +81,7 @@ export namespace Command { const mcp = yield* MCP.Service const skill = yield* Skill.Service - const init = Effect.fn("Command.state")(function* (ctx) { + const init = Effect.fn("Command.state")(function* (ctx: InstanceContext) { const cfg = yield* config.get() const commands: Record = {} diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index eabf971f4..086d51abd 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -37,7 +37,7 @@ import type { ConsoleState } from "./console-state" import { AppFileSystem } from "@/filesystem" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" -import { Duration, Effect, Layer, Option, ServiceMap } from "effect" +import { Duration, Effect, Layer, Option, Context } from "effect" import { Flock } from "@/util/flock" import { isPathPluginSpec, parsePluginSpecifier, resolvePathPluginTarget } from "@/plugin/shared" import { Npm } from "@/npm" @@ -1127,7 +1127,7 @@ export namespace Config { readonly waitForDependencies: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Config") {} + export class Service extends Context.Service()("@opencode/Config") {} function globalConfigFile() { const candidates = ["opencode.jsonc", "opencode.json", "config.json"].map((file) => diff --git a/packages/opencode/src/control-plane/schema.ts b/packages/opencode/src/control-plane/schema.ts index 7618f46ad..7262a380b 100644 --- a/packages/opencode/src/control-plane/schema.ts +++ b/packages/opencode/src/control-plane/schema.ts @@ -10,8 +10,7 @@ export type WorkspaceID = typeof workspaceIdSchema.Type export const WorkspaceID = workspaceIdSchema.pipe( withStatics((schema: typeof workspaceIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), - ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending("workspace", id)), + ascending: (id?: string) => schema.make(Identifier.ascending("workspace", id)), zod: Identifier.schema("workspace").pipe(z.custom()), })), ) diff --git a/packages/opencode/src/control-plane/workspace-context.ts b/packages/opencode/src/control-plane/workspace-context.ts index 37204d17d..173ec6178 100644 --- a/packages/opencode/src/control-plane/workspace-context.ts +++ b/packages/opencode/src/control-plane/workspace-context.ts @@ -1,11 +1,11 @@ -import { Context } from "../util/context" +import { LocalContext } from "../util/local-context" import type { WorkspaceID } from "../control-plane/schema" export interface WorkspaceContext { workspaceID: string } -const context = Context.create("instance") +const context = LocalContext.create("instance") export const WorkspaceContext = { async provide(input: { workspaceID: WorkspaceID; fn: () => R }): Promise { diff --git a/packages/opencode/src/effect/cross-spawn-spawner.ts b/packages/opencode/src/effect/cross-spawn-spawner.ts index 76982a613..5e25263a0 100644 --- a/packages/opencode/src/effect/cross-spawn-spawner.ts +++ b/packages/opencode/src/effect/cross-spawn-spawner.ts @@ -402,6 +402,7 @@ export const make = Effect.gen(function* () { const fd = yield* setupFds(command, proc, extra) const out = setupOutput(command, proc, sout, serr) + let ref = true return makeHandle({ pid: ProcessId(proc.pid!), stdin: yield* setupStdin(command, proc, sin), @@ -432,6 +433,18 @@ export const make = Effect.gen(function* () { orElse: () => send("SIGKILL").pipe(Effect.andThen(Deferred.await(signal)), Effect.asVoid), }) }, + unref: Effect.sync(() => { + if (ref) { + proc.unref() + ref = false + } + return Effect.sync(() => { + if (!ref) { + proc.ref() + ref = true + } + }) + }), }) } case "PipedCommand": { diff --git a/packages/opencode/src/effect/instance-ref.ts b/packages/opencode/src/effect/instance-ref.ts index 07a510a4f..301316c77 100644 --- a/packages/opencode/src/effect/instance-ref.ts +++ b/packages/opencode/src/effect/instance-ref.ts @@ -1,10 +1,10 @@ -import { ServiceMap } from "effect" +import { Context } from "effect" import type { InstanceContext } from "@/project/instance" -export const InstanceRef = ServiceMap.Reference("~opencode/InstanceRef", { +export const InstanceRef = Context.Reference("~opencode/InstanceRef", { defaultValue: () => undefined, }) -export const WorkspaceRef = ServiceMap.Reference("~opencode/WorkspaceRef", { +export const WorkspaceRef = Context.Reference("~opencode/WorkspaceRef", { defaultValue: () => undefined, }) diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index a73ca17c5..b3392d156 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -1,7 +1,7 @@ -import { Effect, Fiber, ScopedCache, Scope, ServiceMap } from "effect" +import { Effect, Fiber, ScopedCache, Scope, Context } from "effect" import { EffectLogger } from "@/effect/logger" import { Instance, type InstanceContext } from "@/project/instance" -import { Context } from "@/util/context" +import { LocalContext } from "@/util/local-context" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { registerDisposer } from "./instance-registry" import { WorkspaceContext } from "@/control-plane/workspace-context" @@ -18,10 +18,10 @@ export namespace InstanceState { try { return Instance.bind(fn) } catch (err) { - if (!(err instanceof Context.NotFound)) throw err + if (!(err instanceof LocalContext.NotFound)) throw err } const fiber = Fiber.getCurrent() - const ctx = fiber ? ServiceMap.getReferenceUnsafe(fiber.services, InstanceRef) : undefined + const ctx = fiber ? Context.getReferenceUnsafe(fiber.context, InstanceRef) : undefined if (!ctx) return fn return ((...args: any[]) => Instance.restore(ctx, () => fn(...args))) as F } diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index 7dffa8cae..532278612 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -1,7 +1,7 @@ import { Effect, Layer, ManagedRuntime } from "effect" -import * as ServiceMap from "effect/ServiceMap" +import * as Context from "effect/Context" import { Instance } from "@/project/instance" -import { Context } from "@/util/context" +import { LocalContext } from "@/util/local-context" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { Observability } from "./oltp" import { WorkspaceContext } from "@/control-plane/workspace-context" @@ -14,12 +14,12 @@ export function attach(effect: Effect.Effect): Effect.Effect(service: ServiceMap.Service, layer: Layer.Layer) { +export function makeRuntime(service: Context.Service, layer: Layer.Layer) { let rt: ManagedRuntime.ManagedRuntime | undefined const getRuntime = () => (rt ??= ManagedRuntime.make(Layer.merge(layer, Observability.layer), { memoMap })) diff --git a/packages/opencode/src/file/index.ts b/packages/opencode/src/file/index.ts index 47d15fbb0..80ed2b7ef 100644 --- a/packages/opencode/src/file/index.ts +++ b/packages/opencode/src/file/index.ts @@ -3,7 +3,7 @@ import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@/filesystem" import { Git } from "@/git" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { formatPatch, structuredPatch } from "diff" import fuzzysort from "fuzzysort" import ignore from "ignore" @@ -337,7 +337,7 @@ export namespace File { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/File") {} + export class Service extends Context.Service()("@opencode/File") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts index 4f02c97b1..4d0fc5598 100644 --- a/packages/opencode/src/file/ripgrep.ts +++ b/packages/opencode/src/file/ripgrep.ts @@ -3,7 +3,7 @@ import path from "path" import { Global } from "../global" import fs from "fs/promises" import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import * as Stream from "effect/Stream" import { ChildProcess } from "effect/unstable/process" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" @@ -291,7 +291,7 @@ export namespace Ripgrep { }) => Stream.Stream } - export class Service extends ServiceMap.Service()("@opencode/Ripgrep") {} + export class Service extends Context.Service()("@opencode/Ripgrep") {} export const layer: Layer.Layer = Layer.effect( Service, diff --git a/packages/opencode/src/file/time.ts b/packages/opencode/src/file/time.ts index 6af71e91a..05a70f80e 100644 --- a/packages/opencode/src/file/time.ts +++ b/packages/opencode/src/file/time.ts @@ -1,4 +1,4 @@ -import { DateTime, Effect, Layer, Option, Semaphore, ServiceMap } from "effect" +import { DateTime, Effect, Layer, Option, Semaphore, Context } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@/filesystem" @@ -37,7 +37,7 @@ export namespace FileTime { readonly withLock: (filepath: string, fn: () => Effect.Effect) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/FileTime") {} + export class Service extends Context.Service()("@opencode/FileTime") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/file/watcher.ts b/packages/opencode/src/file/watcher.ts index dd8b5798c..609543fb0 100644 --- a/packages/opencode/src/file/watcher.ts +++ b/packages/opencode/src/file/watcher.ts @@ -1,4 +1,4 @@ -import { Cause, Effect, Layer, Scope, ServiceMap } from "effect" +import { Cause, Effect, Layer, Scope, Context } from "effect" // @ts-ignore import { createWrapper } from "@parcel/watcher/wrapper" import type ParcelWatcher from "@parcel/watcher" @@ -65,7 +65,7 @@ export namespace FileWatcher { readonly init: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/FileWatcher") {} + export class Service extends Context.Service()("@opencode/FileWatcher") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/filesystem/index.ts b/packages/opencode/src/filesystem/index.ts index 01fdcd2e5..2c3964ec2 100644 --- a/packages/opencode/src/filesystem/index.ts +++ b/packages/opencode/src/filesystem/index.ts @@ -3,7 +3,7 @@ import { dirname, join, relative, resolve as pathResolve } from "path" import { realpathSync } from "fs" import * as NFS from "fs/promises" import { lookup } from "mime-types" -import { Effect, FileSystem, Layer, Schema, ServiceMap } from "effect" +import { Effect, FileSystem, Layer, Schema, Context } from "effect" import type { PlatformError } from "effect/PlatformError" import { Glob } from "../util/glob" @@ -36,7 +36,7 @@ export namespace AppFileSystem { readonly globMatch: (pattern: string, filepath: string) => boolean } - export class Service extends ServiceMap.Service()("@opencode/FileSystem") {} + export class Service extends Context.Service()("@opencode/FileSystem") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/format/index.ts b/packages/opencode/src/format/index.ts index 56df63cf9..36844d351 100644 --- a/packages/opencode/src/format/index.ts +++ b/packages/opencode/src/format/index.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { InstanceState } from "@/effect/instance-state" @@ -31,7 +31,7 @@ export namespace Format { readonly file: (filepath: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Format") {} + export class Service extends Context.Service()("@opencode/Format") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/git/index.ts b/packages/opencode/src/git/index.ts index 10c96d560..de84fdd74 100644 --- a/packages/opencode/src/git/index.ts +++ b/packages/opencode/src/git/index.ts @@ -1,5 +1,5 @@ import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" -import { Effect, Layer, ServiceMap, Stream } from "effect" +import { Effect, Layer, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { makeRuntime } from "@/effect/run-service" @@ -80,7 +80,7 @@ export namespace Git { return "modified" } - export class Service extends ServiceMap.Service()("@opencode/Git") {} + export class Service extends Context.Service()("@opencode/Git") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index f4cd4d09f..06b673217 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, Schema, ServiceMap, Stream } from "effect" +import { Effect, Layer, Schema, Context, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { makeRuntime } from "@/effect/run-service" @@ -91,7 +91,7 @@ export namespace Installation { readonly upgrade: (method: Method, target: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Installation") {} + export class Service extends Context.Service()("@opencode/Installation") {} export const layer: Layer.Layer = Layer.effect( diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts index 793a4475d..8e34a8854 100644 --- a/packages/opencode/src/lsp/index.ts +++ b/packages/opencode/src/lsp/index.ts @@ -11,7 +11,7 @@ import { Instance } from "../project/instance" import { Flag } from "@/flag/flag" import { Process } from "../util/process" import { spawn as lspspawn } from "./launch" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -156,7 +156,7 @@ export namespace LSP { readonly outgoingCalls: (input: LocInput) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/LSP") {} + export class Service extends Context.Service()("@opencode/LSP") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/mcp/auth.ts b/packages/opencode/src/mcp/auth.ts index e9c3db8a9..7f33f32b8 100644 --- a/packages/opencode/src/mcp/auth.ts +++ b/packages/opencode/src/mcp/auth.ts @@ -1,7 +1,7 @@ import path from "path" import z from "zod" import { Global } from "../global" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { AppFileSystem } from "@/filesystem" import { makeRuntime } from "@/effect/run-service" @@ -49,7 +49,7 @@ export namespace McpAuth { readonly isTokenExpired: (mcpName: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/McpAuth") {} + export class Service extends Context.Service()("@opencode/McpAuth") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index c175ea19e..696a662c1 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -24,7 +24,7 @@ import { BusEvent } from "../bus/bus-event" import { Bus } from "@/bus" import { TuiEvent } from "@/cli/cmd/tui/event" import open from "open" -import { Effect, Exit, Layer, Option, ServiceMap, Stream } from "effect" +import { Effect, Exit, Layer, Option, Context, Stream } from "effect" import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -240,7 +240,7 @@ export namespace MCP { readonly getAuthStatus: (mcpName: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/MCP") {} + export class Service extends Context.Service()("@opencode/MCP") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/permission/index.ts b/packages/opencode/src/permission/index.ts index b2cc0f9bb..a45aaf59d 100644 --- a/packages/opencode/src/permission/index.ts +++ b/packages/opencode/src/permission/index.ts @@ -10,7 +10,7 @@ import { PermissionTable } from "@/session/session.sql" import { Database, eq } from "@/storage/db" import { Log } from "@/util/log" import { Wildcard } from "@/util/wildcard" -import { Deferred, Effect, Layer, Schema, ServiceMap } from "effect" +import { Deferred, Effect, Layer, Schema, Context } from "effect" import os from "os" import z from "zod" import { evaluate as evalRule } from "./evaluate" @@ -135,7 +135,7 @@ export namespace Permission { return evalRule(permission, pattern, ...rulesets) } - export class Service extends ServiceMap.Service()("@opencode/Permission") {} + export class Service extends Context.Service()("@opencode/Permission") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/permission/schema.ts b/packages/opencode/src/permission/schema.ts index bfa2b4957..2f1190a23 100644 --- a/packages/opencode/src/permission/schema.ts +++ b/packages/opencode/src/permission/schema.ts @@ -5,12 +5,8 @@ import { Identifier } from "@/id/id" import { Newtype } from "@/util/schema" export class PermissionID extends Newtype()("PermissionID", Schema.String) { - static make(id: string): PermissionID { - return this.makeUnsafe(id) - } - static ascending(id?: string): PermissionID { - return this.makeUnsafe(Identifier.ascending("permission", id)) + return this.make(Identifier.ascending("permission", id)) } static readonly zod = Identifier.schema("permission") as unknown as z.ZodType diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index ae75bc6a1..5de77aee3 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -11,7 +11,7 @@ import { CopilotAuthPlugin } from "./github-copilot/copilot" import { gitlabAuthPlugin as GitlabAuthPlugin } from "opencode-gitlab-auth" import { PoeAuthPlugin } from "opencode-poe-auth" import { CloudflareAIGatewayAuthPlugin, CloudflareWorkersAuthPlugin } from "./cloudflare" -import { Effect, Layer, ServiceMap, Stream } from "effect" +import { Effect, Layer, Context, Stream } from "effect" import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -45,7 +45,7 @@ export namespace Plugin { readonly init: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Plugin") {} + export class Service extends Context.Service()("@opencode/Plugin") {} // Built-in plugins that are directly imported (not installed from npm) const INTERNAL_PLUGINS: PluginInstance[] = [ diff --git a/packages/opencode/src/project/instance.ts b/packages/opencode/src/project/instance.ts index 60665a99a..8d2d51db6 100644 --- a/packages/opencode/src/project/instance.ts +++ b/packages/opencode/src/project/instance.ts @@ -3,7 +3,7 @@ import { disposeInstance } from "@/effect/instance-registry" import { Filesystem } from "@/util/filesystem" import { iife } from "@/util/iife" import { Log } from "@/util/log" -import { Context } from "../util/context" +import { LocalContext } from "../util/local-context" import { Project } from "./project" import { WorkspaceContext } from "@/control-plane/workspace-context" import { State } from "./state" @@ -14,7 +14,7 @@ export interface InstanceContext { project: Project.Info } -const context = Context.create("instance") +const context = LocalContext.create("instance") const cache = new Map>() const disposal = { diff --git a/packages/opencode/src/project/project.ts b/packages/opencode/src/project/project.ts index 8db8df5d5..df07ca221 100644 --- a/packages/opencode/src/project/project.ts +++ b/packages/opencode/src/project/project.ts @@ -8,7 +8,7 @@ import { BusEvent } from "@/bus/bus-event" import { GlobalBus } from "@/bus/global" import { which } from "../util/which" import { ProjectID } from "./schema" -import { Effect, Layer, Path, Scope, ServiceMap, Stream } from "effect" +import { Effect, Layer, Path, Scope, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { NodeFileSystem, NodePath } from "@effect/platform-node" import { makeRuntime } from "@/effect/run-service" @@ -100,7 +100,7 @@ export namespace Project { readonly removeSandbox: (id: ProjectID, directory: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Project") {} + export class Service extends Context.Service()("@opencode/Project") {} type GitResult = { code: number; text: string; stderr: string } diff --git a/packages/opencode/src/project/schema.ts b/packages/opencode/src/project/schema.ts index e904ff5a8..d10c82e2c 100644 --- a/packages/opencode/src/project/schema.ts +++ b/packages/opencode/src/project/schema.ts @@ -9,8 +9,7 @@ export type ProjectID = typeof projectIdSchema.Type export const ProjectID = projectIdSchema.pipe( withStatics((schema: typeof projectIdSchema) => ({ - global: schema.makeUnsafe("global"), - make: (id: string) => schema.makeUnsafe(id), + global: schema.make("global"), zod: z.string().pipe(z.custom()), })), ) diff --git a/packages/opencode/src/project/vcs.ts b/packages/opencode/src/project/vcs.ts index 0e430d41b..1b1f21f90 100644 --- a/packages/opencode/src/project/vcs.ts +++ b/packages/opencode/src/project/vcs.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, ServiceMap, Stream } from "effect" +import { Effect, Layer, Context, Stream } from "effect" import { formatPatch, structuredPatch } from "diff" import path from "path" import { Bus } from "@/bus" @@ -151,7 +151,7 @@ export namespace Vcs { root: Git.Base | undefined } - export class Service extends ServiceMap.Service()("@opencode/Vcs") {} + export class Service extends Context.Service()("@opencode/Vcs") {} export const layer: Layer.Layer = Layer.effect( Service, diff --git a/packages/opencode/src/provider/auth.ts b/packages/opencode/src/provider/auth.ts index 38ef4b11f..3823baf13 100644 --- a/packages/opencode/src/provider/auth.ts +++ b/packages/opencode/src/provider/auth.ts @@ -5,7 +5,7 @@ import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { Plugin } from "../plugin" import { ProviderID } from "./schema" -import { Array as Arr, Effect, Layer, Record, Result, ServiceMap } from "effect" +import { Array as Arr, Effect, Layer, Record, Result, Context } from "effect" import z from "zod" export namespace ProviderAuth { @@ -109,7 +109,7 @@ export namespace ProviderAuth { pending: Map } - export class Service extends ServiceMap.Service()("@opencode/ProviderAuth") {} + export class Service extends Context.Service()("@opencode/ProviderAuth") {} export const layer: Layer.Layer = Layer.effect( Service, diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 858306b62..e401a067c 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -19,7 +19,7 @@ import { iife } from "@/util/iife" import { Global } from "../global" import path from "path" import { Filesystem } from "../util/filesystem" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -925,7 +925,7 @@ export namespace Provider { varsLoaders: Record } - export class Service extends ServiceMap.Service()("@opencode/Provider") {} + export class Service extends Context.Service()("@opencode/Provider") {} function cost(c: ModelsDev.Model["cost"]): Model["cost"] { const result: Model["cost"] = { diff --git a/packages/opencode/src/provider/schema.ts b/packages/opencode/src/provider/schema.ts index 71c8a1029..4490ca289 100644 --- a/packages/opencode/src/provider/schema.ts +++ b/packages/opencode/src/provider/schema.ts @@ -9,20 +9,19 @@ export type ProviderID = typeof providerIdSchema.Type export const ProviderID = providerIdSchema.pipe( withStatics((schema: typeof providerIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), zod: z.string().pipe(z.custom()), // Well-known providers - opencode: schema.makeUnsafe("opencode"), - anthropic: schema.makeUnsafe("anthropic"), - openai: schema.makeUnsafe("openai"), - google: schema.makeUnsafe("google"), - googleVertex: schema.makeUnsafe("google-vertex"), - githubCopilot: schema.makeUnsafe("github-copilot"), - amazonBedrock: schema.makeUnsafe("amazon-bedrock"), - azure: schema.makeUnsafe("azure"), - openrouter: schema.makeUnsafe("openrouter"), - mistral: schema.makeUnsafe("mistral"), - gitlab: schema.makeUnsafe("gitlab"), + opencode: schema.make("opencode"), + anthropic: schema.make("anthropic"), + openai: schema.make("openai"), + google: schema.make("google"), + googleVertex: schema.make("google-vertex"), + githubCopilot: schema.make("github-copilot"), + amazonBedrock: schema.make("amazon-bedrock"), + azure: schema.make("azure"), + openrouter: schema.make("openrouter"), + mistral: schema.make("mistral"), + gitlab: schema.make("gitlab"), })), ) @@ -32,7 +31,6 @@ export type ModelID = typeof modelIdSchema.Type export const ModelID = modelIdSchema.pipe( withStatics((schema: typeof modelIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), zod: z.string().pipe(z.custom()), })), ) diff --git a/packages/opencode/src/pty/index.ts b/packages/opencode/src/pty/index.ts index 0358c72e8..a563bb954 100644 --- a/packages/opencode/src/pty/index.ts +++ b/packages/opencode/src/pty/index.ts @@ -10,7 +10,7 @@ import { lazy } from "@opencode-ai/util/lazy" import { Shell } from "@/shell/shell" import { Plugin } from "@/plugin" import { PtyID } from "./schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { EffectLogger } from "@/effect/logger" export namespace Pty { @@ -113,7 +113,7 @@ export namespace Pty { ) => Effect.Effect<{ onMessage: (message: string | ArrayBuffer) => void; onClose: () => void } | undefined> } - export class Service extends ServiceMap.Service()("@opencode/Pty") {} + export class Service extends Context.Service()("@opencode/Pty") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/pty/schema.ts b/packages/opencode/src/pty/schema.ts index 47b3196f0..deb498891 100644 --- a/packages/opencode/src/pty/schema.ts +++ b/packages/opencode/src/pty/schema.ts @@ -10,8 +10,7 @@ export type PtyID = typeof ptyIdSchema.Type export const PtyID = ptyIdSchema.pipe( withStatics((schema: typeof ptyIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), - ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending("pty", id)), + ascending: (id?: string) => schema.make(Identifier.ascending("pty", id)), zod: Identifier.schema("pty").pipe(z.custom()), })), ) diff --git a/packages/opencode/src/question/index.ts b/packages/opencode/src/question/index.ts index 615c699ce..ca83bb7b2 100644 --- a/packages/opencode/src/question/index.ts +++ b/packages/opencode/src/question/index.ts @@ -1,4 +1,4 @@ -import { Deferred, Effect, Layer, Schema, ServiceMap } from "effect" +import { Deferred, Effect, Layer, Schema, Context } from "effect" import { Bus } from "@/bus" import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" @@ -104,7 +104,7 @@ export namespace Question { readonly list: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Question") {} + export class Service extends Context.Service()("@opencode/Question") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/question/schema.ts b/packages/opencode/src/question/schema.ts index 38b930af1..e5a0496c9 100644 --- a/packages/opencode/src/question/schema.ts +++ b/packages/opencode/src/question/schema.ts @@ -5,12 +5,8 @@ import { Identifier } from "@/id/id" import { Newtype } from "@/util/schema" export class QuestionID extends Newtype()("QuestionID", Schema.String) { - static make(id: string): QuestionID { - return this.makeUnsafe(id) - } - static ascending(id?: string): QuestionID { - return this.makeUnsafe(Identifier.ascending("question", id)) + return this.make(Identifier.ascending("question", id)) } static readonly zod = Identifier.schema("question") as unknown as z.ZodType diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 937aa7132..b280971c7 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -15,7 +15,7 @@ import { Plugin } from "@/plugin" import { Config } from "@/config/config" import { NotFoundError } from "@/storage/db" import { ModelID, ProviderID } from "@/provider/schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { InstanceState } from "@/effect/instance-state" import { isOverflow as overflow } from "./overflow" @@ -58,7 +58,7 @@ export namespace SessionCompaction { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionCompaction") {} + export class Service extends Context.Service()("@opencode/SessionCompaction") {} export const layer: Layer.Layer< Service, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index ba073cb1a..d28a1988d 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -29,7 +29,7 @@ import type { Provider } from "@/provider/provider" import { Permission } from "@/permission" import { Global } from "@/global" import type { LanguageModelV2Usage } from "@ai-sdk/provider" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" export namespace Session { @@ -354,7 +354,7 @@ export namespace Session { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Session") {} + export class Service extends Context.Service()("@opencode/Session") {} type Patch = z.infer["info"] diff --git a/packages/opencode/src/session/instruction.ts b/packages/opencode/src/session/instruction.ts index fc90093e9..9b01c9524 100644 --- a/packages/opencode/src/session/instruction.ts +++ b/packages/opencode/src/session/instruction.ts @@ -1,6 +1,6 @@ import os from "os" import path from "path" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http" import { Config } from "@/config/config" import { InstanceState } from "@/effect/instance-state" @@ -64,7 +64,7 @@ export namespace Instruction { ) => Effect.Effect<{ filepath: string; content: string }[], AppFileSystem.Error> } - export class Service extends ServiceMap.Service()("@opencode/Instruction") {} + export class Service extends Context.Service()("@opencode/Instruction") {} export const layer: Layer.Layer = Layer.effect( diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index 22fc9b1d5..f6e5c9a3f 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -1,6 +1,6 @@ import { Provider } from "@/provider/provider" import { Log } from "@/util/log" -import { Cause, Effect, Layer, Record, ServiceMap } from "effect" +import { Cause, Effect, Layer, Record, Context } from "effect" import * as Queue from "effect/Queue" import * as Stream from "effect/Stream" import { streamText, wrapLanguageModel, type ModelMessage, type Tool, tool, jsonSchema } from "ai" @@ -51,7 +51,7 @@ export namespace LLM { readonly stream: (input: StreamInput) => Stream.Stream } - export class Service extends ServiceMap.Service()("@opencode/LLM") {} + export class Service extends Context.Service()("@opencode/LLM") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index d507eb675..be0977c1d 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -1,4 +1,4 @@ -import { Cause, Deferred, Effect, Layer, ServiceMap } from "effect" +import { Cause, Deferred, Effect, Layer, Context } from "effect" import * as Stream from "effect/Stream" import { Agent } from "@/agent/agent" import { Bus } from "@/bus" @@ -76,7 +76,7 @@ export namespace SessionProcessor { type StreamEvent = Event - export class Service extends ServiceMap.Service()("@opencode/SessionProcessor") {} + export class Service extends Context.Service()("@opencode/SessionProcessor") {} export const layer: Layer.Layer< Service, diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index a1bdcb1b9..384147a12 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -43,7 +43,7 @@ import { AppFileSystem } from "@/filesystem" import { Truncate } from "@/tool/truncate" import { decodeDataUrl } from "@/util/data-url" import { Process } from "@/util/process" -import { Cause, Effect, Exit, Layer, Option, Scope, ServiceMap } from "effect" +import { Cause, Effect, Exit, Layer, Option, Scope, Context } from "effect" import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -76,7 +76,7 @@ export namespace SessionPrompt { readonly resolvePromptParts: (template: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionPrompt") {} + export class Service extends Context.Service()("@opencode/SessionPrompt") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts index 1216362ca..416b8555d 100644 --- a/packages/opencode/src/session/revert.ts +++ b/packages/opencode/src/session/revert.ts @@ -1,5 +1,5 @@ import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { Bus } from "../bus" import { Snapshot } from "../snapshot" @@ -29,7 +29,7 @@ export namespace SessionRevert { readonly cleanup: (session: Session.Info) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionRevert") {} + export class Service extends Context.Service()("@opencode/SessionRevert") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/run-state.ts b/packages/opencode/src/session/run-state.ts index 3c2022bd0..2c570f520 100644 --- a/packages/opencode/src/session/run-state.ts +++ b/packages/opencode/src/session/run-state.ts @@ -1,7 +1,7 @@ import { InstanceState } from "@/effect/instance-state" import { Runner } from "@/effect/runner" import { makeRuntime } from "@/effect/run-service" -import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Effect, Layer, Scope, Context } from "effect" import { Session } from "." import { MessageV2 } from "./message-v2" import { SessionID } from "./schema" @@ -23,7 +23,7 @@ export namespace SessionRunState { ) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionRunState") {} + export class Service extends Context.Service()("@opencode/SessionRunState") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/schema.ts b/packages/opencode/src/session/schema.ts index 540643c49..856ab3114 100644 --- a/packages/opencode/src/session/schema.ts +++ b/packages/opencode/src/session/schema.ts @@ -7,8 +7,7 @@ import { withStatics } from "@/util/schema" export const SessionID = Schema.String.pipe( Schema.brand("SessionID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - descending: (id?: string) => s.makeUnsafe(Identifier.descending("session", id)), + descending: (id?: string) => s.make(Identifier.descending("session", id)), zod: Identifier.schema("session").pipe(z.custom>()), })), ) @@ -18,8 +17,7 @@ export type SessionID = Schema.Schema.Type export const MessageID = Schema.String.pipe( Schema.brand("MessageID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("message", id)), + ascending: (id?: string) => s.make(Identifier.ascending("message", id)), zod: Identifier.schema("message").pipe(z.custom>()), })), ) @@ -29,8 +27,7 @@ export type MessageID = Schema.Schema.Type export const PartID = Schema.String.pipe( Schema.brand("PartID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("part", id)), + ascending: (id?: string) => s.make(Identifier.ascending("part", id)), zod: Identifier.schema("part").pipe(z.custom>()), })), ) diff --git a/packages/opencode/src/session/status.ts b/packages/opencode/src/session/status.ts index d54d8b795..5800cb732 100644 --- a/packages/opencode/src/session/status.ts +++ b/packages/opencode/src/session/status.ts @@ -2,7 +2,7 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" import { InstanceState } from "@/effect/instance-state" import { SessionID } from "./schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import z from "zod" export namespace SessionStatus { @@ -49,7 +49,7 @@ export namespace SessionStatus { readonly set: (sessionID: SessionID, status: Info) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionStatus") {} + export class Service extends Context.Service()("@opencode/SessionStatus") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index 2f07a0f5d..498288d61 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -1,5 +1,5 @@ import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { Bus } from "@/bus" import { Snapshot } from "@/snapshot" @@ -71,7 +71,7 @@ export namespace SessionSummary { readonly computeDiff: (input: { messages: MessageV2.WithParts[] }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionSummary") {} + export class Service extends Context.Service()("@opencode/SessionSummary") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/todo.ts b/packages/opencode/src/session/todo.ts index a7aa49aa3..1fd9cbaa5 100644 --- a/packages/opencode/src/session/todo.ts +++ b/packages/opencode/src/session/todo.ts @@ -1,7 +1,7 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" import { SessionID } from "./schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import z from "zod" import { Database, eq, asc } from "../storage/db" import { TodoTable } from "./session.sql" @@ -31,7 +31,7 @@ export namespace Todo { readonly get: (sessionID: SessionID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionTodo") {} + export class Service extends Context.Service()("@opencode/SessionTodo") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/share/session.ts b/packages/opencode/src/share/session.ts index 1446b5bb4..f98bf14cb 100644 --- a/packages/opencode/src/share/session.ts +++ b/packages/opencode/src/share/session.ts @@ -3,7 +3,7 @@ import { Session } from "@/session" import { SessionID } from "@/session/schema" import { SyncEvent } from "@/sync" import { fn } from "@/util/fn" -import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Effect, Layer, Scope, Context } from "effect" import { Config } from "../config/config" import { Flag } from "../flag/flag" import { ShareNext } from "./share-next" @@ -15,7 +15,7 @@ export namespace SessionShare { readonly unshare: (sessionID: SessionID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionShare") {} + export class Service extends Context.Service()("@opencode/SessionShare") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/share/share-next.ts b/packages/opencode/src/share/share-next.ts index 11fc08e24..ad247f546 100644 --- a/packages/opencode/src/share/share-next.ts +++ b/packages/opencode/src/share/share-next.ts @@ -1,5 +1,5 @@ import type * as SDK from "@opencode-ai/sdk/v2" -import { Effect, Exit, Layer, Option, Schema, Scope, ServiceMap, Stream } from "effect" +import { Effect, Exit, Layer, Option, Schema, Scope, Context, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { Account } from "@/account" import { Bus } from "@/bus" @@ -73,7 +73,7 @@ export namespace ShareNext { readonly remove: (sessionID: SessionID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/ShareNext") {} + export class Service extends Context.Service()("@opencode/ShareNext") {} const db = (fn: (d: Parameters[0] extends (trx: infer D) => any ? D : never) => T) => Effect.sync(() => Database.use(fn)) diff --git a/packages/opencode/src/skill/discovery.ts b/packages/opencode/src/skill/discovery.ts index e10397503..0bc3ee629 100644 --- a/packages/opencode/src/skill/discovery.ts +++ b/packages/opencode/src/skill/discovery.ts @@ -1,5 +1,5 @@ import { NodePath } from "@effect/platform-node" -import { Effect, Layer, Path, Schema, ServiceMap } from "effect" +import { Effect, Layer, Path, Schema, Context } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { withTransientReadRetry } from "@/util/effect-http-client" import { AppFileSystem } from "@/filesystem" @@ -23,7 +23,7 @@ export namespace Discovery { readonly pull: (url: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SkillDiscovery") {} + export class Service extends Context.Service()("@opencode/SkillDiscovery") {} export const layer: Layer.Layer = Layer.effect( diff --git a/packages/opencode/src/skill/index.ts b/packages/opencode/src/skill/index.ts index cde36dd52..be74c0b34 100644 --- a/packages/opencode/src/skill/index.ts +++ b/packages/opencode/src/skill/index.ts @@ -2,7 +2,7 @@ import os from "os" import path from "path" import { pathToFileURL } from "url" import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { NamedError } from "@opencode-ai/util/error" import type { Agent } from "@/agent/agent" import { Bus } from "@/bus" @@ -187,7 +187,7 @@ export namespace Skill { log.info("init", { count: Object.keys(state.skills).length }) }) - export class Service extends ServiceMap.Service()("@opencode/Skill") {} + export class Service extends Context.Service()("@opencode/Skill") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts index 569c834bf..834cdde25 100644 --- a/packages/opencode/src/snapshot/index.ts +++ b/packages/opencode/src/snapshot/index.ts @@ -1,4 +1,4 @@ -import { Cause, Duration, Effect, Layer, Schedule, Semaphore, ServiceMap, Stream } from "effect" +import { Cause, Duration, Effect, Layer, Schedule, Semaphore, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { formatPatch, structuredPatch } from "diff" import path from "path" @@ -57,7 +57,7 @@ export namespace Snapshot { readonly diffFull: (from: string, to: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Snapshot") {} + export class Service extends Context.Service()("@opencode/Snapshot") {} export const layer: Layer.Layer< Service, diff --git a/packages/opencode/src/storage/db.ts b/packages/opencode/src/storage/db.ts index 78320ac0a..a7dbf9380 100644 --- a/packages/opencode/src/storage/db.ts +++ b/packages/opencode/src/storage/db.ts @@ -2,7 +2,7 @@ import { type SQLiteBunDatabase } from "drizzle-orm/bun-sqlite" import { migrate } from "drizzle-orm/bun-sqlite/migrator" import { type SQLiteTransaction } from "drizzle-orm/sqlite-core" export * from "drizzle-orm" -import { Context } from "../util/context" +import { LocalContext } from "../util/local-context" import { lazy } from "../util/lazy" import { Global } from "../global" import { Log } from "../util/log" @@ -122,7 +122,7 @@ export namespace Database { export type TxOrDb = Transaction | Client - const ctx = Context.create<{ + const ctx = LocalContext.create<{ tx: TxOrDb effects: (() => void | Promise)[] }>("database") @@ -131,7 +131,7 @@ export namespace Database { try { return callback(ctx.use().tx) } catch (err) { - if (err instanceof Context.NotFound) { + if (err instanceof LocalContext.NotFound) { const effects: (() => void | Promise)[] = [] const result = ctx.provide({ effects, tx: Client() }, () => callback(Client())) for (const effect of effects) effect() @@ -161,7 +161,7 @@ export namespace Database { try { return callback(ctx.use().tx) } catch (err) { - if (err instanceof Context.NotFound) { + if (err instanceof LocalContext.NotFound) { const effects: (() => void | Promise)[] = [] const txCallback = InstanceState.bind((tx: TxOrDb) => ctx.provide({ tx, effects }, () => callback(tx))) const result = Client().transaction(txCallback, { behavior: options?.behavior }) diff --git a/packages/opencode/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts index c8fc59c14..a123cd664 100644 --- a/packages/opencode/src/storage/storage.ts +++ b/packages/opencode/src/storage/storage.ts @@ -4,7 +4,7 @@ import { Global } from "../global" import { NamedError } from "@opencode-ai/util/error" import z from "zod" import { AppFileSystem } from "@/filesystem" -import { Effect, Exit, Layer, Option, RcMap, Schema, ServiceMap, TxReentrantLock } from "effect" +import { Effect, Exit, Layer, Option, RcMap, Schema, Context, TxReentrantLock } from "effect" import { Git } from "@/git" export namespace Storage { @@ -65,7 +65,7 @@ export namespace Storage { readonly list: (prefix: string[]) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Storage") {} + export class Service extends Context.Service()("@opencode/Storage") {} function file(dir: string, key: string[]) { return path.join(dir, ...key) + ".json" diff --git a/packages/opencode/src/sync/schema.ts b/packages/opencode/src/sync/schema.ts index 8e734e598..5cec8b1f7 100644 --- a/packages/opencode/src/sync/schema.ts +++ b/packages/opencode/src/sync/schema.ts @@ -7,8 +7,7 @@ import { withStatics } from "@/util/schema" export const EventID = Schema.String.pipe( Schema.brand("EventID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("event", id)), + ascending: (id?: string) => s.make(Identifier.ascending("event", id)), zod: Identifier.schema("event").pipe(z.custom>()), })), ) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index c2577a505..0cd6d312f 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -29,7 +29,7 @@ import { ApplyPatchTool } from "./apply_patch" import { Glob } from "../util/glob" import path from "path" import { pathToFileURL } from "url" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { EffectLogger } from "@/effect/logger" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" @@ -74,7 +74,7 @@ export namespace ToolRegistry { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/ToolRegistry") {} + export class Service extends Context.Service()("@opencode/ToolRegistry") {} export const layer: Layer.Layer< Service, diff --git a/packages/opencode/src/tool/schema.ts b/packages/opencode/src/tool/schema.ts index 93f0f9a71..823bb0aed 100644 --- a/packages/opencode/src/tool/schema.ts +++ b/packages/opencode/src/tool/schema.ts @@ -10,8 +10,7 @@ export type ToolID = typeof toolIdSchema.Type export const ToolID = toolIdSchema.pipe( withStatics((schema: typeof toolIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), - ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending("tool", id)), + ascending: (id?: string) => schema.make(Identifier.ascending("tool", id)), zod: Identifier.schema("tool").pipe(z.custom()), })), ) diff --git a/packages/opencode/src/tool/truncate.ts b/packages/opencode/src/tool/truncate.ts index 5cddacefc..716929cc6 100644 --- a/packages/opencode/src/tool/truncate.ts +++ b/packages/opencode/src/tool/truncate.ts @@ -1,5 +1,5 @@ import { NodePath } from "@effect/platform-node" -import { Cause, Duration, Effect, Layer, Schedule, ServiceMap } from "effect" +import { Cause, Duration, Effect, Layer, Schedule, Context } from "effect" import path from "path" import type { Agent } from "../agent/agent" import { makeRuntime } from "@/effect/run-service" @@ -41,7 +41,7 @@ export namespace Truncate { readonly output: (text: string, options?: Options, agent?: Agent.Info) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Truncate") {} + export class Service extends Context.Service()("@opencode/Truncate") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/util/context.ts b/packages/opencode/src/util/local-context.ts similarity index 94% rename from packages/opencode/src/util/context.ts rename to packages/opencode/src/util/local-context.ts index 46bbf4608..26f88ab09 100644 --- a/packages/opencode/src/util/context.ts +++ b/packages/opencode/src/util/local-context.ts @@ -1,6 +1,6 @@ import { AsyncLocalStorage } from "async_hooks" -export namespace Context { +export namespace LocalContext { export class NotFound extends Error { constructor(public override readonly name: string) { super(`No context found for ${name}`) diff --git a/packages/opencode/src/util/schema.ts b/packages/opencode/src/util/schema.ts index 6a88dba53..405f6a718 100644 --- a/packages/opencode/src/util/schema.ts +++ b/packages/opencode/src/util/schema.ts @@ -6,7 +6,7 @@ import { Schema } from "effect" * @example * export const Foo = fooSchema.pipe( * withStatics((schema) => ({ - * zero: schema.makeUnsafe(0), + * zero: schema.make(0), * from: Schema.decodeUnknownOption(schema), * })) * ) @@ -26,7 +26,7 @@ type NewtypeBrand = { readonly [NewtypeBrand]: Tag } * @example * class QuestionID extends Newtype()("QuestionID", Schema.String) { * static make(id: string): QuestionID { - * return this.makeUnsafe(id) + * return this.make(id) * } * } * @@ -39,7 +39,7 @@ export function Newtype() { abstract class Base { declare readonly [NewtypeBrand]: Tag - static makeUnsafe(value: Schema.Schema.Type): Self { + static make(value: Schema.Schema.Type): Self { return value as unknown as Self } } @@ -47,7 +47,7 @@ export function Newtype() { Object.setPrototypeOf(Base, schema) return Base as unknown as (abstract new (_: never) => Branded) & { - readonly makeUnsafe: (value: Schema.Schema.Type) => Self - } & Omit, "makeUnsafe"> + readonly make: (value: Schema.Schema.Type) => Self + } & Omit, "make"> } } diff --git a/packages/opencode/src/worktree/index.ts b/packages/opencode/src/worktree/index.ts index dc1548300..f4ec0af83 100644 --- a/packages/opencode/src/worktree/index.ts +++ b/packages/opencode/src/worktree/index.ts @@ -13,7 +13,7 @@ import { errorMessage } from "../util/error" import { BusEvent } from "@/bus/bus-event" import { GlobalBus } from "@/bus/global" import { Git } from "@/git" -import { Effect, Layer, Path, Scope, ServiceMap, Stream } from "effect" +import { Effect, Layer, Path, Scope, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { NodePath } from "@effect/platform-node" import { AppFileSystem } from "@/filesystem" @@ -164,7 +164,7 @@ export namespace Worktree { readonly reset: (input: ResetInput) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Worktree") {} + export class Service extends Context.Service()("@opencode/Worktree") {} type GitResult = { code: number; text: string; stderr: string } diff --git a/packages/opencode/test/effect/instance-state.test.ts b/packages/opencode/test/effect/instance-state.test.ts index 914753312..813ca344a 100644 --- a/packages/opencode/test/effect/instance-state.test.ts +++ b/packages/opencode/test/effect/instance-state.test.ts @@ -1,5 +1,5 @@ import { afterEach, expect, test } from "bun:test" -import { Cause, Deferred, Duration, Effect, Exit, Fiber, Layer, ManagedRuntime, ServiceMap } from "effect" +import { Cause, Deferred, Duration, Effect, Exit, Fiber, Layer, ManagedRuntime, Context } from "effect" import { InstanceState } from "../../src/effect/instance-state" import { InstanceRef } from "../../src/effect/instance-ref" import { Instance } from "../../src/project/instance" @@ -122,7 +122,7 @@ test("InstanceState.get reads the current directory lazily", async () => { readonly get: () => Effect.Effect } - class Test extends ServiceMap.Service()("@test/InstanceStateLazy") { + class Test extends Context.Service()("@test/InstanceStateLazy") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -166,7 +166,7 @@ test("InstanceState preserves directory across async boundaries", async () => { readonly get: () => Effect.Effect<{ directory: string; worktree: string; project: string }> } - class Test extends ServiceMap.Service()("@test/InstanceStateAsync") { + class Test extends Context.Service()("@test/InstanceStateAsync") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -234,7 +234,7 @@ test("InstanceState survives high-contention concurrent access", async () => { readonly get: () => Effect.Effect } - class Test extends ServiceMap.Service()("@test/HighContention") { + class Test extends Context.Service()("@test/HighContention") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -284,7 +284,7 @@ test("InstanceState correct after interleaved init and dispose", async () => { readonly get: () => Effect.Effect } - class Test extends ServiceMap.Service()("@test/InterleavedDispose") { + class Test extends Context.Service()("@test/InterleavedDispose") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -391,7 +391,7 @@ test("InstanceState survives deferred resume from the same instance context", as readonly get: (gate: Deferred.Deferred) => Effect.Effect } - class Test extends ServiceMap.Service()("@test/DeferredResume") { + class Test extends Context.Service()("@test/DeferredResume") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -438,7 +438,7 @@ test("InstanceState survives deferred resume outside ALS when InstanceRef is set readonly get: (gate: Deferred.Deferred) => Effect.Effect } - class Test extends ServiceMap.Service()("@test/DeferredResumeOutside") { + class Test extends Context.Service()("@test/DeferredResumeOutside") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { diff --git a/packages/opencode/test/effect/run-service.test.ts b/packages/opencode/test/effect/run-service.test.ts index b2004fb66..b5f1a1d09 100644 --- a/packages/opencode/test/effect/run-service.test.ts +++ b/packages/opencode/test/effect/run-service.test.ts @@ -1,8 +1,8 @@ import { expect, test } from "bun:test" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "../../src/effect/run-service" -class Shared extends ServiceMap.Service()("@test/Shared") {} +class Shared extends Context.Service()("@test/Shared") {} test("makeRuntime shares dependent layers through the shared memo map", async () => { let n = 0 @@ -15,7 +15,7 @@ test("makeRuntime shares dependent layers through the shared memo map", async () }), ) - class One extends ServiceMap.Service Effect.Effect }>()("@test/One") {} + class One extends Context.Service Effect.Effect }>()("@test/One") {} const one = Layer.effect( One, Effect.gen(function* () { @@ -26,7 +26,7 @@ test("makeRuntime shares dependent layers through the shared memo map", async () }), ).pipe(Layer.provide(shared)) - class Two extends ServiceMap.Service Effect.Effect }>()("@test/Two") {} + class Two extends Context.Service Effect.Effect }>()("@test/Two") {} const two = Layer.effect( Two, Effect.gen(function* () { diff --git a/packages/opencode/test/fixture/fixture.ts b/packages/opencode/test/fixture/fixture.ts index 03713d879..797054354 100644 --- a/packages/opencode/test/fixture/fixture.ts +++ b/packages/opencode/test/fixture/fixture.ts @@ -2,7 +2,7 @@ import { $ } from "bun" import * as fs from "fs/promises" import os from "os" import path from "path" -import { Effect, ServiceMap } from "effect" +import { Effect, Context } from "effect" import type * as PlatformError from "effect/PlatformError" import type * as Scope from "effect/Scope" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" @@ -123,7 +123,7 @@ export function tmpdirScoped(options?: { git?: boolean; config?: Partial (self: Effect.Effect): Effect.Effect => - Effect.servicesWith((services: ServiceMap.ServiceMap) => + Effect.contextWith((services: Context.Context) => Effect.promise(async () => Instance.provide({ directory, diff --git a/packages/opencode/test/installation/installation.test.ts b/packages/opencode/test/installation/installation.test.ts index b05c31029..2b04c3858 100644 --- a/packages/opencode/test/installation/installation.test.ts +++ b/packages/opencode/test/installation/installation.test.ts @@ -27,6 +27,7 @@ function mockSpawner(handler: (cmd: string, args: readonly string[]) => string = all: Stream.empty, getInputFd: () => ({ [Symbol.for("effect/Sink/TypeId")]: Symbol.for("effect/Sink/TypeId") }) as any, getOutputFd: () => Stream.empty, + unref: Effect.succeed(Effect.void), }), ) }) diff --git a/packages/opencode/test/lib/llm-server.ts b/packages/opencode/test/lib/llm-server.ts index fbad6ac14..2e2a2ea89 100644 --- a/packages/opencode/test/lib/llm-server.ts +++ b/packages/opencode/test/lib/llm-server.ts @@ -1,6 +1,6 @@ import { NodeHttpServer, NodeHttpServerRequest } from "@effect/platform-node" import * as Http from "node:http" -import { Deferred, Effect, Layer, ServiceMap, Stream } from "effect" +import { Deferred, Effect, Layer, Context, Stream } from "effect" import * as HttpServer from "effect/unstable/http/HttpServer" import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http" @@ -650,7 +650,7 @@ namespace TestLLMServer { } } -export class TestLLMServer extends ServiceMap.Service()("@test/LLMServer") { +export class TestLLMServer extends Context.Service()("@test/LLMServer") { static readonly layer = Layer.effect( TestLLMServer, Effect.gen(function* () { diff --git a/packages/opencode/test/project/project.test.ts b/packages/opencode/test/project/project.test.ts index 988ae2742..93d97e6a4 100644 --- a/packages/opencode/test/project/project.test.ts +++ b/packages/opencode/test/project/project.test.ts @@ -41,6 +41,7 @@ function mockGitFailure(failArg: string) { all: Stream.empty, getInputFd: () => ({ [Symbol.for("effect/Sink/TypeId")]: Symbol.for("effect/Sink/TypeId") }) as any, getOutputFd: () => Stream.empty, + unref: Effect.succeed(Effect.void), }) } return yield* real.spawn(command) From 3dd09147c2958cbb16bbe6ada43107a3c00ed8b6 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:12:04 -0400 Subject: [PATCH 099/151] refactor(tool): Tool.Context.metadata returns Effect (#21972) --- packages/opencode/src/cli/cmd/debug/agent.ts | 2 +- packages/opencode/src/session/prompt.ts | 49 +++++++++---------- packages/opencode/src/tool/bash.ts | 21 ++++---- packages/opencode/src/tool/edit.ts | 2 +- packages/opencode/src/tool/task.ts | 2 +- packages/opencode/src/tool/tool.ts | 2 +- .../opencode/test/tool/apply_patch.test.ts | 2 +- packages/opencode/test/tool/bash.test.ts | 26 +++++----- packages/opencode/test/tool/edit.test.ts | 2 +- .../test/tool/external-directory.test.ts | 2 +- packages/opencode/test/tool/grep.test.ts | 2 +- packages/opencode/test/tool/question.test.ts | 2 +- packages/opencode/test/tool/read.test.ts | 2 +- packages/opencode/test/tool/skill.test.ts | 2 +- packages/opencode/test/tool/task.test.ts | 8 +-- packages/opencode/test/tool/webfetch.test.ts | 2 +- packages/opencode/test/tool/write.test.ts | 2 +- 17 files changed, 63 insertions(+), 67 deletions(-) diff --git a/packages/opencode/src/cli/cmd/debug/agent.ts b/packages/opencode/src/cli/cmd/debug/agent.ts index fde64e53f..32d10d5d7 100644 --- a/packages/opencode/src/cli/cmd/debug/agent.ts +++ b/packages/opencode/src/cli/cmd/debug/agent.ts @@ -158,7 +158,7 @@ async function createToolContext(agent: Agent.Info) { agent: agent.name, abort: new AbortController().signal, messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask(req: Omit) { return Effect.sync(() => { for (const pattern of req.patterns) { diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 384147a12..de26e0328 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -364,21 +364,19 @@ NOTE: At any point in time through this workflow you should feel free to ask the agent: input.agent.name, messages: input.messages, metadata: (val) => - run.promise( - input.processor.updateToolCall(options.toolCallId, (match) => { - if (!["running", "pending"].includes(match.state.status)) return match - return { - ...match, - state: { - title: val.title, - metadata: val.metadata, - status: "running", - input: args, - time: { start: Date.now() }, - }, - } - }), - ), + input.processor.updateToolCall(options.toolCallId, (match) => { + if (!["running", "pending"].includes(match.state.status)) return match + return { + ...match, + state: { + title: val.title, + metadata: val.metadata, + status: "running", + input: args, + time: { start: Date.now() }, + }, + } + }), ask: (req) => permission .ask({ @@ -592,17 +590,14 @@ NOTE: At any point in time through this workflow you should feel free to ask the callID: part.callID, extra: { bypassAgentCheck: true, promptOps }, messages: msgs, - metadata(val: { title?: string; metadata?: Record }) { - return run.promise( - Effect.gen(function* () { - part = yield* sessions.updatePart({ - ...part, - type: "tool", - state: { ...part.state, ...val }, - } satisfies MessageV2.ToolPart) - }), - ) - }, + metadata: (val: { title?: string; metadata?: Record }) => + Effect.gen(function* () { + part = yield* sessions.updatePart({ + ...part, + type: "tool", + state: { ...part.state, ...val }, + } satisfies MessageV2.ToolPart) + }), ask: (req: any) => permission .ask({ @@ -1054,7 +1049,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the messageID: info.id, extra: { bypassCwdCheck: true, ...extra }, messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, }) .pipe(Effect.onInterrupt(() => Effect.sync(() => controller.abort()))) diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index 2f81e56ae..ae9bc21dc 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -385,7 +385,7 @@ export const BashTool = Tool.define( let expired = false let aborted = false - ctx.metadata({ + yield* ctx.metadata({ metadata: { output: "", description: input.description, @@ -397,16 +397,15 @@ export const BashTool = Tool.define( const handle = yield* spawner.spawn(cmd(input.shell, input.name, input.command, input.cwd, input.env)) yield* Effect.forkScoped( - Stream.runForEach(Stream.decodeText(handle.all), (chunk) => - Effect.sync(() => { - output += chunk - ctx.metadata({ - metadata: { - output: preview(output), - description: input.description, - }, - }) - }), + Stream.runForEach(Stream.decodeText(handle.all), (chunk) => { + output += chunk + return ctx.metadata({ + metadata: { + output: preview(output), + description: input.description, + }, + }) + }, ), ) diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index a076d054f..a835714c6 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -158,7 +158,7 @@ export const EditTool = Tool.define( if (change.removed) filediff.deletions += change.count || 0 } - ctx.metadata({ + yield* ctx.metadata({ metadata: { diff, filediff, diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index a8e7a8d69..d0eaaf6f2 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -109,7 +109,7 @@ export const TaskTool = Tool.define( providerID: msg.info.providerID, } - ctx.metadata({ + yield* ctx.metadata({ title: params.description, metadata: { sessionId: nextSession.id, diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 254cdb911..4cd3ba6e7 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -22,7 +22,7 @@ export namespace Tool { callID?: string extra?: { [key: string]: any } messages: MessageV2.WithParts[] - metadata(input: { title?: string; metadata?: M }): void + metadata(input: { title?: string; metadata?: M }): Effect.Effect ask(input: Omit): Effect.Effect } diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index 53b5f61ff..7bd2e2a59 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -22,7 +22,7 @@ const baseCtx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, } type AskInput = { diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index 1f4001a0c..75836c6d9 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -29,7 +29,7 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } @@ -982,13 +982,14 @@ describe("tool.bash abort", () => { { ...ctx, abort: controller.signal, - metadata: (input) => { - const output = (input.metadata as { output?: string })?.output - if (output && output.includes("before") && !controller.signal.aborted) { - collected.push(output) - controller.abort() - } - }, + metadata: (input) => + Effect.sync(() => { + const output = (input.metadata as { output?: string })?.output + if (output && output.includes("before") && !controller.signal.aborted) { + collected.push(output) + controller.abort() + } + }), }, ), ) @@ -1074,10 +1075,11 @@ describe("tool.bash abort", () => { }, { ...ctx, - metadata: (input) => { - const output = (input.metadata as { output?: string })?.output - if (output) updates.push(output) - }, + metadata: (input) => + Effect.sync(() => { + const output = (input.metadata as { output?: string })?.output + if (output) updates.push(output) + }), }, ), ) diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index df58f6aa3..1c2a4a26f 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -20,7 +20,7 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } diff --git a/packages/opencode/test/tool/external-directory.test.ts b/packages/opencode/test/tool/external-directory.test.ts index 79b58c136..727ab74f1 100644 --- a/packages/opencode/test/tool/external-directory.test.ts +++ b/packages/opencode/test/tool/external-directory.test.ts @@ -16,7 +16,7 @@ const baseCtx: Omit = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, } const glob = (p: string) => diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index f907b626e..c85daa057 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -20,7 +20,7 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index e02c57dcd..0ca72fdb2 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -15,7 +15,7 @@ const ctx = { agent: "test-agent", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index a48cd4755..4e5419f51 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -29,7 +29,7 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index ebd62dbcf..ae662bc33 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -19,7 +19,7 @@ const baseCtx: Omit = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, } afterEach(async () => { diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index 943e68e78..1fea684c7 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -209,7 +209,7 @@ describe("tool.task", () => { abort: new AbortController().signal, extra: { promptOps }, messages: [], - metadata() {}, + metadata: () => Effect.void, ask: () => Effect.void, }, ) @@ -247,7 +247,7 @@ describe("tool.task", () => { abort: new AbortController().signal, extra: { promptOps, ...extra }, messages: [], - metadata() {}, + metadata: () => Effect.void, ask: (input) => Effect.sync(() => { calls.push(input) @@ -296,7 +296,7 @@ describe("tool.task", () => { abort: new AbortController().signal, extra: { promptOps }, messages: [], - metadata() {}, + metadata: () => Effect.void, ask: () => Effect.void, }, ) @@ -335,7 +335,7 @@ describe("tool.task", () => { abort: new AbortController().signal, extra: { promptOps }, messages: [], - metadata() {}, + metadata: () => Effect.void, ask: () => Effect.void, }, ) diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index d601f0deb..0773d5cc2 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -15,7 +15,7 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index aac55f1e7..745058a19 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -22,7 +22,7 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, ask: () => Effect.void, } From 19ae8c88b0bfdbd66b81c96c1ca142b19463287c Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 03:13:03 +0000 Subject: [PATCH 100/151] chore: generate --- packages/opencode/src/tool/bash.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index ae9bc21dc..eb49159f1 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -405,8 +405,7 @@ export const BashTool = Tool.define( description: input.description, }, }) - }, - ), + }), ) const abort = Effect.callback((resume) => { From cd004cf0b28aa49344da2d5947a78703d30bcaf1 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:18:13 -0400 Subject: [PATCH 101/151] refactor(session): eliminate Effect.promise roundtrips for sync MessageV2.stream (#21973) --- packages/opencode/src/session/index.ts | 19 ++++++++++++++++++- packages/opencode/src/session/prompt.ts | 25 +++++++++---------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index d28a1988d..55532a794 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -29,7 +29,7 @@ import type { Provider } from "@/provider/provider" import { Permission } from "@/permission" import { Global } from "@/global" import type { LanguageModelV2Usage } from "@ai-sdk/provider" -import { Effect, Layer, Context } from "effect" +import { Effect, Layer, Option, Context } from "effect" import { makeRuntime } from "@/effect/run-service" export namespace Session { @@ -352,6 +352,11 @@ export namespace Session { field: string delta: string }) => Effect.Effect + /** Finds the first message matching the predicate, searching newest-first. */ + readonly findMessage: ( + sessionID: SessionID, + predicate: (msg: MessageV2.WithParts) => boolean, + ) => Effect.Effect> } export class Service extends Context.Service()("@opencode/Session") {} @@ -636,6 +641,17 @@ export namespace Session { yield* bus.publish(MessageV2.Event.PartDelta, input) }) + /** Finds the first message matching the predicate, searching newest-first. */ + const findMessage = Effect.fn("Session.findMessage")(function* ( + sessionID: SessionID, + predicate: (msg: MessageV2.WithParts) => boolean, + ) { + for (const item of MessageV2.stream(sessionID)) { + if (predicate(item)) return Option.some(item) + } + return Option.none() + }) + return Service.of({ create, fork, @@ -657,6 +673,7 @@ export namespace Session { updatePart, getPart, updatePartDelta, + findMessage, }) }), ) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index de26e0328..2b092fc8f 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -902,12 +902,8 @@ NOTE: At any point in time through this workflow you should feel free to ask the }) const lastModel = Effect.fnUntraced(function* (sessionID: SessionID) { - const model = yield* Effect.promise(async () => { - for await (const item of MessageV2.stream(sessionID)) { - if (item.info.role === "user" && item.info.model) return item.info.model - } - }) - if (model) return model + const match = yield* sessions.findMessage(sessionID, (m) => m.info.role === "user" && !!m.info.model) + if (Option.isSome(match) && match.value.info.role === "user") return match.value.info.model return yield* provider.defaultModel() }) @@ -1290,16 +1286,13 @@ NOTE: At any point in time through this workflow you should feel free to ask the }, ) - const lastAssistant = (sessionID: SessionID) => - Effect.promise(async () => { - let latest: MessageV2.WithParts | undefined - for await (const item of MessageV2.stream(sessionID)) { - latest ??= item - if (item.info.role !== "user") return item - } - if (latest) return latest - throw new Error("Impossible") - }) + const lastAssistant = Effect.fnUntraced(function* (sessionID: SessionID) { + const match = yield* sessions.findMessage(sessionID, (m) => m.info.role !== "user") + if (Option.isSome(match)) return match.value + const msgs = yield* sessions.messages({ sessionID, limit: 1 }) + if (msgs.length > 0) return msgs[0] + throw new Error("Impossible") + }) const runLoop: (sessionID: SessionID) => Effect.Effect = Effect.fn("SessionPrompt.run")( function* (sessionID: SessionID) { From 4341ab838e3494b5d640780b1c59d6305aa59e95 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:18:30 -0400 Subject: [PATCH 102/151] refactor(tool): use Session.Service directly in TaskTool (#21975) --- packages/opencode/src/tool/task.ts | 68 +++++++++++++++--------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index d0eaaf6f2..4e176391c 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -36,6 +36,7 @@ export const TaskTool = Tool.define( Effect.gen(function* () { const agent = yield* Agent.Service const config = yield* Config.Service + const sessions = yield* Session.Service const run = Effect.fn("TaskTool.execute")(function* (params: z.infer, ctx: Tool.Context) { const cfg = yield* config.get() @@ -62,44 +63,41 @@ export const TaskTool = Tool.define( const taskID = params.task_id const session = taskID - ? yield* Effect.promise(() => { - const id = SessionID.make(taskID) - return Session.get(id).catch(() => undefined) - }) + ? yield* sessions.get(SessionID.make(taskID)).pipe( + Effect.catchCause(() => Effect.succeed(undefined)), + ) : undefined const nextSession = session ?? - (yield* Effect.promise(() => - Session.create({ - parentID: ctx.sessionID, - title: params.description + ` (@${next.name} subagent)`, - permission: [ - ...(canTodo - ? [] - : [ - { - permission: "todowrite" as const, - pattern: "*" as const, - action: "deny" as const, - }, - ]), - ...(canTask - ? [] - : [ - { - permission: id, - pattern: "*" as const, - action: "deny" as const, - }, - ]), - ...(cfg.experimental?.primary_tools?.map((item) => ({ - pattern: "*", - action: "allow" as const, - permission: item, - })) ?? []), - ], - }), - )) + (yield* sessions.create({ + parentID: ctx.sessionID, + title: params.description + ` (@${next.name} subagent)`, + permission: [ + ...(canTodo + ? [] + : [ + { + permission: "todowrite" as const, + pattern: "*" as const, + action: "deny" as const, + }, + ]), + ...(canTask + ? [] + : [ + { + permission: id, + pattern: "*" as const, + action: "deny" as const, + }, + ]), + ...(cfg.experimental?.primary_tools?.map((item) => ({ + pattern: "*", + action: "allow" as const, + permission: item, + })) ?? []), + ], + })) const msg = yield* Effect.sync(() => MessageV2.get({ sessionID: ctx.sessionID, messageID: ctx.messageID })) if (msg.info.role !== "assistant") return yield* Effect.fail(new Error("Not an assistant message")) From f38f415bf0af3fb8baf211b83996d3a58a1fd010 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:18:54 -0400 Subject: [PATCH 103/151] refactor: collapse Format facade (#21980) --- packages/opencode/src/format/index.ts | 15 --------------- packages/opencode/src/project/bootstrap.ts | 2 +- packages/opencode/src/server/instance.ts | 3 ++- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/packages/opencode/src/format/index.ts b/packages/opencode/src/format/index.ts index 36844d351..1aeb2e51a 100644 --- a/packages/opencode/src/format/index.ts +++ b/packages/opencode/src/format/index.ts @@ -2,7 +2,6 @@ import { Effect, Layer, Context } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import path from "path" import { mergeDeep } from "remeda" import z from "zod" @@ -193,18 +192,4 @@ export namespace Format { Layer.provide(Config.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function init() { - return runPromise((s) => s.init()) - } - - export async function status() { - return runPromise((s) => s.status()) - } - - export async function file(filepath: string) { - return runPromise((s) => s.file(filepath)) - } } diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index 9ddcca556..1340a692f 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -17,7 +17,7 @@ export async function InstanceBootstrap() { Log.Default.info("bootstrapping", { directory: Instance.directory }) await Plugin.init() void AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.init())) - Format.init() + void AppRuntime.runPromise(Format.Service.use((svc) => svc.init())) await LSP.init() File.init() FileWatcher.init() diff --git a/packages/opencode/src/server/instance.ts b/packages/opencode/src/server/instance.ts index 4bd7802e2..015d67bfc 100644 --- a/packages/opencode/src/server/instance.ts +++ b/packages/opencode/src/server/instance.ts @@ -30,6 +30,7 @@ import { ProviderRoutes } from "./routes/provider" import { EventRoutes } from "./routes/event" import { errorHandler } from "./middleware" import { getMimeType } from "hono/utils/mime" +import { AppRuntime } from "@/effect/app-runtime" const log = Log.create({ service: "server" }) @@ -277,7 +278,7 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono() }, }), async (c) => { - return c.json(await Format.status()) + return c.json(await AppRuntime.runPromise(Format.Service.use((svc) => svc.status()))) }, ) .all("/*", async (c) => { From 2868000c2030a2b6474947778265c6b008f2c536 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 03:19:50 +0000 Subject: [PATCH 104/151] chore: generate --- packages/opencode/src/tool/task.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 4e176391c..ce99ab299 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -63,9 +63,7 @@ export const TaskTool = Tool.define( const taskID = params.task_id const session = taskID - ? yield* sessions.get(SessionID.make(taskID)).pipe( - Effect.catchCause(() => Effect.succeed(undefined)), - ) + ? yield* sessions.get(SessionID.make(taskID)).pipe(Effect.catchCause(() => Effect.succeed(undefined))) : undefined const nextSession = session ?? From 87e23abb10625bae4194406545e41beebb1b5a06 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:25:43 -0400 Subject: [PATCH 105/151] refactor: remove ProviderAuth facade (#21983) --- packages/opencode/src/provider/auth.ts | 19 ------------ .../opencode/src/server/routes/provider.ts | 31 ++++++++++++------- .../test/plugin/auth-override.test.ts | 9 ++++-- 3 files changed, 27 insertions(+), 32 deletions(-) diff --git a/packages/opencode/src/provider/auth.ts b/packages/opencode/src/provider/auth.ts index 3823baf13..e410b8636 100644 --- a/packages/opencode/src/provider/auth.ts +++ b/packages/opencode/src/provider/auth.ts @@ -2,7 +2,6 @@ import type { AuthOAuthResult, Hooks } from "@opencode-ai/plugin" import { NamedError } from "@opencode-ai/util/error" import { Auth } from "@/auth" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { Plugin } from "../plugin" import { ProviderID } from "./schema" import { Array as Arr, Effect, Layer, Record, Result, Context } from "effect" @@ -232,22 +231,4 @@ export namespace ProviderAuth { export const defaultLayer = Layer.suspend(() => layer.pipe(Layer.provide(Auth.defaultLayer), Layer.provide(Plugin.defaultLayer)), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function methods() { - return runPromise((svc) => svc.methods()) - } - - export async function authorize(input: { - providerID: ProviderID - method: number - inputs?: Record - }): Promise { - return runPromise((svc) => svc.authorize(input)) - } - - export async function callback(input: { providerID: ProviderID; method: number; code?: string }) { - return runPromise((svc) => svc.callback(input)) - } } diff --git a/packages/opencode/src/server/routes/provider.ts b/packages/opencode/src/server/routes/provider.ts index 59a4a686b..efd126ea0 100644 --- a/packages/opencode/src/server/routes/provider.ts +++ b/packages/opencode/src/server/routes/provider.ts @@ -6,6 +6,7 @@ import { Provider } from "../../provider/provider" import { ModelsDev } from "../../provider/models" import { ProviderAuth } from "../../provider/auth" import { ProviderID } from "../../provider/schema" +import { AppRuntime } from "../../effect/app-runtime" import { mapValues } from "remeda" import { errors } from "../error" import { lazy } from "../../util/lazy" @@ -81,7 +82,7 @@ export const ProviderRoutes = lazy(() => }, }), async (c) => { - return c.json(await ProviderAuth.methods()) + return c.json(await AppRuntime.runPromise(ProviderAuth.Service.use((svc) => svc.methods()))) }, ) .post( @@ -118,11 +119,15 @@ export const ProviderRoutes = lazy(() => async (c) => { const providerID = c.req.valid("param").providerID const { method, inputs } = c.req.valid("json") - const result = await ProviderAuth.authorize({ - providerID, - method, - inputs, - }) + const result = await AppRuntime.runPromise( + ProviderAuth.Service.use((svc) => + svc.authorize({ + providerID, + method, + inputs, + }), + ), + ) return c.json(result) }, ) @@ -160,11 +165,15 @@ export const ProviderRoutes = lazy(() => async (c) => { const providerID = c.req.valid("param").providerID const { method, code } = c.req.valid("json") - await ProviderAuth.callback({ - providerID, - method, - code, - }) + await AppRuntime.runPromise( + ProviderAuth.Service.use((svc) => + svc.callback({ + providerID, + method, + code, + }), + ), + ) return c.json(true) }, ), diff --git a/packages/opencode/test/plugin/auth-override.test.ts b/packages/opencode/test/plugin/auth-override.test.ts index 6b7708382..36a02058e 100644 --- a/packages/opencode/test/plugin/auth-override.test.ts +++ b/packages/opencode/test/plugin/auth-override.test.ts @@ -1,6 +1,7 @@ import { describe, expect, test } from "bun:test" import path from "path" import fs from "fs/promises" +import { Effect } from "effect" import { tmpdir } from "../fixture/fixture" import { Instance } from "../../src/project/instance" import { ProviderAuth } from "../../src/provider/auth" @@ -39,14 +40,18 @@ describe("plugin.auth-override", () => { const methods = await Instance.provide({ directory: tmp.path, fn: async () => { - return ProviderAuth.methods() + return Effect.runPromise( + ProviderAuth.Service.use((svc) => svc.methods()).pipe(Effect.provide(ProviderAuth.defaultLayer)), + ) }, }) const plainMethods = await Instance.provide({ directory: plain.path, fn: async () => { - return ProviderAuth.methods() + return Effect.runPromise( + ProviderAuth.Service.use((svc) => svc.methods()).pipe(Effect.provide(ProviderAuth.defaultLayer)), + ) }, }) From 03ce2e5288c8d2ef58e1197f6200b6be8f2797d7 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:26:16 -0400 Subject: [PATCH 106/151] refactor(installation): drop facade runtime wrappers (#21984) --- packages/opencode/src/cli/cmd/uninstall.ts | 3 +- packages/opencode/src/cli/cmd/upgrade.ts | 11 ++-- packages/opencode/src/cli/upgrade.ts | 7 +-- packages/opencode/src/installation/index.ts | 15 ------ packages/opencode/src/server/routes/global.ts | 54 ++++++++++++------- 5 files changed, 50 insertions(+), 40 deletions(-) diff --git a/packages/opencode/src/cli/cmd/uninstall.ts b/packages/opencode/src/cli/cmd/uninstall.ts index de41f32a0..31830f085 100644 --- a/packages/opencode/src/cli/cmd/uninstall.ts +++ b/packages/opencode/src/cli/cmd/uninstall.ts @@ -1,6 +1,7 @@ import type { Argv } from "yargs" import { UI } from "../ui" import * as prompts from "@clack/prompts" +import { AppRuntime } from "@/effect/app-runtime" import { Installation } from "../../installation" import { Global } from "../../global" import fs from "fs/promises" @@ -57,7 +58,7 @@ export const UninstallCommand = { UI.empty() prompts.intro("Uninstall OpenCode") - const method = await Installation.method() + const method = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.method())) prompts.log.info(`Installation method: ${method}`) const targets = await collectRemovalTargets(args, method) diff --git a/packages/opencode/src/cli/cmd/upgrade.ts b/packages/opencode/src/cli/cmd/upgrade.ts index 018205663..3ffa0f228 100644 --- a/packages/opencode/src/cli/cmd/upgrade.ts +++ b/packages/opencode/src/cli/cmd/upgrade.ts @@ -1,6 +1,7 @@ import type { Argv } from "yargs" import { UI } from "../ui" import * as prompts from "@clack/prompts" +import { AppRuntime } from "@/effect/app-runtime" import { Installation } from "../../installation" export const UpgradeCommand = { @@ -24,7 +25,7 @@ export const UpgradeCommand = { UI.println(UI.logo(" ")) UI.empty() prompts.intro("Upgrade") - const detectedMethod = await Installation.method() + const detectedMethod = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.method())) const method = (args.method as Installation.Method) ?? detectedMethod if (method === "unknown") { prompts.log.error(`opencode is installed to ${process.execPath} and may be managed by a package manager`) @@ -42,7 +43,9 @@ export const UpgradeCommand = { } } prompts.log.info("Using method: " + method) - const target = args.target ? args.target.replace(/^v/, "") : await Installation.latest() + const target = args.target + ? args.target.replace(/^v/, "") + : await AppRuntime.runPromise(Installation.Service.use((svc) => svc.latest())) if (Installation.VERSION === target) { prompts.log.warn(`opencode upgrade skipped: ${target} is already installed`) @@ -53,7 +56,9 @@ export const UpgradeCommand = { prompts.log.info(`From ${Installation.VERSION} → ${target}`) const spinner = prompts.spinner() spinner.start("Upgrading...") - const err = await Installation.upgrade(method, target).catch((err) => err) + const err = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.upgrade(method, target))).catch( + (err) => err, + ) if (err) { spinner.stop("Upgrade failed", 1) if (err instanceof Installation.UpgradeFailedError) { diff --git a/packages/opencode/src/cli/upgrade.ts b/packages/opencode/src/cli/upgrade.ts index 7b7199d4e..e902dcb92 100644 --- a/packages/opencode/src/cli/upgrade.ts +++ b/packages/opencode/src/cli/upgrade.ts @@ -1,12 +1,13 @@ import { Bus } from "@/bus" import { Config } from "@/config/config" +import { AppRuntime } from "@/effect/app-runtime" import { Flag } from "@/flag/flag" import { Installation } from "@/installation" export async function upgrade() { const config = await Config.getGlobal() - const method = await Installation.method() - const latest = await Installation.latest(method).catch(() => {}) + const method = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.method())) + const latest = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.latest(method))).catch(() => {}) if (!latest) return if (Flag.OPENCODE_ALWAYS_NOTIFY_UPDATE) { @@ -25,7 +26,7 @@ export async function upgrade() { } if (method === "unknown") return - await Installation.upgrade(method, latest) + await AppRuntime.runPromise(Installation.Service.use((svc) => svc.upgrade(method, latest))) .then(() => Bus.publish(Installation.Event.Updated, { version: latest })) .catch(() => {}) } diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index 06b673217..29f9bf1be 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -1,7 +1,6 @@ import { Effect, Layer, Schema, Context, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" -import { makeRuntime } from "@/effect/run-service" import { withTransientReadRetry } from "@/util/effect-http-client" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import path from "path" @@ -338,18 +337,4 @@ export namespace Installation { Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function method(): Promise { - return runPromise((svc) => svc.method()) - } - - export async function latest(installMethod?: Method): Promise { - return runPromise((svc) => svc.latest(installMethod)) - } - - export async function upgrade(m: Method, target: string): Promise { - return runPromise((svc) => svc.upgrade(m, target)) - } } diff --git a/packages/opencode/src/server/routes/global.ts b/packages/opencode/src/server/routes/global.ts index ec7afcf23..6b0a9a164 100644 --- a/packages/opencode/src/server/routes/global.ts +++ b/packages/opencode/src/server/routes/global.ts @@ -1,10 +1,12 @@ import { Hono, type Context } from "hono" import { describeRoute, resolver, validator } from "hono-openapi" import { streamSSE } from "hono/streaming" +import { Effect } from "effect" import z from "zod" import { BusEvent } from "@/bus/bus-event" import { SyncEvent } from "@/sync" import { GlobalBus } from "@/bus/global" +import { AppRuntime } from "@/effect/app-runtime" import { AsyncQueue } from "@/util/queue" import { Instance } from "../../project/instance" import { Installation } from "@/installation" @@ -290,25 +292,41 @@ export const GlobalRoutes = lazy(() => }), ), async (c) => { - const method = await Installation.method() - if (method === "unknown") { - return c.json({ success: false, error: "Unknown installation method" }, 400) + const result = await AppRuntime.runPromise( + Installation.Service.use((svc) => + Effect.gen(function* () { + const method = yield* svc.method() + if (method === "unknown") { + return { success: false as const, status: 400 as const, error: "Unknown installation method" } + } + + const target = c.req.valid("json").target || (yield* svc.latest(method)) + const result = yield* Effect.catch( + svc.upgrade(method, target).pipe(Effect.as({ success: true as const, version: target })), + (err) => + Effect.succeed({ + success: false as const, + status: 500 as const, + error: err instanceof Error ? err.message : String(err), + }), + ) + if (!result.success) return result + return { ...result, status: 200 as const } + }), + ), + ) + if (!result.success) { + return c.json({ success: false, error: result.error }, result.status) } - const target = c.req.valid("json").target || (await Installation.latest(method)) - const result = await Installation.upgrade(method, target) - .then(() => ({ success: true as const, version: target })) - .catch((e) => ({ success: false as const, error: e instanceof Error ? e.message : String(e) })) - if (result.success) { - GlobalBus.emit("event", { - directory: "global", - payload: { - type: Installation.Event.Updated.type, - properties: { version: target }, - }, - }) - return c.json(result) - } - return c.json(result, 500) + const target = result.version + GlobalBus.emit("event", { + directory: "global", + payload: { + type: Installation.Event.Updated.type, + properties: { version: target }, + }, + }) + return c.json({ success: true, version: target }) }, ), ) From ba3600a5156c382c3fde73ec029b26f318b7391d Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:27:30 -0400 Subject: [PATCH 107/151] refactor(session): remove dead updatePartDelta facade (#21985) --- packages/opencode/src/session/index.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 55532a794..2375d8333 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -851,14 +851,4 @@ export namespace Session { return runPromise((svc) => svc.updatePart(part)) } - export const updatePartDelta = fn( - z.object({ - sessionID: SessionID.zod, - messageID: MessageID.zod, - partID: PartID.zod, - field: z.string(), - delta: z.string(), - }), - (input) => runPromise((svc) => svc.updatePartDelta(input)), - ) } From 3b523b32f5c88141ba50a76e4e6ccab22cee8e5c Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 03:28:30 +0000 Subject: [PATCH 108/151] chore: generate --- packages/opencode/src/session/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 2375d8333..d7bf99637 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -850,5 +850,4 @@ export namespace Session { MessageV2.Part.parse(part) return runPromise((svc) => svc.updatePart(part)) } - } From 9ca06e033605d3670f1e61b5f31ff0a975f569dc Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:35:50 -0400 Subject: [PATCH 109/151] docs(effect): mark SessionTodo migrated (#21987) --- packages/opencode/specs/effect-migration.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index 8ada3f738..b0ce4a3ee 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -223,7 +223,7 @@ Fully migrated (single namespace, InstanceState where needed, flattened facade): Still open: -- [ ] `SessionTodo` — `session/todo.ts` +- [x] `SessionTodo` — `session/todo.ts` - [ ] `SyncEvent` — `sync/index.ts` - [ ] `Workspace` — `control-plane/workspace.ts` @@ -338,4 +338,5 @@ For each service, the migration is roughly: - `SessionStatus` — migrated 2026-04-11. Replaced the last route and retry-policy callers with `AppRuntime.runPromise(SessionStatus.Service.use(...))` and removed the `makeRuntime(...)` facade. - `ShareNext` — migrated 2026-04-11. Swapped remaining async callers to `AppRuntime.runPromise(ShareNext.Service.use(...))`, removed the `makeRuntime(...)` facade, and kept instance bootstrap on the shared app runtime. +- `SessionTodo` — migrated 2026-04-10. Already matched the target service shape in `session/todo.ts`: single namespace, traced Effect methods, and no `makeRuntime(...)` facade remained; checklist updated to reflect the completed migration. - `Storage` — migrated 2026-04-10. One production caller (`Session.diff`) and all storage.test.ts tests converted to effectful style. Facades and `makeRuntime` removed. From c92c462148a48a9e9496735f7754a69e4a695b31 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 03:39:49 +0000 Subject: [PATCH 110/151] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index d827b203d..13809499e 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-285KZ7rZLRoc6XqCZRHc25NE+mmpGh/BVeMpv8aPQtQ=", - "aarch64-linux": "sha256-qIwmY4TP4CI7R7G6A5OMYRrorVNXjkg25tTtVpIHm2o=", - "aarch64-darwin": "sha256-RwvnZQhdYZ0u7h7evyfxuPLHHX9eO/jXTAxIFc8B+IE=", - "x86_64-darwin": "sha256-vVj40al+TEeMpbe5XG2GmJEpN+eQAvtr9W0T98l5PBE=" + "x86_64-linux": "sha256-LkmY8hoc1OkJWnTxberdbo2wKlMTmq1NlyOndHSoR1Y=", + "aarch64-linux": "sha256-TOojgsW0rpYiSuDCV/ZmAuewmkYitB6GBmxus3pXpNo=", + "aarch64-darwin": "sha256-Vf+XYCm3YQQ5HBUK7UDXvEKEDeFUMwlGXQsmzrK+a1E=", + "x86_64-darwin": "sha256-68OlpJhmf5tpapxYGhcYjhx9716X+BFoIHTGosA3Yg4=" } } From d84cc337428d3825caba14f97ec463c7781b5c77 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:50:50 -0400 Subject: [PATCH 111/151] refactor(plugin): return Effect from ToolContext.ask (#21986) --- bun.lock | 1 + packages/opencode/src/tool/registry.ts | 3 +-- packages/plugin/package.json | 1 + packages/plugin/src/tool.ts | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bun.lock b/bun.lock index 3d6bf4f0f..cdffa8ea4 100644 --- a/bun.lock +++ b/bun.lock @@ -450,6 +450,7 @@ "version": "1.4.3", "dependencies": { "@opencode-ai/sdk": "workspace:*", + "effect": "catalog:", "zod": "catalog:", }, "devDependencies": { diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 0cd6d312f..afb19a468 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -30,7 +30,6 @@ import { Glob } from "../util/glob" import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, Context } from "effect" -import { EffectLogger } from "@/effect/logger" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" @@ -137,7 +136,7 @@ export namespace ToolRegistry { Effect.gen(function* () { const pluginCtx: PluginToolContext = { ...toolCtx, - ask: (req) => Effect.runPromise(toolCtx.ask(req).pipe(Effect.provide(EffectLogger.layer))), + ask: (req) => toolCtx.ask(req), directory: ctx.directory, worktree: ctx.worktree, } diff --git a/packages/plugin/package.json b/packages/plugin/package.json index ced1523da..ba4735371 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -18,6 +18,7 @@ ], "dependencies": { "@opencode-ai/sdk": "workspace:*", + "effect": "catalog:", "zod": "catalog:" }, "peerDependencies": { diff --git a/packages/plugin/src/tool.ts b/packages/plugin/src/tool.ts index 23aa512d9..b568d0371 100644 --- a/packages/plugin/src/tool.ts +++ b/packages/plugin/src/tool.ts @@ -1,4 +1,5 @@ import { z } from "zod" +import { Effect } from "effect" export type ToolContext = { sessionID: string @@ -16,7 +17,7 @@ export type ToolContext = { worktree: string abort: AbortSignal metadata(input: { title?: string; metadata?: { [key: string]: any } }): void - ask(input: AskInput): Promise + ask(input: AskInput): Effect.Effect } type AskInput = { From 5e3dc8099921952925b6a70853cb06f5e4bebcdc Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:52:12 -0400 Subject: [PATCH 112/151] refactor: collapse command facade (#21981) --- packages/opencode/src/command/index.ts | 7 ------- packages/opencode/src/effect/bootstrap-runtime.ts | 9 +++++++++ packages/opencode/src/project/bootstrap.ts | 6 +++--- packages/opencode/src/server/instance.ts | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 packages/opencode/src/effect/bootstrap-runtime.ts diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts index 0c5ef67f4..42f53301b 100644 --- a/packages/opencode/src/command/index.ts +++ b/packages/opencode/src/command/index.ts @@ -1,6 +1,5 @@ import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import type { InstanceContext } from "@/project/instance" import { SessionID, MessageID } from "@/session/schema" import { Effect, Layer, Context } from "effect" @@ -189,10 +188,4 @@ export namespace Command { Layer.provide(MCP.defaultLayer), Layer.provide(Skill.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function list() { - return runPromise((svc) => svc.list()) - } } diff --git a/packages/opencode/src/effect/bootstrap-runtime.ts b/packages/opencode/src/effect/bootstrap-runtime.ts new file mode 100644 index 000000000..648f2484e --- /dev/null +++ b/packages/opencode/src/effect/bootstrap-runtime.ts @@ -0,0 +1,9 @@ +import { Layer, ManagedRuntime } from "effect" +import { memoMap } from "./run-service" + +import { Format } from "@/format" +import { ShareNext } from "@/share/share-next" + +export const BootstrapLayer = Layer.mergeAll(Format.defaultLayer, ShareNext.defaultLayer) + +export const BootstrapRuntime = ManagedRuntime.make(BootstrapLayer, { memoMap }) diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index 1340a692f..9f6f7fa6f 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -10,14 +10,14 @@ import { Bus } from "../bus" import { Command } from "../command" import { Instance } from "./instance" import { Log } from "@/util/log" -import { AppRuntime } from "@/effect/app-runtime" +import { BootstrapRuntime } from "@/effect/bootstrap-runtime" import { ShareNext } from "@/share/share-next" export async function InstanceBootstrap() { Log.Default.info("bootstrapping", { directory: Instance.directory }) await Plugin.init() - void AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.init())) - void AppRuntime.runPromise(Format.Service.use((svc) => svc.init())) + void BootstrapRuntime.runPromise(ShareNext.Service.use((svc) => svc.init())) + void BootstrapRuntime.runPromise(Format.Service.use((svc) => svc.init())) await LSP.init() File.init() FileWatcher.init() diff --git a/packages/opencode/src/server/instance.ts b/packages/opencode/src/server/instance.ts index 015d67bfc..6525d2ded 100644 --- a/packages/opencode/src/server/instance.ts +++ b/packages/opencode/src/server/instance.ts @@ -191,7 +191,7 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono() }, }), async (c) => { - const commands = await Command.list() + const commands = await AppRuntime.runPromise(Command.Service.use((svc) => svc.list())) return c.json(commands) }, ) From fe4dfb9f6f3051c78599636bcc1dcc036c9ed518 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Apr 2026 23:52:48 -0400 Subject: [PATCH 113/151] refactor(git): remove runtime facade wrappers (#21982) --- packages/opencode/src/cli/cmd/github.ts | 12 ++++++++---- packages/opencode/src/cli/cmd/pr.ts | 25 ++++++++++++++++++------- packages/opencode/src/git/index.ts | 11 ----------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/packages/opencode/src/cli/cmd/github.ts b/packages/opencode/src/cli/cmd/github.ts index 8b693e79a..28a05512d 100644 --- a/packages/opencode/src/cli/cmd/github.ts +++ b/packages/opencode/src/cli/cmd/github.ts @@ -29,6 +29,7 @@ import { Provider } from "../../provider/provider" import { Bus } from "../../bus" import { MessageV2 } from "../../session/message-v2" import { SessionPrompt } from "@/session/prompt" +import { AppRuntime } from "@/effect/app-runtime" import { Git } from "@/git" import { setTimeout as sleep } from "node:timers/promises" import { Process } from "@/util/process" @@ -258,7 +259,9 @@ export const GithubInstallCommand = cmd({ } // Get repo info - const info = (await Git.run(["remote", "get-url", "origin"], { cwd: Instance.worktree })).text().trim() + const info = await AppRuntime.runPromise( + Git.Service.use((git) => git.run(["remote", "get-url", "origin"], { cwd: Instance.worktree })), + ).then((x) => x.text().trim()) const parsed = parseGitHubRemote(info) if (!parsed) { prompts.log.error(`Could not find git repository. Please run this command from a git repository.`) @@ -497,20 +500,21 @@ export const GithubRunCommand = cmd({ : "issue" : undefined const gitText = async (args: string[]) => { - const result = await Git.run(args, { cwd: Instance.worktree }) + const result = await AppRuntime.runPromise(Git.Service.use((git) => git.run(args, { cwd: Instance.worktree }))) if (result.exitCode !== 0) { throw new Process.RunFailedError(["git", ...args], result.exitCode, result.stdout, result.stderr) } return result.text().trim() } const gitRun = async (args: string[]) => { - const result = await Git.run(args, { cwd: Instance.worktree }) + const result = await AppRuntime.runPromise(Git.Service.use((git) => git.run(args, { cwd: Instance.worktree }))) if (result.exitCode !== 0) { throw new Process.RunFailedError(["git", ...args], result.exitCode, result.stdout, result.stderr) } return result } - const gitStatus = (args: string[]) => Git.run(args, { cwd: Instance.worktree }) + const gitStatus = (args: string[]) => + AppRuntime.runPromise(Git.Service.use((git) => git.run(args, { cwd: Instance.worktree }))) const commitChanges = async (summary: string, actor?: string) => { const args = ["commit", "-m", summary] if (actor) args.push("-m", `Co-authored-by: ${actor} <${actor}@users.noreply.github.com>`) diff --git a/packages/opencode/src/cli/cmd/pr.ts b/packages/opencode/src/cli/cmd/pr.ts index 58d42c6ef..f392bab4c 100644 --- a/packages/opencode/src/cli/cmd/pr.ts +++ b/packages/opencode/src/cli/cmd/pr.ts @@ -1,5 +1,6 @@ import { UI } from "../ui" import { cmd } from "./cmd" +import { AppRuntime } from "@/effect/app-runtime" import { Git } from "@/git" import { Instance } from "@/project/instance" import { Process } from "@/util/process" @@ -67,19 +68,29 @@ export const PrCommand = cmd({ const remoteName = forkOwner // Check if remote already exists - const remotes = (await Git.run(["remote"], { cwd: Instance.worktree })).text().trim() + const remotes = await AppRuntime.runPromise( + Git.Service.use((git) => git.run(["remote"], { cwd: Instance.worktree })), + ).then((x) => x.text().trim()) if (!remotes.split("\n").includes(remoteName)) { - await Git.run(["remote", "add", remoteName, `https://github.com/${forkOwner}/${forkName}.git`], { - cwd: Instance.worktree, - }) + await AppRuntime.runPromise( + Git.Service.use((git) => + git.run(["remote", "add", remoteName, `https://github.com/${forkOwner}/${forkName}.git`], { + cwd: Instance.worktree, + }), + ), + ) UI.println(`Added fork remote: ${remoteName}`) } // Set upstream to the fork so pushes go there const headRefName = prInfo.headRefName - await Git.run(["branch", `--set-upstream-to=${remoteName}/${headRefName}`, localBranchName], { - cwd: Instance.worktree, - }) + await AppRuntime.runPromise( + Git.Service.use((git) => + git.run(["branch", `--set-upstream-to=${remoteName}/${headRefName}`, localBranchName], { + cwd: Instance.worktree, + }), + ), + ) } // Check for opencode session link in PR body diff --git a/packages/opencode/src/git/index.ts b/packages/opencode/src/git/index.ts index de84fdd74..ac964ee0a 100644 --- a/packages/opencode/src/git/index.ts +++ b/packages/opencode/src/git/index.ts @@ -1,7 +1,6 @@ import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { Effect, Layer, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import { makeRuntime } from "@/effect/run-service" export namespace Git { const cfg = [ @@ -258,14 +257,4 @@ export namespace Git { ) export const defaultLayer = layer.pipe(Layer.provide(CrossSpawnSpawner.defaultLayer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function run(args: string[], opts: Options) { - return runPromise((git) => git.run(args, opts)) - } - - export async function defaultBranch(cwd: string) { - return runPromise((git) => git.defaultBranch(cwd)) - } } From 2e340d976f1d06e803c743e32e0c950f9ba643fb Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 03:53:48 +0000 Subject: [PATCH 114/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 100 +++++----- packages/sdk/openapi.json | 242 ++++++++++++------------ 2 files changed, 171 insertions(+), 171 deletions(-) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index ab0707787..7ca6ea05c 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -316,6 +316,29 @@ export type EventCommandExecuted = { } } +export type EventWorkspaceReady = { + type: "workspace.ready" + properties: { + name: string + } +} + +export type EventWorkspaceFailed = { + type: "workspace.failed" + properties: { + message: string + } +} + +export type EventWorkspaceStatus = { + type: "workspace.status" + properties: { + workspaceID: string + status: "connected" | "connecting" | "disconnected" | "error" + error?: string + } +} + export type QuestionOption = { /** * Display text (1-5 words, concise) @@ -387,29 +410,6 @@ export type EventQuestionRejected = { } } -export type Todo = { - /** - * Brief description of the task - */ - content: string - /** - * Current status of the task: pending, in_progress, completed, cancelled - */ - status: string - /** - * Priority level of the task: high, medium, low - */ - priority: string -} - -export type EventTodoUpdated = { - type: "todo.updated" - properties: { - sessionID: string - todos: Array - } -} - export type SessionStatus = | { type: "idle" @@ -446,6 +446,29 @@ export type EventSessionCompacted = { } } +export type Todo = { + /** + * Brief description of the task + */ + content: string + /** + * Current status of the task: pending, in_progress, completed, cancelled + */ + status: string + /** + * Priority level of the task: high, medium, low + */ + priority: string +} + +export type EventTodoUpdated = { + type: "todo.updated" + properties: { + sessionID: string + todos: Array + } +} + export type EventWorktreeReady = { type: "worktree.ready" properties: { @@ -500,29 +523,6 @@ export type EventPtyDeleted = { } } -export type EventWorkspaceReady = { - type: "workspace.ready" - properties: { - name: string - } -} - -export type EventWorkspaceFailed = { - type: "workspace.failed" - properties: { - message: string - } -} - -export type EventWorkspaceStatus = { - type: "workspace.status" - properties: { - workspaceID: string - status: "connected" | "connecting" | "disconnected" | "error" - error?: string - } -} - export type OutputFormatText = { type: "text" } @@ -995,22 +995,22 @@ export type Event = | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventCommandExecuted + | EventWorkspaceReady + | EventWorkspaceFailed + | EventWorkspaceStatus | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected - | EventTodoUpdated | EventSessionStatus | EventSessionIdle | EventSessionCompacted + | EventTodoUpdated | EventWorktreeReady | EventWorktreeFailed | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted - | EventWorkspaceReady - | EventWorkspaceFailed - | EventWorkspaceStatus | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 71b17966e..7bc6392b9 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7986,6 +7986,71 @@ }, "required": ["type", "properties"] }, + "Event.workspace.ready": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.ready" + }, + "properties": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"] + } + }, + "required": ["type", "properties"] + }, + "Event.workspace.failed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.failed" + }, + "properties": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": ["message"] + } + }, + "required": ["type", "properties"] + }, + "Event.workspace.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.status" + }, + "properties": { + "type": "object", + "properties": { + "workspaceID": { + "type": "string", + "pattern": "^wrk.*" + }, + "status": { + "type": "string", + "enum": ["connected", "connecting", "disconnected", "error"] + }, + "error": { + "type": "string" + } + }, + "required": ["workspaceID", "status"] + } + }, + "required": ["type", "properties"] + }, "QuestionOption": { "type": "object", "properties": { @@ -8136,50 +8201,6 @@ }, "required": ["type", "properties"] }, - "Todo": { - "type": "object", - "properties": { - "content": { - "description": "Brief description of the task", - "type": "string" - }, - "status": { - "description": "Current status of the task: pending, in_progress, completed, cancelled", - "type": "string" - }, - "priority": { - "description": "Priority level of the task: high, medium, low", - "type": "string" - } - }, - "required": ["content", "status", "priority"] - }, - "Event.todo.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "todo.updated" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "todos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Todo" - } - } - }, - "required": ["sessionID", "todos"] - } - }, - "required": ["type", "properties"] - }, "SessionStatus": { "anyOf": [ { @@ -8286,6 +8307,50 @@ }, "required": ["type", "properties"] }, + "Todo": { + "type": "object", + "properties": { + "content": { + "description": "Brief description of the task", + "type": "string" + }, + "status": { + "description": "Current status of the task: pending, in_progress, completed, cancelled", + "type": "string" + }, + "priority": { + "description": "Priority level of the task: high, medium, low", + "type": "string" + } + }, + "required": ["content", "status", "priority"] + }, + "Event.todo.updated": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "todo.updated" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "todos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Todo" + } + } + }, + "required": ["sessionID", "todos"] + } + }, + "required": ["type", "properties"] + }, "Event.worktree.ready": { "type": "object", "properties": { @@ -8440,71 +8505,6 @@ }, "required": ["type", "properties"] }, - "Event.workspace.ready": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.ready" - }, - "properties": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": ["name"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.failed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.failed" - }, - "properties": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": ["message"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.status": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.status" - }, - "properties": { - "type": "object", - "properties": { - "workspaceID": { - "type": "string", - "pattern": "^wrk.*" - }, - "status": { - "type": "string", - "enum": ["connected", "connecting", "disconnected", "error"] - }, - "error": { - "type": "string" - } - }, - "required": ["workspaceID", "status"] - } - }, - "required": ["type", "properties"] - }, "OutputFormatText": { "type": "object", "properties": { @@ -9937,6 +9937,15 @@ { "$ref": "#/components/schemas/Event.command.executed" }, + { + "$ref": "#/components/schemas/Event.workspace.ready" + }, + { + "$ref": "#/components/schemas/Event.workspace.failed" + }, + { + "$ref": "#/components/schemas/Event.workspace.status" + }, { "$ref": "#/components/schemas/Event.question.asked" }, @@ -9946,9 +9955,6 @@ { "$ref": "#/components/schemas/Event.question.rejected" }, - { - "$ref": "#/components/schemas/Event.todo.updated" - }, { "$ref": "#/components/schemas/Event.session.status" }, @@ -9958,6 +9964,9 @@ { "$ref": "#/components/schemas/Event.session.compacted" }, + { + "$ref": "#/components/schemas/Event.todo.updated" + }, { "$ref": "#/components/schemas/Event.worktree.ready" }, @@ -9976,15 +9985,6 @@ { "$ref": "#/components/schemas/Event.pty.deleted" }, - { - "$ref": "#/components/schemas/Event.workspace.ready" - }, - { - "$ref": "#/components/schemas/Event.workspace.failed" - }, - { - "$ref": "#/components/schemas/Event.workspace.status" - }, { "$ref": "#/components/schemas/Event.message.updated" }, From 27190635ea0497766a16ebddab8c4ca0b31f94a7 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 04:45:55 +0000 Subject: [PATCH 115/151] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index 13809499e..5ea0801d2 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-LkmY8hoc1OkJWnTxberdbo2wKlMTmq1NlyOndHSoR1Y=", - "aarch64-linux": "sha256-TOojgsW0rpYiSuDCV/ZmAuewmkYitB6GBmxus3pXpNo=", - "aarch64-darwin": "sha256-Vf+XYCm3YQQ5HBUK7UDXvEKEDeFUMwlGXQsmzrK+a1E=", - "x86_64-darwin": "sha256-68OlpJhmf5tpapxYGhcYjhx9716X+BFoIHTGosA3Yg4=" + "x86_64-linux": "sha256-gFbo3B6TFAmin2marXlwUyfchTX6ogsaUFEzBIl4zaI=", + "aarch64-linux": "sha256-HUKL7zBVtb1KPaoAgfSfAzjDoAPRUe2WNFHDrsoqEF8=", + "aarch64-darwin": "sha256-qWPRkuVA3nDEEaVZ0Ex4sYsFFarSRJSyOn+KJm1D3U0=", + "x86_64-darwin": "sha256-FxhOYMXkxjn/9xQPeVX/gfQT/KjHT4wIBqzVDZuYlos=" } } From 5ee7edaf9eae2badb138e0d4ee6e1972096dae80 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 12:33:17 -0400 Subject: [PATCH 116/151] refactor(tool): make Tool.Info init effectful (#21989) --- packages/opencode/specs/effect-migration.md | 14 +- packages/opencode/src/tool/bash.ts | 91 +++++------ packages/opencode/src/tool/multiedit.ts | 2 +- packages/opencode/src/tool/skill.ts | 150 +++++++++--------- packages/opencode/src/tool/tool.ts | 88 +++++----- .../opencode/test/tool/apply_patch.test.ts | 2 +- packages/opencode/test/tool/bash.test.ts | 2 +- packages/opencode/test/tool/edit.test.ts | 2 +- packages/opencode/test/tool/grep.test.ts | 2 +- packages/opencode/test/tool/question.test.ts | 4 +- packages/opencode/test/tool/read.test.ts | 2 +- packages/opencode/test/tool/skill.test.ts | 2 +- packages/opencode/test/tool/task.test.ts | 8 +- .../opencode/test/tool/tool-define.test.ts | 18 +-- packages/opencode/test/tool/webfetch.test.ts | 2 +- packages/opencode/test/tool/write.test.ts | 2 +- 16 files changed, 197 insertions(+), 194 deletions(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index b0ce4a3ee..1990f6a57 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -229,24 +229,24 @@ Still open: ## Tool interface → Effect -Once individual tools are effectified, change `Tool.Info` (`tool/tool.ts`) so `init` and `execute` return `Effect` instead of `Promise`. This lets tool implementations compose natively with the Effect pipeline rather than being wrapped in `Effect.promise()` at the call site. Requires: +`Tool.Def.execute` and `Tool.Info.init` already return `Effect` on this branch. Tool definitions should now stay Effect-native all the way through initialization instead of using Promise-returning init callbacks. Tools can still use lazy init callbacks when they need instance-bound state at init time, but those callbacks should return `Effect`, not `Promise`. Remaining work is: -1. Migrate each tool to return Effects -2. Update `Tool.define()` factory to work with Effects -3. Update `SessionPrompt` to `yield*` tool results instead of `await`ing +1. Migrate each tool body to return Effects +2. Keep `Tool.define()` inputs Effect-native +3. Update remaining callers to `yield*` tool initialization instead of `await`ing ### Tool migration details -Until the tool interface itself returns `Effect`, use this transitional pattern for migrated tools: +With `Tool.Info.init()` now effectful, use this transitional pattern for migrated tools that still need Promise-based boundaries internally: - `Tool.defineEffect(...)` should `yield*` the services the tool depends on and close over them in the returned tool definition. -- Keep the bridge at the Promise boundary only. Prefer a single `Effect.runPromise(...)` in the temporary `async execute(...)` implementation, and move the inner logic into `Effect.fn(...)` helpers instead of scattering `runPromise` islands through the tool body. +- Keep the bridge at the Promise boundary only inside the tool body when required by external APIs. Do not return Promise-based init callbacks from `Tool.define()`. - If a tool starts requiring new services, wire them into `ToolRegistry.defaultLayer` so production callers resolve the same dependencies as tests. Tool tests should use the existing Effect helpers in `packages/opencode/test/lib/effect.ts`: - Use `testEffect(...)` / `it.live(...)` instead of creating fake local wrappers around effectful tools. -- Yield the real tool export, then initialize it: `const info = yield* ReadTool`, `const tool = yield* Effect.promise(() => info.init())`. +- Yield the real tool export, then initialize it: `const info = yield* ReadTool`, `const tool = yield* info.init()`. - Run tests inside a real instance with `provideTmpdirInstance(...)` or `provideInstance(tmpdirScoped(...))` so instance-scoped services resolve exactly as they do in production. This keeps migrated tool tests aligned with the production service graph today, and makes the eventual `Tool.Info` → `Effect` cleanup mostly mechanical later. diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index eb49159f1..150cafbd7 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -454,52 +454,53 @@ export const BashTool = Tool.define( } }) - return async () => { - const shell = Shell.acceptable() - const name = Shell.name(shell) - const chain = - name === "powershell" - ? "If the commands depend on each other and must run sequentially, avoid '&&' in this shell because Windows PowerShell 5.1 does not support it. Use PowerShell conditionals such as `cmd1; if ($?) { cmd2 }` when later commands must depend on earlier success." - : "If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together (e.g., `git add . && git commit -m \"message\" && git push`). For instance, if one operation must complete before another starts (like mkdir before cp, Write before Bash for git operations, or git add before git commit), run these operations sequentially instead." - log.info("bash tool using shell", { shell }) + return () => + Effect.sync(() => { + const shell = Shell.acceptable() + const name = Shell.name(shell) + const chain = + name === "powershell" + ? "If the commands depend on each other and must run sequentially, avoid '&&' in this shell because Windows PowerShell 5.1 does not support it. Use PowerShell conditionals such as `cmd1; if ($?) { cmd2 }` when later commands must depend on earlier success." + : "If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together (e.g., `git add . && git commit -m \"message\" && git push`). For instance, if one operation must complete before another starts (like mkdir before cp, Write before Bash for git operations, or git add before git commit), run these operations sequentially instead." + log.info("bash tool using shell", { shell }) - return { - description: DESCRIPTION.replaceAll("${directory}", Instance.directory) - .replaceAll("${os}", process.platform) - .replaceAll("${shell}", name) - .replaceAll("${chaining}", chain) - .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) - .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), - parameters: Parameters, - execute: (params: z.infer, ctx: Tool.Context) => - Effect.gen(function* () { - const cwd = params.workdir - ? yield* resolvePath(params.workdir, Instance.directory, shell) - : Instance.directory - if (params.timeout !== undefined && params.timeout < 0) { - throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) - } - const timeout = params.timeout ?? DEFAULT_TIMEOUT - const ps = PS.has(name) - const root = yield* parse(params.command, ps) - const scan = yield* collect(root, cwd, ps, shell) - if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) - yield* ask(ctx, scan) + return { + description: DESCRIPTION.replaceAll("${directory}", Instance.directory) + .replaceAll("${os}", process.platform) + .replaceAll("${shell}", name) + .replaceAll("${chaining}", chain) + .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) + .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const cwd = params.workdir + ? yield* resolvePath(params.workdir, Instance.directory, shell) + : Instance.directory + if (params.timeout !== undefined && params.timeout < 0) { + throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) + } + const timeout = params.timeout ?? DEFAULT_TIMEOUT + const ps = PS.has(name) + const root = yield* parse(params.command, ps) + const scan = yield* collect(root, cwd, ps, shell) + if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) + yield* ask(ctx, scan) - return yield* run( - { - shell, - name, - command: params.command, - cwd, - env: yield* shellEnv(ctx, cwd), - timeout, - description: params.description, - }, - ctx, - ) - }), - } - } + return yield* run( + { + shell, + name, + command: params.command, + cwd, + env: yield* shellEnv(ctx, cwd), + timeout, + description: params.description, + }, + ctx, + ) + }), + } + }) }), ) diff --git a/packages/opencode/src/tool/multiedit.ts b/packages/opencode/src/tool/multiedit.ts index 82d6988c2..449df3343 100644 --- a/packages/opencode/src/tool/multiedit.ts +++ b/packages/opencode/src/tool/multiedit.ts @@ -10,7 +10,7 @@ export const MultiEditTool = Tool.define( "multiedit", Effect.gen(function* () { const editInfo = yield* EditTool - const edit = yield* Effect.promise(() => editInfo.init()) + const edit = yield* editInfo.init() return { description: DESCRIPTION, diff --git a/packages/opencode/src/tool/skill.ts b/packages/opencode/src/tool/skill.ts index f9f06b9cd..14adaf231 100644 --- a/packages/opencode/src/tool/skill.ts +++ b/packages/opencode/src/tool/skill.ts @@ -17,84 +17,84 @@ export const SkillTool = Tool.define( Effect.gen(function* () { const skill = yield* Skill.Service const rg = yield* Ripgrep.Service + return () => + Effect.gen(function* () { + const list = yield* skill.available().pipe(Effect.provide(EffectLogger.layer)) - return async () => { - const list = await Effect.runPromise(skill.available().pipe(Effect.provide(EffectLogger.layer))) - - const description = - list.length === 0 - ? "Load a specialized skill that provides domain-specific instructions and workflows. No skills are currently available." - : [ - "Load a specialized skill that provides domain-specific instructions and workflows.", - "", - "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", - "", - "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", - "", - 'Tool output includes a `` block with the loaded content.', - "", - "The following skills provide specialized sets of instructions for particular tasks", - "Invoke this tool to load a skill when a task matches one of the available skills listed below:", - "", - Skill.fmt(list, { verbose: false }), - ].join("\n") - - return { - description, - parameters: Parameters, - execute: (params: z.infer, ctx: Tool.Context) => - Effect.gen(function* () { - const info = yield* skill.get(params.name) - - if (!info) { - const all = yield* skill.all() - const available = all.map((s) => s.name).join(", ") - throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) - } - - yield* ctx.ask({ - permission: "skill", - patterns: [params.name], - always: [params.name], - metadata: {}, - }) - - const dir = path.dirname(info.location) - const base = pathToFileURL(dir).href - - const limit = 10 - const files = yield* rg.files({ cwd: dir, follow: false, hidden: true }).pipe( - Stream.filter((file) => !file.includes("SKILL.md")), - Stream.map((file) => path.resolve(dir, file)), - Stream.take(limit), - Stream.runCollect, - Effect.map((chunk) => [...chunk].map((file) => `${file}`).join("\n")), - ) - - return { - title: `Loaded skill: ${info.name}`, - output: [ - ``, - `# Skill: ${info.name}`, + const description = + list.length === 0 + ? "Load a specialized skill that provides domain-specific instructions and workflows. No skills are currently available." + : [ + "Load a specialized skill that provides domain-specific instructions and workflows.", "", - info.content.trim(), + "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", "", - `Base directory for this skill: ${base}`, - "Relative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.", - "Note: file list is sampled.", + "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", "", - "", - files, - "", - "", - ].join("\n"), - metadata: { - name: info.name, - dir, - }, - } - }).pipe(Effect.orDie), - } - } + 'Tool output includes a `` block with the loaded content.', + "", + "The following skills provide specialized sets of instructions for particular tasks", + "Invoke this tool to load a skill when a task matches one of the available skills listed below:", + "", + Skill.fmt(list, { verbose: false }), + ].join("\n") + + return { + description, + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const info = yield* skill.get(params.name) + + if (!info) { + const all = yield* skill.all() + const available = all.map((s) => s.name).join(", ") + throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) + } + + yield* ctx.ask({ + permission: "skill", + patterns: [params.name], + always: [params.name], + metadata: {}, + }) + + const dir = path.dirname(info.location) + const base = pathToFileURL(dir).href + + const limit = 10 + const files = yield* rg.files({ cwd: dir, follow: false, hidden: true }).pipe( + Stream.filter((file) => !file.includes("SKILL.md")), + Stream.map((file) => path.resolve(dir, file)), + Stream.take(limit), + Stream.runCollect, + Effect.map((chunk) => [...chunk].map((file) => `${file}`).join("\n")), + ) + + return { + title: `Loaded skill: ${info.name}`, + output: [ + ``, + `# Skill: ${info.name}`, + "", + info.content.trim(), + "", + `Base directory for this skill: ${base}`, + "Relative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.", + "Note: file list is sampled.", + "", + "", + files, + "", + "", + ].join("\n"), + metadata: { + name: info.name, + dir, + }, + } + }).pipe(Effect.orDie), + } + }) }), ) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 4cd3ba6e7..3009f4cd2 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -47,9 +47,13 @@ export namespace Tool { export interface Info { id: string - init: () => Promise> + init: () => Effect.Effect> } + type Init = + | DefWithoutID + | (() => Effect.Effect>) + export type InferParameters = T extends Info ? z.infer

@@ -66,60 +70,58 @@ export namespace Tool { ? Def : never - function wrap( - id: string, - init: (() => Promise>) | DefWithoutID, - ) { - return async () => { - const toolInfo = init instanceof Function ? await init() : { ...init } - const execute = toolInfo.execute - toolInfo.execute = (args, ctx) => - Effect.gen(function* () { - yield* Effect.try({ - try: () => toolInfo.parameters.parse(args), - catch: (error) => { - if (error instanceof z.ZodError && toolInfo.formatValidationError) { - return new Error(toolInfo.formatValidationError(error), { cause: error }) - } - return new Error( - `The ${id} tool was called with invalid arguments: ${error}.\nPlease rewrite the input so it satisfies the expected schema.`, - { cause: error }, - ) - }, - }) - const result = yield* execute(args, ctx) - if (result.metadata.truncated !== undefined) { - return result - } - const agent = yield* Effect.promise(() => Agent.get(ctx.agent)) - const truncated = yield* Effect.promise(() => Truncate.output(result.output, {}, agent)) - return { - ...result, - output: truncated.content, - metadata: { - ...result.metadata, - truncated: truncated.truncated, - ...(truncated.truncated && { outputPath: truncated.outputPath }), - }, - } - }).pipe(Effect.orDie) - return toolInfo - } + function wrap(id: string, init: Init) { + return () => + Effect.gen(function* () { + const toolInfo = init instanceof Function ? { ...(yield* init()) } : { ...init } + const execute = toolInfo.execute + toolInfo.execute = (args, ctx) => + Effect.gen(function* () { + yield* Effect.try({ + try: () => toolInfo.parameters.parse(args), + catch: (error) => { + if (error instanceof z.ZodError && toolInfo.formatValidationError) { + return new Error(toolInfo.formatValidationError(error), { cause: error }) + } + return new Error( + `The ${id} tool was called with invalid arguments: ${error}.\nPlease rewrite the input so it satisfies the expected schema.`, + { cause: error }, + ) + }, + }) + const result = yield* execute(args, ctx) + if (result.metadata.truncated !== undefined) { + return result + } + const agent = yield* Effect.promise(() => Agent.get(ctx.agent)) + const truncated = yield* Effect.promise(() => Truncate.output(result.output, {}, agent)) + return { + ...result, + output: truncated.content, + metadata: { + ...result.metadata, + truncated: truncated.truncated, + ...(truncated.truncated && { outputPath: truncated.outputPath }), + }, + } + }).pipe(Effect.orDie) + return toolInfo + }) } export function define( id: ID, - init: Effect.Effect<(() => Promise>) | DefWithoutID, never, R>, + init: Effect.Effect, never, R>, ): Effect.Effect, never, R> & { id: ID } { return Object.assign( - Effect.map(init, (next) => ({ id, init: wrap(id, next) })), + Effect.map(init, (init) => ({ id, init: wrap(id, init) })), { id }, ) } export function init

(info: Info): Effect.Effect> { return Effect.gen(function* () { - const init = yield* Effect.promise(() => info.init()) + const init = yield* info.init() return { ...init, id: info.id, diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index 7bd2e2a59..4efa12f2f 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -50,7 +50,7 @@ type ToolCtx = typeof baseCtx & { const execute = async (params: { patchText: string }, ctx: ToolCtx) => { const info = await runtime.runPromise(ApplyPatchTool) - const tool = await info.init() + const tool = await runtime.runPromise(info.init()) return Effect.runPromise(tool.execute(params, ctx)) } diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index 75836c6d9..e9a6ae38c 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -19,7 +19,7 @@ const runtime = ManagedRuntime.make( ) function initBash() { - return runtime.runPromise(BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init())))) + return runtime.runPromise(BashTool.pipe(Effect.flatMap((info) => info.init()))) } const ctx = { diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 1c2a4a26f..0695b54ba 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -45,7 +45,7 @@ const resolve = () => runtime.runPromise( Effect.gen(function* () { const info = yield* EditTool - return yield* Effect.promise(() => info.init()) + return yield* info.init() }), ) diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index c85daa057..4078c9ce6 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -10,7 +10,7 @@ import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" const runtime = ManagedRuntime.make(Layer.mergeAll(CrossSpawnSpawner.defaultLayer)) function initGrep() { - return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init())))) + return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => info.init()))) } const ctx = { diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index 0ca72fdb2..f651f019e 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -36,7 +36,7 @@ describe("tool.question", () => { Effect.gen(function* () { const question = yield* Question.Service const toolInfo = yield* QuestionTool - const tool = yield* Effect.promise(() => toolInfo.init()) + const tool = yield* toolInfo.init() const questions = [ { question: "What is your favorite color?", @@ -64,7 +64,7 @@ describe("tool.question", () => { Effect.gen(function* () { const question = yield* Question.Service const toolInfo = yield* QuestionTool - const tool = yield* Effect.promise(() => toolInfo.init()) + const tool = yield* toolInfo.init() const questions = [ { question: "What is your favorite animal?", diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index 4e5419f51..c41cefda3 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -46,7 +46,7 @@ const it = testEffect( const init = Effect.fn("ReadToolTest.init")(function* () { const info = yield* ReadTool - return yield* Effect.promise(() => info.init()) + return yield* info.init() }) const run = Effect.fn("ReadToolTest.run")(function* ( diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index ae662bc33..47a8321ef 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -152,7 +152,7 @@ Use this skill. fn: async () => { const runtime = ManagedRuntime.make(Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer)) const info = await runtime.runPromise(SkillTool) - const tool = await info.init() + const tool = await runtime.runPromise(info.init()) const requests: Array> = [] const ctx: Tool.Context = { ...baseCtx, diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index 1fea684c7..e2ae52bf0 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -191,7 +191,7 @@ describe("tool.task", () => { const { chat, assistant } = yield* seed() const child = yield* sessions.create({ parentID: chat.id, title: "Existing child" }) const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ text: "resumed", onPrompt: (input) => (seen = input) }) @@ -229,7 +229,7 @@ describe("tool.task", () => { Effect.gen(function* () { const { chat, assistant } = yield* seed() const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() const calls: unknown[] = [] const promptOps = stubOps() @@ -278,7 +278,7 @@ describe("tool.task", () => { const sessions = yield* Session.Service const { chat, assistant } = yield* seed() const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ text: "created", onPrompt: (input) => (seen = input) }) @@ -318,7 +318,7 @@ describe("tool.task", () => { const sessions = yield* Session.Service const { chat, assistant } = yield* seed() const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ onPrompt: (input) => (seen = input) }) diff --git a/packages/opencode/test/tool/tool-define.test.ts b/packages/opencode/test/tool/tool-define.test.ts index 1f8f43b2d..425c83ffd 100644 --- a/packages/opencode/test/tool/tool-define.test.ts +++ b/packages/opencode/test/tool/tool-define.test.ts @@ -23,23 +23,23 @@ describe("Tool.define", () => { const info = await Effect.runPromise(Tool.define("test-tool", Effect.succeed(original))) - await info.init() - await info.init() - await info.init() + await Effect.runPromise(info.init()) + await Effect.runPromise(info.init()) + await Effect.runPromise(info.init()) expect(original.execute).toBe(originalExecute) }) - test("function-defined tool returns fresh objects and is unaffected", async () => { + test("effect-defined tool returns fresh objects and is unaffected", async () => { const info = await Effect.runPromise( Tool.define( "test-fn-tool", - Effect.succeed(() => Promise.resolve(makeTool("test"))), + Effect.succeed(() => Effect.succeed(makeTool("test"))), ), ) - const first = await info.init() - const second = await info.init() + const first = await Effect.runPromise(info.init()) + const second = await Effect.runPromise(info.init()) expect(first).not.toBe(second) }) @@ -47,8 +47,8 @@ describe("Tool.define", () => { test("object-defined tool returns distinct objects per init() call", async () => { const info = await Effect.runPromise(Tool.define("test-copy", Effect.succeed(makeTool("test")))) - const first = await info.init() - const second = await info.init() + const first = await Effect.runPromise(info.init()) + const second = await Effect.runPromise(info.init()) expect(first).not.toBe(second) }) diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index 0773d5cc2..c6b2fd331 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -26,7 +26,7 @@ async function withFetch(fetch: (req: Request) => Response | Promise, function initTool() { return WebFetchTool.pipe( - Effect.flatMap((info) => Effect.promise(() => info.init())), + Effect.flatMap((info) => info.init()), Effect.provide(FetchHttpClient.layer), Effect.runPromise, ) diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 745058a19..3607a9272 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -43,7 +43,7 @@ const it = testEffect( const init = Effect.fn("WriteToolTest.init")(function* () { const info = yield* WriteTool - return yield* Effect.promise(() => info.init()) + return yield* info.init() }) const run = Effect.fn("WriteToolTest.run")(function* ( From ccb0b320e1dab8418f20358e7301bf0c3c21e024 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 12:52:35 -0400 Subject: [PATCH 117/151] refactor(session): make SystemPrompt a proper Effect Service (#21992) --- packages/opencode/src/session/prompt.ts | 25 +++--- packages/opencode/src/session/system.ts | 82 ++++++++++--------- .../test/session/prompt-effect.test.ts | 2 + .../test/session/snapshot-tool-race.test.ts | 2 + packages/opencode/test/session/system.test.ts | 10 ++- 5 files changed, 72 insertions(+), 49 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 2b092fc8f..4705519da 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -102,6 +102,8 @@ export namespace SessionPrompt { const instruction = yield* Instruction.Service const state = yield* SessionRunState.Service const revert = yield* SessionRevert.Service + const sys = yield* SystemPrompt.Service + const llm = yield* LLM.Service const run = { promise: (effect: Effect.Effect) => @@ -180,21 +182,24 @@ export namespace SessionPrompt { const msgs = onlySubtasks ? [{ role: "user" as const, content: subtasks.map((p) => p.prompt).join("\n") }] : yield* MessageV2.toModelMessagesEffect(context, mdl) - const text = yield* Effect.promise(async (signal) => { - const result = await LLM.stream({ + const text = yield* llm + .stream({ agent: ag, user: firstInfo, system: [], small: true, tools: {}, model: mdl, - abort: signal, sessionID: input.session.id, retries: 2, messages: [{ role: "user", content: "Generate a title for this conversation:\n" }, ...msgs], }) - return result.text - }) + .pipe( + Stream.filter((e): e is Extract => e.type === "text-delta"), + Stream.map((e) => e.text), + Stream.mkString, + Effect.orDie, + ) const cleaned = text .replace(/[\s\S]*?<\/think>\s*/g, "") .split("\n") @@ -1462,8 +1467,8 @@ NOTE: At any point in time through this workflow you should feel free to ask the yield* plugin.trigger("experimental.chat.messages.transform", {}, { messages: msgs }) const [skills, env, instructions, modelMsgs] = yield* Effect.all([ - Effect.promise(() => SystemPrompt.skills(agent)), - Effect.promise(() => SystemPrompt.environment(model)), + sys.skills(agent), + Effect.sync(() => sys.environment(model)), instruction.system().pipe(Effect.orDie), MessageV2.toModelMessagesEffect(msgs, model), ]) @@ -1687,9 +1692,9 @@ NOTE: At any point in time through this workflow you should feel free to ask the Layer.provide(Plugin.defaultLayer), Layer.provide(Session.defaultLayer), Layer.provide(SessionRevert.defaultLayer), - Layer.provide(Agent.defaultLayer), - Layer.provide(Bus.layer), - Layer.provide(CrossSpawnSpawner.defaultLayer), + Layer.provide( + Layer.mergeAll(Agent.defaultLayer, SystemPrompt.defaultLayer, LLM.defaultLayer, Bus.layer, CrossSpawnSpawner.defaultLayer), + ), ), ) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index 09788f3cd..2a001ba9b 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -1,4 +1,4 @@ -import { Ripgrep } from "../file/ripgrep" +import { Context, Effect, Layer } from "effect" import { Instance } from "../project/instance" @@ -33,44 +33,52 @@ export namespace SystemPrompt { return [PROMPT_DEFAULT] } - export async function environment(model: Provider.Model) { - const project = Instance.project - return [ - [ - `You are powered by the model named ${model.api.id}. The exact model ID is ${model.providerID}/${model.api.id}`, - `Here is some useful information about the environment you are running in:`, - ``, - ` Working directory: ${Instance.directory}`, - ` Workspace root folder: ${Instance.worktree}`, - ` Is directory a git repo: ${project.vcs === "git" ? "yes" : "no"}`, - ` Platform: ${process.platform}`, - ` Today's date: ${new Date().toDateString()}`, - ``, - ``, - ` ${ - project.vcs === "git" && false - ? await Ripgrep.tree({ - cwd: Instance.directory, - limit: 50, - }) - : "" - }`, - ``, - ].join("\n"), - ] + export interface Interface { + readonly environment: (model: Provider.Model) => string[] + readonly skills: (agent: Agent.Info) => Effect.Effect } - export async function skills(agent: Agent.Info) { - if (Permission.disabled(["skill"], agent.permission).has("skill")) return + export class Service extends Context.Service()("@opencode/SystemPrompt") {} - const list = await Skill.available(agent) + export const layer = Layer.effect( + Service, + Effect.gen(function* () { + const skill = yield* Skill.Service - return [ - "Skills provide specialized instructions and workflows for specific tasks.", - "Use the skill tool to load a skill when a task matches its description.", - // the agents seem to ingest the information about skills a bit better if we present a more verbose - // version of them here and a less verbose version in tool description, rather than vice versa. - Skill.fmt(list, { verbose: true }), - ].join("\n") - } + return Service.of({ + environment(model) { + const project = Instance.project + return [ + [ + `You are powered by the model named ${model.api.id}. The exact model ID is ${model.providerID}/${model.api.id}`, + `Here is some useful information about the environment you are running in:`, + ``, + ` Working directory: ${Instance.directory}`, + ` Workspace root folder: ${Instance.worktree}`, + ` Is directory a git repo: ${project.vcs === "git" ? "yes" : "no"}`, + ` Platform: ${process.platform}`, + ` Today's date: ${new Date().toDateString()}`, + ``, + ].join("\n"), + ] + }, + + skills: Effect.fn("SystemPrompt.skills")(function* (agent: Agent.Info) { + if (Permission.disabled(["skill"], agent.permission).has("skill")) return + + const list = yield* skill.available(agent) + + return [ + "Skills provide specialized instructions and workflows for specific tasks.", + "Use the skill tool to load a skill when a task matches its description.", + // the agents seem to ingest the information about skills a bit better if we present a more verbose + // version of them here and a less verbose version in tool description, rather than vice versa. + Skill.fmt(list, { verbose: true }), + ].join("\n") + }), + }) + }), + ) + + export const defaultLayer = layer.pipe(Layer.provide(Skill.defaultLayer)) } diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index ba33cb086..911c9f344 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -31,6 +31,7 @@ import { SessionRunState } from "../../src/session/run-state" import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { Skill } from "../../src/skill" +import { SystemPrompt } from "../../src/session/system" import { Shell } from "../../src/shell/shell" import { Snapshot } from "../../src/snapshot" import { ToolRegistry } from "../../src/tool/registry" @@ -193,6 +194,7 @@ function makeHttp() { Layer.provideMerge(registry), Layer.provideMerge(trunc), Layer.provide(Instruction.defaultLayer), + Layer.provide(SystemPrompt.defaultLayer), Layer.provideMerge(deps), ), ) diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 1c242128e..391d9d488 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -41,6 +41,7 @@ import { Plugin } from "../../src/plugin" import { Provider as ProviderSvc } from "../../src/provider/provider" import { Question } from "../../src/question" import { Skill } from "../../src/skill" +import { SystemPrompt } from "../../src/session/system" import { Todo } from "../../src/session/todo" import { SessionCompaction } from "../../src/session/compaction" import { Instruction } from "../../src/session/instruction" @@ -157,6 +158,7 @@ function makeHttp() { Layer.provideMerge(registry), Layer.provideMerge(trunc), Layer.provide(Instruction.defaultLayer), + Layer.provide(SystemPrompt.defaultLayer), Layer.provideMerge(deps), ), ) diff --git a/packages/opencode/test/session/system.test.ts b/packages/opencode/test/session/system.test.ts index 47f5f6fc2..6f1047a97 100644 --- a/packages/opencode/test/session/system.test.ts +++ b/packages/opencode/test/session/system.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from "bun:test" import path from "path" +import { Effect } from "effect" import { Agent } from "../../src/agent/agent" import { Instance } from "../../src/project/instance" import { SystemPrompt } from "../../src/session/system" @@ -38,8 +39,13 @@ description: ${description} directory: tmp.path, fn: async () => { const build = await Agent.get("build") - const first = await SystemPrompt.skills(build!) - const second = await SystemPrompt.skills(build!) + const runSkills = Effect.gen(function* () { + const svc = yield* SystemPrompt.Service + return yield* svc.skills(build!) + }).pipe(Effect.provide(SystemPrompt.defaultLayer)) + + const first = await Effect.runPromise(runSkills) + const second = await Effect.runPromise(runSkills) expect(first).toBe(second) From d1f05b0f3a80880c498c97f8bc2f01e4a61a3e94 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 16:53:40 +0000 Subject: [PATCH 118/151] chore: generate --- packages/opencode/src/session/prompt.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 4705519da..97a37865d 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1693,7 +1693,13 @@ NOTE: At any point in time through this workflow you should feel free to ask the Layer.provide(Session.defaultLayer), Layer.provide(SessionRevert.defaultLayer), Layer.provide( - Layer.mergeAll(Agent.defaultLayer, SystemPrompt.defaultLayer, LLM.defaultLayer, Bus.layer, CrossSpawnSpawner.defaultLayer), + Layer.mergeAll( + Agent.defaultLayer, + SystemPrompt.defaultLayer, + LLM.defaultLayer, + Bus.layer, + CrossSpawnSpawner.defaultLayer, + ), ), ), ) From 312f10f79750294042713cabdfa7e8b78561888c Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 14:16:36 -0400 Subject: [PATCH 119/151] refactor(account): destroy Account facade (#22068) --- packages/opencode/src/account/index.ts | 15 ------ packages/opencode/src/cli/cmd/account.ts | 11 ++-- .../src/server/routes/experimental.ts | 53 +++++++++++++------ 3 files changed, 42 insertions(+), 37 deletions(-) diff --git a/packages/opencode/src/account/index.ts b/packages/opencode/src/account/index.ts index ad4d30863..4c875caa6 100644 --- a/packages/opencode/src/account/index.ts +++ b/packages/opencode/src/account/index.ts @@ -7,7 +7,6 @@ import { HttpClientResponse, } from "effect/unstable/http" -import { makeRuntime } from "@/effect/run-service" import { withTransientReadRetry } from "@/util/effect-http-client" import { AccountRepo, type AccountRow } from "./repo" import { normalizeServerUrl } from "./url" @@ -454,18 +453,4 @@ export namespace Account { ) export const defaultLayer = layer.pipe(Layer.provide(AccountRepo.layer), Layer.provide(FetchHttpClient.layer)) - - export const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function active(): Promise { - return Option.getOrUndefined(await runPromise((service) => service.active())) - } - - export async function orgsByAccount(): Promise { - return runPromise((service) => service.orgsByAccount()) - } - - export async function switchOrg(accountID: AccountID, orgID: OrgID) { - return runPromise((service) => service.use(accountID, Option.some(orgID))) - } } diff --git a/packages/opencode/src/cli/cmd/account.ts b/packages/opencode/src/cli/cmd/account.ts index c09294edd..89680ebe0 100644 --- a/packages/opencode/src/cli/cmd/account.ts +++ b/packages/opencode/src/cli/cmd/account.ts @@ -3,6 +3,7 @@ import { Duration, Effect, Match, Option } from "effect" import { UI } from "../ui" import { AccountID, Account, OrgID, PollExpired, type PollResult } from "@/account" import { type AccountError } from "@/account/schema" +import { AppRuntime } from "@/effect/app-runtime" import * as Prompt from "../effect/prompt" import open from "open" @@ -182,7 +183,7 @@ export const LoginCommand = cmd({ }), async handler(args) { UI.empty() - await Account.runPromise((_svc) => loginEffect(args.url)) + await AppRuntime.runPromise(loginEffect(args.url)) }, }) @@ -196,7 +197,7 @@ export const LogoutCommand = cmd({ }), async handler(args) { UI.empty() - await Account.runPromise((_svc) => logoutEffect(args.email)) + await AppRuntime.runPromise(logoutEffect(args.email)) }, }) @@ -205,7 +206,7 @@ export const SwitchCommand = cmd({ describe: false, async handler() { UI.empty() - await Account.runPromise((_svc) => switchEffect()) + await AppRuntime.runPromise(switchEffect()) }, }) @@ -214,7 +215,7 @@ export const OrgsCommand = cmd({ describe: false, async handler() { UI.empty() - await Account.runPromise((_svc) => orgsEffect()) + await AppRuntime.runPromise(orgsEffect()) }, }) @@ -223,7 +224,7 @@ export const OpenCommand = cmd({ describe: false, async handler() { UI.empty() - await Account.runPromise((_svc) => openEffect()) + await AppRuntime.runPromise(openEffect()) }, }) diff --git a/packages/opencode/src/server/routes/experimental.ts b/packages/opencode/src/server/routes/experimental.ts index 763cdcf77..6d9631a04 100644 --- a/packages/opencode/src/server/routes/experimental.ts +++ b/packages/opencode/src/server/routes/experimental.ts @@ -11,9 +11,11 @@ import { Session } from "../../session" import { Config } from "../../config/config" import { ConsoleState } from "../../config/console-state" import { Account, AccountID, OrgID } from "../../account" +import { AppRuntime } from "../../effect/app-runtime" import { zodToJsonSchema } from "zod-to-json-schema" import { errors } from "../error" import { lazy } from "../../util/lazy" +import { Effect, Option } from "effect" import { WorkspaceRoutes } from "./workspace" import { Agent } from "@/agent/agent" @@ -55,11 +57,18 @@ export const ExperimentalRoutes = lazy(() => }, }), async (c) => { - const [consoleState, groups] = await Promise.all([Config.getConsoleState(), Account.orgsByAccount()]) - return c.json({ - ...consoleState, - switchableOrgCount: groups.reduce((count, group) => count + group.orgs.length, 0), - }) + const result = await AppRuntime.runPromise( + Effect.gen(function* () { + const config = yield* Config.Service + const account = yield* Account.Service + const [state, groups] = yield* Effect.all([config.getConsoleState(), account.orgsByAccount()], { concurrency: "unbounded" }) + return { + ...state, + switchableOrgCount: groups.reduce((count, group) => count + group.orgs.length, 0), + } + }), + ) + return c.json(result) }, ) .get( @@ -80,17 +89,22 @@ export const ExperimentalRoutes = lazy(() => }, }), async (c) => { - const [groups, active] = await Promise.all([Account.orgsByAccount(), Account.active()]) - - const orgs = groups.flatMap((group) => - group.orgs.map((org) => ({ - accountID: group.account.id, - accountEmail: group.account.email, - accountUrl: group.account.url, - orgID: org.id, - orgName: org.name, - active: !!active && active.id === group.account.id && active.active_org_id === org.id, - })), + const orgs = await AppRuntime.runPromise( + Effect.gen(function* () { + const account = yield* Account.Service + const [groups, active] = yield* Effect.all([account.orgsByAccount(), account.active()], { concurrency: "unbounded" }) + const info = Option.getOrUndefined(active) + return groups.flatMap((group) => + group.orgs.map((org) => ({ + accountID: group.account.id, + accountEmail: group.account.email, + accountUrl: group.account.url, + orgID: org.id, + orgName: org.name, + active: !!info && info.id === group.account.id && info.active_org_id === org.id, + })), + ) + }), ) return c.json({ orgs }) }, @@ -115,7 +129,12 @@ export const ExperimentalRoutes = lazy(() => validator("json", ConsoleSwitchBody), async (c) => { const body = c.req.valid("json") - await Account.switchOrg(AccountID.make(body.accountID), OrgID.make(body.orgID)) + await AppRuntime.runPromise( + Effect.gen(function* () { + const account = yield* Account.Service + yield* account.use(AccountID.make(body.accountID), Option.some(OrgID.make(body.orgID))) + }), + ) return c.json(true) }, ) From a2c22714cbcbefc180a0bd56073c78f12b62600e Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 11 Apr 2026 14:16:01 -0400 Subject: [PATCH 120/151] ignore: exploration --- packages/opencode/src/v2/message.ts | 68 +++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 packages/opencode/src/v2/message.ts diff --git a/packages/opencode/src/v2/message.ts b/packages/opencode/src/v2/message.ts new file mode 100644 index 000000000..008a45a36 --- /dev/null +++ b/packages/opencode/src/v2/message.ts @@ -0,0 +1,68 @@ +import { Identifier } from "@/id/id" +import { withStatics } from "@/util/schema" +import { DateTime, Effect, Schema } from "effect" + +export namespace Message { + export const ID = Schema.String.pipe(Schema.brand("Message.ID")).pipe( + withStatics((s) => ({ + create: () => s.make(Identifier.ascending("message")), + prefix: "msg", + })), + ) + + export class File extends Schema.Class("Message.File")({ + url: Schema.String, + mime: Schema.String, + }) { + static create(url: string) { + return new File({ + url, + mime: "text/plain", + }) + } + } + + export class UserContent extends Schema.Class("Message.User.Content")({ + text: Schema.String, + synthetic: Schema.Boolean.pipe(Schema.optional), + agent: Schema.String.pipe(Schema.optional), + files: Schema.Array(File).pipe(Schema.optional), + }) {} + + export class User extends Schema.Class("Message.User")({ + id: ID, + type: Schema.Literal("user"), + time: Schema.Struct({ + created: Schema.DateTimeUtc, + }), + content: UserContent, + }) { + static create(content: Schema.Schema.Type) { + const msg = new User({ + id: ID.create(), + type: "user", + time: { + created: Effect.runSync(DateTime.now), + }, + content, + }) + return msg + } + + static file(url: string) { + return new File({ + url, + mime: "text/plain", + }) + } + } + + export namespace User {} +} + +const msg = Message.User.create({ + text: "Hello world", + files: [Message.File.create("file://example.com/file.txt")], +}) + +console.log(JSON.stringify(msg, null, 2)) From c43591f8a2bf41a9e7990eaae5be0b9945f02048 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 18:18:40 +0000 Subject: [PATCH 121/151] chore: generate --- packages/opencode/src/server/routes/experimental.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/server/routes/experimental.ts b/packages/opencode/src/server/routes/experimental.ts index 6d9631a04..464617c69 100644 --- a/packages/opencode/src/server/routes/experimental.ts +++ b/packages/opencode/src/server/routes/experimental.ts @@ -61,7 +61,9 @@ export const ExperimentalRoutes = lazy(() => Effect.gen(function* () { const config = yield* Config.Service const account = yield* Account.Service - const [state, groups] = yield* Effect.all([config.getConsoleState(), account.orgsByAccount()], { concurrency: "unbounded" }) + const [state, groups] = yield* Effect.all([config.getConsoleState(), account.orgsByAccount()], { + concurrency: "unbounded", + }) return { ...state, switchableOrgCount: groups.reduce((count, group) => count + group.orgs.length, 0), @@ -92,7 +94,9 @@ export const ExperimentalRoutes = lazy(() => const orgs = await AppRuntime.runPromise( Effect.gen(function* () { const account = yield* Account.Service - const [groups, active] = yield* Effect.all([account.orgsByAccount(), account.active()], { concurrency: "unbounded" }) + const [groups, active] = yield* Effect.all([account.orgsByAccount(), account.active()], { + concurrency: "unbounded", + }) const info = Option.getOrUndefined(active) return groups.flatMap((group) => group.orgs.map((org) => ({ From 029e7135b7bc63999c2ea345a4107fac21b53bea Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 11 Apr 2026 14:18:35 -0400 Subject: [PATCH 122/151] hide download button --- packages/console/app/src/routes/download/index.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/console/app/src/routes/download/index.css b/packages/console/app/src/routes/download/index.css index 705302616..b2176c34a 100644 --- a/packages/console/app/src/routes/download/index.css +++ b/packages/console/app/src/routes/download/index.css @@ -316,7 +316,8 @@ /* Download Hero Section */ [data-component="download-hero"] { - display: grid; + /* display: grid; */ + display: none; grid-template-columns: 260px 1fr; gap: 4rem; padding-bottom: 2rem; From 0b6fd5f6123e51387d2f9fc5d04a1295f820d561 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sat, 11 Apr 2026 13:45:14 -0500 Subject: [PATCH 123/151] chore: bump ai sdk deps (#22005) --- bun.lock | 39 ++++++++++++++++++---------------- package.json | 2 +- packages/opencode/package.json | 7 +++--- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/bun.lock b/bun.lock index cdffa8ea4..88d963549 100644 --- a/bun.lock +++ b/bun.lock @@ -319,7 +319,7 @@ "@actions/core": "1.11.1", "@actions/github": "6.0.1", "@agentclientprotocol/sdk": "0.16.1", - "@ai-sdk/amazon-bedrock": "4.0.83", + "@ai-sdk/amazon-bedrock": "4.0.93", "@ai-sdk/anthropic": "3.0.67", "@ai-sdk/azure": "3.0.49", "@ai-sdk/cerebras": "2.0.41", @@ -331,7 +331,7 @@ "@ai-sdk/groq": "3.0.31", "@ai-sdk/mistral": "3.0.27", "@ai-sdk/openai": "3.0.48", - "@ai-sdk/openai-compatible": "2.0.37", + "@ai-sdk/openai-compatible": "2.0.41", "@ai-sdk/perplexity": "3.0.26", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", @@ -341,7 +341,6 @@ "@aws-sdk/credential-providers": "3.993.0", "@clack/prompts": "1.0.0-alpha.1", "@effect/platform-node": "catalog:", - "@gitlab/gitlab-ai-provider": "3.6.0", "@gitlab/opencode-gitlab-auth": "1.3.3", "@hono/node-server": "1.19.11", "@hono/node-ws": "1.3.0", @@ -357,7 +356,7 @@ "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", "@opencode-ai/util": "workspace:*", - "@openrouter/ai-sdk-provider": "2.4.2", + "@openrouter/ai-sdk-provider": "2.5.1", "@opentui/core": "0.1.97", "@opentui/solid": "0.1.97", "@parcel/watcher": "2.5.1", @@ -663,7 +662,7 @@ "@types/node": "22.13.9", "@types/semver": "7.7.1", "@typescript/native-preview": "7.0.0-dev.20251207.1", - "ai": "6.0.149", + "ai": "6.0.158", "cross-spawn": "7.0.6", "diff": "8.0.2", "dompurify": "3.3.1", @@ -708,7 +707,7 @@ "@agentclientprotocol/sdk": ["@agentclientprotocol/sdk@0.16.1", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-1ad+Sc/0sCtZGHthxxvgEUo5Wsbw16I+aF+YwdiLnPwkZG8KAGUEAPK6LM6Pf69lCyJPt1Aomk1d+8oE3C4ZEw=="], - "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.83", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.21", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-DoRpvIWGU/r83UeJAM9L93Lca8Kf/yP5fIhfEOltMPGP/PXrGe0BZaz0maLSRn8djJ6+HzWIsgu5ZI6bZqXEXg=="], + "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.93", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.69", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-hcXDU8QDwpAzLVTuY932TQVlIij9+iaVTxc5mPGY6yb//JMAAC5hMVhg93IrxlrxWLvMgjezNgoZGwquR+SGnw=="], "@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.64", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.21" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-rwLi/Rsuj2pYniQXIrvClHvXDzgM4UQHHnvHTWEF14efnlKclG/1ghpNC+adsRujAbCTr6gRsSbDE2vEqriV7g=="], @@ -1162,8 +1161,6 @@ "@gar/promise-retry": ["@gar/promise-retry@1.0.3", "", {}, "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA=="], - "@gitlab/gitlab-ai-provider": ["@gitlab/gitlab-ai-provider@3.6.0", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=2.0.0", "@ai-sdk/provider-utils": ">=3.0.0" } }, "sha512-8LmcIQ86xkMtC7L4P1/QYVEC+yKMTRerfPeniaaQGalnzXKtX6iMHLjLPOL9Rxp55lOXi6ed0WrFuJzZx+fNRg=="], - "@gitlab/opencode-gitlab-auth": ["@gitlab/opencode-gitlab-auth@1.3.3", "", { "dependencies": { "@fastify/rate-limit": "^10.2.0", "@opencode-ai/plugin": "*", "fastify": "^5.2.0", "open": "^10.0.0" } }, "sha512-FT+KsCmAJjtqWr1YAq0MywGgL9kaLQ4apmsoowAXrPqHtoYf2i/nY10/A+L06kNj22EATeEDRpbB1NWXMto/SA=="], "@graphql-typed-document-node/core": ["@graphql-typed-document-node/core@3.2.0", "", { "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="], @@ -1540,7 +1537,7 @@ "@opencode-ai/web": ["@opencode-ai/web@workspace:packages/web"], - "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.4.2", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-uRQZ4da77gru1I7/lNGJhKbqEIY7o/sPsLlbCM97VY9muGDjM/TaJzuwqIviqKTtXLzF0WDj5qBAi6FhxjvlSg=="], + "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.5.1", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-r1fJL1Cb3gQDa2MpWH/sfx1BsEW0uzlRriJM6eihaKqbtKDmZoBisF32VcVaQYassighX7NGCkF68EsrZA43uQ=="], "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], @@ -2386,7 +2383,7 @@ "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="], - "ai": ["ai@6.0.149", "", { "dependencies": { "@ai-sdk/gateway": "3.0.91", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-3asRb/m3ZGH7H4+VTuTgj8eQYJZ9IJUmV0ljLslY92mQp6Zj+NVn4SmFj0TBr2Y/wFBWC3xgn++47tSGOXxdbw=="], + "ai": ["ai@6.0.158", "", { "dependencies": { "@ai-sdk/gateway": "3.0.95", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-gLTp1UXFtMqKUi3XHs33K7UFglbvojkxF/aq337TxnLGOhHIW9+GyP2jwW4hYX87f1es+wId3VQoPRRu9zEStQ=="], "ai-gateway-provider": ["ai-gateway-provider@3.1.2", "", { "optionalDependencies": { "@ai-sdk/amazon-bedrock": "^4.0.62", "@ai-sdk/anthropic": "^3.0.46", "@ai-sdk/azure": "^3.0.31", "@ai-sdk/cerebras": "^2.0.34", "@ai-sdk/cohere": "^3.0.21", "@ai-sdk/deepgram": "^2.0.20", "@ai-sdk/deepseek": "^2.0.20", "@ai-sdk/elevenlabs": "^2.0.20", "@ai-sdk/fireworks": "^2.0.34", "@ai-sdk/google": "^3.0.30", "@ai-sdk/google-vertex": "^4.0.61", "@ai-sdk/groq": "^3.0.24", "@ai-sdk/mistral": "^3.0.20", "@ai-sdk/openai": "^3.0.30", "@ai-sdk/perplexity": "^3.0.19", "@ai-sdk/xai": "^3.0.57", "@openrouter/ai-sdk-provider": "^2.2.3" }, "peerDependencies": { "@ai-sdk/openai-compatible": "^2.0.0", "@ai-sdk/provider": "^3.0.0", "@ai-sdk/provider-utils": "^4.0.0", "ai": "^6.0.0" } }, "sha512-krGNnJSoO/gJ7Hbe5nQDlsBpDUGIBGtMQTRUaW7s1MylsfvLduba0TLWzQaGtOmNRkP0pGhtGlwsnS6FNQMlyw=="], @@ -5006,7 +5003,11 @@ "@actions/http-client/undici": ["undici@6.24.1", "", {}, "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA=="], - "@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw=="], + "@ai-sdk/amazon-bedrock/@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.69", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-LshR7X3pFugY0o41G2VKTmg1XoGpSl7uoYWfzk6zjVZLhCfeFiwgpOga+eTV4XY1VVpZwKVqRnkDbIL7K2eH5g=="], + + "@ai-sdk/amazon-bedrock/@smithy/eventstream-codec": ["@smithy/eventstream-codec@4.2.12", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@smithy/types": "^4.13.1", "@smithy/util-hex-encoding": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FE3bZdEl62ojmy8x4FHqxq2+BuOHlcxiH5vaZ6aqHJr3AIZzwF5jfx8dEiU/X0a8RboyNDjmXjlbr8AdEyLgiA=="], + + "@ai-sdk/amazon-bedrock/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], "@ai-sdk/anthropic/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw=="], @@ -5282,10 +5283,6 @@ "@fastify/proxy-addr/ipaddr.js": ["ipaddr.js@2.3.0", "", {}, "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg=="], - "@gitlab/gitlab-ai-provider/openai": ["openai@6.33.0", "", { "peerDependencies": { "ws": "^8.18.0", "zod": "^3.25 || ^4.0" }, "optionalPeers": ["ws", "zod"], "bin": { "openai": "bin/cli" } }, "sha512-xAYN1W3YsDXJWA5F277135YfkEk6H7D3D6vWwRhJ3OEkzRgcyK8z/P5P9Gyi/wB4N8kK9kM5ZjprfvyHagKmpw=="], - - "@gitlab/gitlab-ai-provider/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@gitlab/opencode-gitlab-auth/open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], "@hey-api/openapi-ts/open": ["open@11.0.0", "", { "dependencies": { "default-browser": "^5.4.0", "define-lazy-prop": "^3.0.0", "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", "powershell-utils": "^0.1.0", "wsl-utils": "^0.3.0" } }, "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw=="], @@ -5554,7 +5551,9 @@ "accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "ai/@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.91", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-J39Dh6Gyg6HjG3A7OFKnJMp3QyZ3Eex+XDiX8aFBdRwwZm3jGWaMhkCxQPH7yiQ9kRiErZwHXX/Oexx4SyGGGA=="], + "ai/@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.95", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-ZmUNNbZl3V42xwQzPaNUi+s8eqR2lnrxf0bvB6YbLXpLjHYv0k2Y78t12cNOfY0bxGeuVVTLyk856uLuQIuXEQ=="], + + "ai-gateway-provider/@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.83", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.21", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-DoRpvIWGU/r83UeJAM9L93Lca8Kf/yP5fIhfEOltMPGP/PXrGe0BZaz0maLSRn8djJ6+HzWIsgu5ZI6bZqXEXg=="], "ai-gateway-provider/@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.3.3", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-4fVteGkVedc7fGoA9+qJs4tpYwALezMq14m2Sjub3KmyRlksCbK+WJf67NPdGem8+NZrV2tAN42A1NU3+SiV3w=="], @@ -5770,6 +5769,8 @@ "opencode/@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.67", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-FFX4P5Fd6lcQJc2OLngZQkbbJHa0IDDZi087Edb8qRZx6h90krtM61ArbMUL8us/7ZUwojCXnyJ/wQ2Eflx2jQ=="], + "opencode/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.41", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-kNAGINk71AlOXx10Dq/PXw4t/9XjdK8uxfpVElRwtSFMdeSiLVt58p9TPx4/FJD+hxZuVhvxYj9r42osxWq79g=="], + "opencontrol/@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.6.1", "", { "dependencies": { "content-type": "^1.0.5", "cors": "^2.8.5", "eventsource": "^3.0.2", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^4.1.0", "raw-body": "^3.0.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.24.1" } }, "sha512-oxzMzYCkZHMntzuyerehK3fV6A2Kwh5BD6CGEJSVDU2QNEhfLOptf2X7esQgaHZXHZY0oHmMsOtIDLP71UJXgA=="], "opencontrol/@tsconfig/bun": ["@tsconfig/bun@1.0.7", "", {}, "sha512-udGrGJBNQdXGVulehc1aWT73wkR9wdaGBtB6yL70RJsqwW/yJhIg6ZbRlPOfIUiFNrnBuYLBi9CSmMKfDC7dvA=="], @@ -5952,8 +5953,6 @@ "@actions/github/@octokit/plugin-rest-endpoint-methods/@octokit/types": ["@octokit/types@12.6.0", "", { "dependencies": { "@octokit/openapi-types": "^20.0.0" } }, "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw=="], - "@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], - "@ai-sdk/anthropic/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], "@ai-sdk/azure/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], @@ -6450,6 +6449,8 @@ "accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "ai-gateway-provider/@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw=="], + "ajv-keywords/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -6822,6 +6823,8 @@ "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="], + "ai-gateway-provider/@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + "ansi-align/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "app-builder-lib/@electron/get/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], diff --git a/package.json b/package.json index 922133b40..d08bada05 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "drizzle-kit": "1.0.0-beta.19-d95b7a4", "drizzle-orm": "1.0.0-beta.19-d95b7a4", "effect": "4.0.0-beta.46", - "ai": "6.0.149", + "ai": "6.0.158", "cross-spawn": "7.0.6", "hono": "4.10.7", "hono-openapi": "1.1.2", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 9f428854a..99b60d1e9 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -78,7 +78,7 @@ "@actions/core": "1.11.1", "@actions/github": "6.0.1", "@agentclientprotocol/sdk": "0.16.1", - "@ai-sdk/amazon-bedrock": "4.0.83", + "@ai-sdk/amazon-bedrock": "4.0.93", "@ai-sdk/anthropic": "3.0.67", "@ai-sdk/azure": "3.0.49", "@ai-sdk/cerebras": "2.0.41", @@ -90,7 +90,7 @@ "@ai-sdk/groq": "3.0.31", "@ai-sdk/mistral": "3.0.27", "@ai-sdk/openai": "3.0.48", - "@ai-sdk/openai-compatible": "2.0.37", + "@ai-sdk/openai-compatible": "2.0.41", "@ai-sdk/perplexity": "3.0.26", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", @@ -100,7 +100,6 @@ "@aws-sdk/credential-providers": "3.993.0", "@clack/prompts": "1.0.0-alpha.1", "@effect/platform-node": "catalog:", - "@gitlab/gitlab-ai-provider": "3.6.0", "@gitlab/opencode-gitlab-auth": "1.3.3", "@hono/node-server": "1.19.11", "@hono/node-ws": "1.3.0", @@ -116,7 +115,7 @@ "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", "@opencode-ai/util": "workspace:*", - "@openrouter/ai-sdk-provider": "2.4.2", + "@openrouter/ai-sdk-provider": "2.5.1", "@opentui/core": "0.1.97", "@opentui/solid": "0.1.97", "@parcel/watcher": "2.5.1", From 514d2a36bc44f34be62df8aa744117de01c72809 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 19:30:50 +0000 Subject: [PATCH 124/151] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index 5ea0801d2..13bb82201 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-gFbo3B6TFAmin2marXlwUyfchTX6ogsaUFEzBIl4zaI=", - "aarch64-linux": "sha256-HUKL7zBVtb1KPaoAgfSfAzjDoAPRUe2WNFHDrsoqEF8=", - "aarch64-darwin": "sha256-qWPRkuVA3nDEEaVZ0Ex4sYsFFarSRJSyOn+KJm1D3U0=", - "x86_64-darwin": "sha256-FxhOYMXkxjn/9xQPeVX/gfQT/KjHT4wIBqzVDZuYlos=" + "x86_64-linux": "sha256-fNRQYkucjXr1D61HJRScJpDa6+oBdyhgTBxCu+PE2kQ=", + "aarch64-linux": "sha256-V8J6kn2nSdXrplyqi6aIqNlHcVjSxvye+yC/YFO7PF4=", + "aarch64-darwin": "sha256-6cLmUJVUycGALCmslXuloVGBSlFOSHRjsWjx7KOW8rg=", + "x86_64-darwin": "sha256-kcOSO3NFIJh79ylLotG41ovWLQfH5kh1WYFghUu+4HE=" } } From 63035f977ff3f733a7602da6f65346203f6cee55 Mon Sep 17 00:00:00 2001 From: "ryan.h.park" Date: Sun, 12 Apr 2026 05:51:49 +0900 Subject: [PATCH 125/151] fix: enable thinking for zhipuai-coding-plan & prevent Korean IME truncation (#22041) Co-authored-by: claudianus Co-authored-by: Aiden Cline Co-authored-by: Sisyphus --- .../cli/cmd/tui/component/prompt/index.tsx | 13 +- .../opencode/src/provider/models-snapshot.js | 61473 +--------------- packages/opencode/src/provider/transform.ts | 5 +- .../opencode/test/provider/transform.test.ts | 52 + patches/install-korean-ime-fix.sh | 120 + 5 files changed, 189 insertions(+), 61474 deletions(-) create mode 100755 patches/install-korean-ime-fix.sh diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index ba6df1d6b..5a3e1d451 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -589,6 +589,13 @@ export function Prompt(props: PromptProps) { ]) async function submit() { + // IME: double-defer may fire before onContentChange flushes the last + // composed character (e.g. Korean hangul) to the store, so read + // plainText directly and sync before any downstream reads. + if (input && !input.isDestroyed && input.plainText !== store.prompt.input) { + setStore("prompt", "input", input.plainText) + syncExtmarksWithPromptParts() + } if (props.disabled) return if (autocomplete?.visible) return if (!store.prompt.input) return @@ -994,7 +1001,11 @@ export function Prompt(props: PromptProps) { input.cursorOffset = input.plainText.length } }} - onSubmit={submit} + onSubmit={() => { + // IME: double-defer so the last composed character (e.g. Korean + // hangul) is flushed to plainText before we read it for submission. + setTimeout(() => setTimeout(() => submit(), 0), 0) + }} onPaste={async (event: PasteEvent) => { if (props.disabled) { event.preventDefault() diff --git a/packages/opencode/src/provider/models-snapshot.js b/packages/opencode/src/provider/models-snapshot.js index 7b3c6a6a6..a340f3396 100644 --- a/packages/opencode/src/provider/models-snapshot.js +++ b/packages/opencode/src/provider/models-snapshot.js @@ -1,61474 +1,3 @@ // @ts-nocheck // Auto-generated by build.ts - do not edit -export const snapshot = { - evroc: { - id: "evroc", - env: ["EVROC_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://models.think.evroc.com/v1", - name: "evroc", - doc: "https://docs.evroc.com/products/think/overview.html", - models: { - "nvidia/Llama-3.3-70B-Instruct-FP8": { - id: "nvidia/Llama-3.3-70B-Instruct-FP8", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.18, output: 1.18 }, - limit: { context: 131072, output: 32768 }, - }, - "microsoft/Phi-4-multimodal-instruct": { - id: "microsoft/Phi-4-multimodal-instruct", - name: "Phi-4 15B", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.47 }, - limit: { context: 32000, output: 32000 }, - }, - "intfloat/multilingual-e5-large-instruct": { - id: "intfloat/multilingual-e5-large-instruct", - name: "E5 Multi-Lingual Large Embeddings 0.6B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.12 }, - limit: { context: 512, output: 512 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 1.47, output: 5.9 }, - limit: { context: 262144, output: 262144 }, - }, - "KBLab/kb-whisper-large": { - id: "KBLab/kb-whisper-large", - name: "KB Whisper", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 448, output: 448 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", - name: "Qwen3 30B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.42 }, - limit: { context: 64000, output: 64000 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen3 Embedding 8B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.12 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen3 VL 30B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.94 }, - limit: { context: 100000, output: 100000 }, - }, - "mistralai/Voxtral-Small-24B-2507": { - id: "mistralai/Voxtral-Small-24B-2507", - name: "Voxtral Small 24B", - family: "voxtral", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["audio", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 32000, output: 32000 }, - }, - "mistralai/devstral-small-2-24b-instruct-2512": { - id: "mistralai/devstral-small-2-24b-instruct-2512", - name: "Devstral Small 2 24B Instruct 2512", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.47 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/Magistral-Small-2509": { - id: "mistralai/Magistral-Small-2509", - name: "Magistral Small 1.2 24B", - family: "magistral-small", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 2.36 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.94 }, - limit: { context: 65536, output: 65536 }, - }, - "openai/whisper-large-v3": { - id: "openai/whisper-large-v3", - name: "Whisper 3 Large", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 448, output: 4096 }, - }, - }, - }, - zai: { - id: "zai", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.z.ai/api/paas/v4", - name: "Z.AI", - doc: "https://docs.z.ai/guides/overview/pricing", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "alibaba-coding-plan": { - id: "alibaba-coding-plan", - env: ["ALIBABA_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding-intl.dashscope.aliyuncs.com/v1", - name: "Alibaba Coding Plan", - doc: "https://www.alibabacloud.com/help/en/model-studio/coding-plan", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 196608, input: 196601, output: 24576 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - }, - }, - zenmux: { - id: "zenmux", - env: ["ZENMUX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://zenmux.ai/api/anthropic/v1", - name: "ZenMux", - doc: "https://docs.zenmux.ai", - models: { - "xiaomi/mimo-v2-omni": { - id: "xiaomi/mimo-v2-omni", - name: "MiMo V2 Omni", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 265000, output: 265000 }, - }, - "xiaomi/mimo-v2-flash-free": { - id: "xiaomi/mimo-v2-flash-free", - name: "MiMo-V2-Flash Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 64000 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 262000, output: 64000 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo V2 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 4.5 }, - limit: { context: 1000000, output: 256000 }, - }, - "kuaishou/kat-coder-pro-v1-free": { - id: "kuaishou/kat-coder-pro-v1-free", - name: "KAT-Coder-Pro-V1 Free", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "kuaishou/kat-coder-pro-v1": { - id: "kuaishou/kat-coder-pro-v1", - name: "KAT-Coder-Pro-V1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3.5-flash-free": { - id: "stepfun/step-3.5-flash-free", - name: "Step 3.5 Flash (Free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3": { - id: "stepfun/step-3", - name: "Step-3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 65536, output: 64000 }, - }, - "inclusionai/ling-1t": { - id: "inclusionai/ling-1t", - name: "Ling-1T", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-09", - last_updated: "2025-10-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, - limit: { context: 128000, output: 64000 }, - }, - "inclusionai/ring-1t": { - id: "inclusionai/ring-1t", - name: "Ring-1T", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-12", - last_updated: "2025-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, - limit: { context: 128000, output: 64000 }, - }, - "volcengine/doubao-seed-1.8": { - id: "volcengine/doubao-seed-1.8", - name: "Doubao-Seed-1.8", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.28, cache_read: 0.02, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-pro": { - id: "volcengine/doubao-seed-2.0-pro", - name: "Doubao-Seed-2.0-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 2.24, cache_read: 0.09, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-mini": { - id: "volcengine/doubao-seed-2.0-mini", - name: "Doubao-Seed-2.0-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.28, cache_read: 0.01, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-code": { - id: "volcengine/doubao-seed-code", - name: "Doubao-Seed-Code", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-11", - last_updated: "2025-11-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.12, cache_read: 0.03 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-lite": { - id: "volcengine/doubao-seed-2.0-lite", - name: "Doubao-Seed-2.0-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.51, cache_read: 0.02, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-code": { - id: "volcengine/doubao-seed-2.0-code", - name: "Doubao Seed 2.0 Code", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 4.48 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-05", - last_updated: "2025-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.43 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-chat": { - id: "deepseek/deepseek-chat", - name: "DeepSeek-V3.2 (Non-thinking Mode)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek-V3.2-Exp", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 0.33 }, - limit: { context: 163000, output: 64000 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 3.02, cache_read: 0.1 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-thinking-turbo": { - id: "moonshotai/kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "baidu/ernie-5.0-thinking-preview": { - id: "baidu/ernie-5.0-thinking-preview", - name: "ERNIE 5.0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.84, output: 3.37 }, - limit: { context: 128000, output: 64000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.07, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 1050000, output: 65530 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "pdf", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-19", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3-pro-image-preview": { - id: "google/gemini-3-pro-image-preview", - name: "Gemini 3 Pro Image Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["pdf", "image", "text", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 2.6, cache_read: 0.14 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7-flashx": { - id: "z-ai/glm-4.7-flashx", - name: "GLM 4.7 FlashX", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.42, cache_read: 0.01 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.56, cache_read: 0.02 }, - limit: { context: 128000, output: 64000 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, - limit: { context: 128000, output: 64000 }, - }, - "z-ai/glm-4.6v-flash-free": { - id: "z-ai/glm-4.6v-flash-free", - name: "GLM 4.6V Flash (Free)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.14, cache_read: 0.06 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.7-flash-free": { - id: "z-ai/glm-4.7-flash-free", - name: "GLM 4.7 Flash (Free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.6v-flash": { - id: "z-ai/glm-4.6v-flash", - name: "GLM 4.6V FlashX", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.21, cache_read: 0.0043 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-5-turbo": { - id: "z-ai/glm-5-turbo", - name: "GLM 5 Turbo", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.88, output: 3.48 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.6v": { - id: "z-ai/glm-4.6v", - name: "GLM 4.6V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.42, cache_read: 0.03 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen/qwen3.5-flash": { - id: "qwen/qwen3.5-flash", - name: "Qwen3.5 Flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1020000, output: 1020000 }, - }, - "qwen/qwen3.5-plus": { - id: "qwen/qwen3.5-plus", - name: "Qwen3.5 Plus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4.8 }, - limit: { context: 1000000, output: 64000 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3-Max-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen/qwen3-coder-plus": { - id: "qwen/qwen3-coder-plus", - name: "Qwen3-Coder-Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 1000000, output: 64000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4.1-fast-non-reasoning": { - id: "x-ai/grok-4.1-fast-non-reasoning", - name: "Grok 4.1 Fast Non Reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4.2-fast": { - id: "x-ai/grok-4.2-fast", - name: "Grok 4.2 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 9 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4.2-fast-non-reasoning": { - id: "x-ai/grok-4.2-fast-non-reasoning", - name: "Grok 4.2 Fast Non Reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 9 }, - limit: { context: 2000000, output: 30000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01-01", - release_date: "2026-01-15", - last_updated: "2026-01-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.17 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["pdf", "image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 128000, output: 64000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01-01", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.17 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.75, output: 18.75 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 45, output: 225 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "GPT-5.3 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16380 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4 Nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax/minimax-m2.5-lightning": { - id: "minimax/minimax-m2.5-lightning", - name: "MiniMax M2.5 highspeed", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4.8, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204000, output: 64000 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3055, output: 1.2219 }, - limit: { context: 204800, output: 131070 }, - }, - "minimax/minimax-m2.7-highspeed": { - id: "minimax/minimax-m2.7-highspeed", - name: "MiniMax M2.7 highspeed", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.611, output: 2.4439 }, - limit: { context: 204800, output: 131070 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204000, output: 64000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude 3.5 Sonnet (Retiring Soon)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - status: "deprecated", - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2024-11-04", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["pdf", "image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - "io-net": { - id: "io-net", - env: ["IOINTELLIGENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.intelligence.io.solutions/api/v1", - name: "IO.NET", - doc: "https://io.net/docs/guides/intelligence/io-intelligence", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-15", - last_updated: "2024-11-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.75, cache_read: 0.2, cache_write: 0.8 }, - limit: { context: 200000, output: 4096 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 8.75, cache_read: 1, cache_write: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar": { - id: "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", - name: "Qwen 3 Coder 480B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.95, cache_read: 0.11, cache_write: 0.44 }, - limit: { context: 106000, output: 4096 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-09-05", - last_updated: "2024-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39, output: 1.9, cache_read: 0.195, cache_write: 0.78 }, - limit: { context: 32768, output: 4096 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.25, cache_read: 0.275, cache_write: 1.1 }, - limit: { context: 32768, output: 4096 }, - }, - "meta-llama/Llama-3.2-90B-Vision-Instruct": { - id: "meta-llama/Llama-3.2-90B-Vision-Instruct", - name: "Llama 3.2 90B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.4, cache_read: 0.175, cache_write: 0.7 }, - limit: { context: 16000, output: 4096 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.38, cache_read: 0.065, cache_write: 0.26 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B 128E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6, cache_read: 0.075, cache_write: 0.3 }, - limit: { context: 430000, output: 4096 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen 3 Next 80B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-10", - last_updated: "2025-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.8, cache_read: 0.05, cache_write: 0.2 }, - limit: { context: 262144, output: 4096 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen 3 235B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6, cache_read: 0.055, cache_write: 0.22 }, - limit: { context: 262144, output: 4096 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen 2.5 VL 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, - limit: { context: 32000, output: 4096 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04, cache_read: 0.01, cache_write: 0.04 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Magistral-Small-2506": { - id: "mistralai/Magistral-Small-2506", - name: "Magistral Small 2506", - family: "magistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Mistral-Large-Instruct-2411": { - id: "mistralai/Mistral-Large-Instruct-2411", - name: "Mistral Large Instruct 2411", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 1, cache_write: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Devstral-Small-2505": { - id: "mistralai/Devstral-Small-2505", - name: "Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.4, cache_read: 0.02, cache_write: 0.08 }, - limit: { context: 131072, output: 4096 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT-OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14, cache_read: 0.015, cache_write: 0.06 }, - limit: { context: 64000, output: 4096 }, - }, - }, - }, - nvidia: { - id: "nvidia", - env: ["NVIDIA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://integrate.api.nvidia.com/v1", - name: "Nvidia", - doc: "https://docs.api.nvidia.com/nim/", - models: { - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/llama-3.1-nemotron-70b-instruct": { - id: "nvidia/llama-3.1-nemotron-70b-instruct", - name: "Llama 3.1 Nemotron 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-10-12", - last_updated: "2024-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.1-nemotron-ultra-253b-v1": { - id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", - name: "Llama-3.1-Nemotron-Ultra-253B-v1", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/llama-3.1-nemotron-51b-instruct": { - id: "nvidia/llama-3.1-nemotron-51b-instruct", - name: "Llama 3.1 Nemotron 51b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-22", - last_updated: "2024-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/parakeet-tdt-0.6b-v2": { - id: "nvidia/parakeet-tdt-0.6b-v2", - name: "Parakeet TDT 0.6B v2", - family: "parakeet", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "nvidia/nvidia-nemotron-nano-9b-v2": { - id: "nvidia/nvidia-nemotron-nano-9b-v2", - name: "nvidia-nemotron-nano-9b-v2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/llama-embed-nemotron-8b": { - id: "nvidia/llama-embed-nemotron-8b", - name: "Llama Embed Nemotron 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-03", - release_date: "2025-03-18", - last_updated: "2025-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 2048 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1.5": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", - name: "Llama 3.3 Nemotron Super 49b V1.5", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1", - name: "Llama 3.3 Nemotron Super 49b V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama3-chatqa-1.5-70b": { - id: "nvidia/llama3-chatqa-1.5-70b", - name: "Llama3 Chatqa 1.5 70b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-28", - last_updated: "2024-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/cosmos-nemotron-34b": { - id: "nvidia/cosmos-nemotron-34b", - name: "Cosmos Nemotron 34B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nemoretriever-ocr-v1": { - id: "nvidia/nemoretriever-ocr-v1", - name: "NeMo Retriever OCR v1", - family: "nemoretriever", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "nvidia/nemotron-4-340b-instruct": { - id: "nvidia/nemotron-4-340b-instruct", - name: "Nemotron 4 340b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-06-13", - last_updated: "2024-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "nemotron-3-nano-30b-a3b", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "microsoft/phi-3-small-128k-instruct": { - id: "microsoft/phi-3-small-128k-instruct", - name: "Phi 3 Small 128k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-128k-instruct": { - id: "microsoft/phi-3-medium-128k-instruct", - name: "Phi 3 Medium 128k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-moe-instruct": { - id: "microsoft/phi-3.5-moe-instruct", - name: "Phi 3.5 Moe Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-17", - last_updated: "2024-08-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-vision-128k-instruct": { - id: "microsoft/phi-3-vision-128k-instruct", - name: "Phi 3 Vision 128k Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-19", - last_updated: "2024-05-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-mini-instruct": { - id: "microsoft/phi-4-mini-instruct", - name: "Phi-4-Mini", - family: "phi", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "microsoft/phi-3.5-vision-instruct": { - id: "microsoft/phi-3.5-vision-instruct", - name: "Phi 3.5 Vision Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-4k-instruct": { - id: "microsoft/phi-3-medium-4k-instruct", - name: "Phi 3 Medium 4k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4000, output: 4096 }, - }, - "microsoft/phi-3-small-8k-instruct": { - id: "microsoft/phi-3-small-8k-instruct", - name: "Phi 3 Small 8k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8000, output: 4096 }, - }, - "minimaxai/minimax-m2.1": { - id: "minimaxai/minimax-m2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "minimaxai/minimax-m2.5": { - id: "minimaxai/minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-ai/deepseek-v3.1": { - id: "deepseek-ai/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-20", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/deepseek-r1-0528": { - id: "deepseek-ai/deepseek-r1-0528", - name: "Deepseek R1 0528", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-r1": { - id: "deepseek-ai/deepseek-r1", - name: "Deepseek R1", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.1-terminus": { - id: "deepseek-ai/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/deepseek-coder-6.7b-instruct": { - id: "deepseek-ai/deepseek-coder-6.7b-instruct", - name: "Deepseek Coder 6.7b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2023-10-29", - last_updated: "2023-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.2": { - id: "deepseek-ai/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-01-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "moonshotai/kimi-k2-instruct-0905": { - id: "moonshotai/kimi-k2-instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-07", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "google/codegemma-7b": { - id: "google/codegemma-7b", - name: "Codegemma 7b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-03-21", - last_updated: "2024-03-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-2-2b-it": { - id: "google/gemma-2-2b-it", - name: "Gemma 2 2b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-1b-it": { - id: "google/gemma-3-1b-it", - name: "Gemma 3 1b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-2-27b-it": { - id: "google/gemma-2-27b-it", - name: "Gemma 2 27b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-06-24", - last_updated: "2024-06-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3n-e2b-it": { - id: "google/gemma-3n-e2b-it", - name: "Gemma 3n E2b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-06-12", - last_updated: "2025-06-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/codegemma-1.1-7b": { - id: "google/codegemma-1.1-7b", - name: "Codegemma 1.1 7b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-04-30", - last_updated: "2024-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Gemma 3n E4b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-06-03", - last_updated: "2025-06-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Gemma 3 12b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma-3-27B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "z-ai/glm4.7": { - id: "z-ai/glm4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm5": { - id: "z-ai/glm5", - name: "GLM5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 202752, output: 131000 }, - }, - "stepfun-ai/step-3.5-flash": { - id: "stepfun-ai/step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwq-32b": { - id: "qwen/qwq-32b", - name: "Qwq 32b", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen2.5-coder-7b-instruct": { - id: "qwen/qwen2.5-coder-7b-instruct", - name: "Qwen2.5 Coder 7b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-17", - last_updated: "2024-09-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 8192 }, - }, - "qwen/qwen2.5-coder-32b-instruct": { - id: "qwen/qwen2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-06", - last_updated: "2024-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3-235b-a22b": { - id: "qwen/qwen3-235b-a22b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "meta/llama-3.1-70b-instruct": { - id: "meta/llama-3.1-70b-instruct", - name: "Llama 3.1 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.3-70b-instruct": { - id: "meta/llama-3.3-70b-instruct", - name: "Llama 3.3 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-26", - last_updated: "2024-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-scout-17b-16e-instruct": { - id: "meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17b 16e Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-02", - release_date: "2025-04-02", - last_updated: "2025-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11b Vision Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama3-8b-instruct": { - id: "meta/llama3-8b-instruct", - name: "Llama3 8b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/codellama-70b": { - id: "meta/codellama-70b", - name: "Codellama 70b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-29", - last_updated: "2024-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.2-1b-instruct": { - id: "meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.1-405b-instruct": { - id: "meta/llama-3.1-405b-instruct", - name: "Llama 3.1 405b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama3-70b-instruct": { - id: "meta/llama3-70b-instruct", - name: "Llama3 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-maverick-17b-128e-instruct": { - id: "meta/llama-4-maverick-17b-128e-instruct", - name: "Llama 4 Maverick 17b 128e Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-02", - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mistral-large-3-675b-instruct-2512": { - id: "mistralai/mistral-large-3-675b-instruct-2512", - name: "Mistral Large 3 675B Instruct 2512", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mamba-codestral-7b-v0.1": { - id: "mistralai/mamba-codestral-7b-v0.1", - name: "Mamba Codestral 7b V0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/codestral-22b-instruct-v0.1": { - id: "mistralai/codestral-22b-instruct-v0.1", - name: "Codestral 22b Instruct V0.1", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-29", - last_updated: "2024-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mistral-large-2-instruct": { - id: "mistralai/mistral-large-2-instruct", - name: "Mistral Large 2 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/ministral-14b-instruct-2512": { - id: "mistralai/ministral-14b-instruct-2512", - name: "Ministral 3 14B Instruct 2512", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-01", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-small-3.1-24b-instruct-2503": { - id: "mistralai/mistral-small-3.1-24b-instruct-2503", - name: "Mistral Small 3.1 24b Instruct 2503", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/devstral-2-123b-instruct-2512": { - id: "mistralai/devstral-2-123b-instruct-2512", - name: "Devstral-2-123B-Instruct-2512", - family: "devstral", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-08", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS-120B", - family: "gpt-oss", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-04", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/whisper-large-v3": { - id: "openai/whisper-large-v3", - name: "Whisper Large v3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "black-forest-labs/flux.1-dev": { - id: "black-forest-labs/flux.1-dev", - name: "FLUX.1-dev", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 0 }, - }, - }, - }, - fastrouter: { - id: "fastrouter", - env: ["FASTROUTER_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://go.fastrouter.ai/api/v1", - name: "FastRouter", - doc: "https://fastrouter.ai/models", - models: { - "deepseek-ai/deepseek-r1-distill-llama-70b": { - id: "deepseek-ai/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-23", - last_updated: "2025-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32768 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 256000, output: 64000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - iflowcn: { - id: "iflowcn", - env: ["IFLOW_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://apis.iflow.cn/v1", - name: "iFlow", - doc: "https://platform.iflow.cn/en/docs", - models: { - "kimi-k2": { - id: "kimi-k2", - name: "Kimi-K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 64000 }, - }, - "qwen3-max-preview": { - id: "qwen3-max-preview", - name: "Qwen3-Max-Preview", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "kimi-k2-0905": { - id: "kimi-k2-0905", - name: "Kimi-K2-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-235b-a22b-instruct": { - id: "qwen3-235b-a22b-instruct", - name: "Qwen3-235B-A22B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2-Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 64000 }, - }, - "qwen3-235b": { - id: "qwen3-235b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL-Plus", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3-235B-A22B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3-Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3-Coder-Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - }, - }, - modelscope: { - id: "modelscope", - env: ["MODELSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api-inference.modelscope.cn/v1", - name: "ModelScope", - doc: "https://modelscope.cn/docs/model-service/API-Inference/intro", - models: { - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "ZhipuAI/GLM-4.6": { - id: "ZhipuAI/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 202752, output: 98304 }, - }, - "ZhipuAI/GLM-4.5": { - id: "ZhipuAI/GLM-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 98304 }, - }, - }, - }, - llama: { - id: "llama", - env: ["LLAMA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.llama.com/compat/v1/", - name: "Llama", - doc: "https://llama.developer.meta.com/docs/models", - models: { - "cerebras-llama-4-maverick-17b-128e-instruct": { - id: "cerebras-llama-4-maverick-17b-128e-instruct", - name: "Cerebras-Llama-4-Maverick-17B-128E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-scout-17b-16e-instruct-fp8": { - id: "llama-4-scout-17b-16e-instruct-fp8", - name: "Llama-4-Scout-17B-16E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-8b-instruct": { - id: "llama-3.3-8b-instruct", - name: "Llama-3.3-8B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "groq-llama-4-maverick-17b-128e-instruct": { - id: "groq-llama-4-maverick-17b-128e-instruct", - name: "Groq-Llama-4-Maverick-17B-128E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cerebras-llama-4-scout-17b-16e-instruct": { - id: "cerebras-llama-4-scout-17b-16e-instruct", - name: "Cerebras-Llama-4-Scout-17B-16E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - }, - }, - inference: { - id: "inference", - env: ["INFERENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://inference.net/v1", - name: "Inference", - doc: "https://inference.net/models", - models: { - "mistral/mistral-nemo-12b-instruct": { - id: "mistral/mistral-nemo-12b-instruct", - name: "Mistral Nemo 12B Instruct", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.038, output: 0.1 }, - limit: { context: 16000, output: 4096 }, - }, - "google/gemma-3": { - id: "google/gemma-3", - name: "Google Gemma 3", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.3 }, - limit: { context: 125000, output: 4096 }, - }, - "qwen/qwen3-embedding-4b": { - id: "qwen/qwen3-embedding-4b", - name: "Qwen 3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 2048 }, - }, - "qwen/qwen-2.5-7b-vision-instruct": { - id: "qwen/qwen-2.5-7b-vision-instruct", - name: "Qwen 2.5 7B Vision Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 125000, output: 4096 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.055, output: 0.055 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-3b-instruct": { - id: "meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-1b-instruct": { - id: "meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.1-8b-instruct": { - id: "meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.025, output: 0.025 }, - limit: { context: 16000, output: 4096 }, - }, - "osmosis/osmosis-structure-0.6b": { - id: "osmosis/osmosis-structure-0.6b", - name: "Osmosis Structure 0.6B", - family: "osmosis", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 4000, output: 2048 }, - }, - }, - }, - deepinfra: { - id: "deepinfra", - env: ["DEEPINFRA_API_KEY"], - npm: "@ai-sdk/deepinfra", - name: "Deep Infra", - doc: "https://deepinfra.com/models", - models: { - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 1.74, cache_read: 0.08 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 98304 }, - status: "deprecated", - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.56, cache_read: 0.16 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-06", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.95, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2": { - id: "MiniMaxAI/MiniMax-M2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.254, output: 1.02 }, - limit: { context: 262144, output: 32768 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.15, cache_read: 0.35 }, - limit: { context: 163840, output: 64000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.26, output: 0.38, cache_read: 0.13 }, - limit: { context: 163840, output: 64000 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.8 }, - limit: { context: 262144, output: 32768 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-06", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.47, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "meta-llama/Llama-3.1-8B-Instruct-Turbo": { - id: "meta-llama/Llama-3.1-8B-Instruct-Turbo", - name: "Llama 3.1 8B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.1-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.1-70B-Instruct-Turbo", - name: "Llama 3.1 70B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama 4 Scout 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 10000000, output: 16384 }, - }, - "meta-llama/Llama-3.1-70B-Instruct": { - id: "meta-llama/Llama-3.1-70B-Instruct", - name: "Llama 3.1 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1000000, output: 16384 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", - name: "Llama 3.3 70B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.32 }, - limit: { context: 131072, output: 16384 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", - name: "Qwen3 Coder 480B A35B Instruct Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 262144, output: 66536 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.24 }, - limit: { context: 131072, output: 16384 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 16384 }, - }, - "anthropic/claude-3-7-sonnet-latest": { - id: "anthropic/claude-3-7-sonnet-latest", - name: "Claude Sonnet 3.7 (Latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.3, output: 16.5, cache_read: 0.33 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-4-opus": { - id: "anthropic/claude-4-opus", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-06-12", - last_updated: "2025-06-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 82.5 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - "perplexity-agent": { - id: "perplexity-agent", - env: ["PERPLEXITY_API_KEY"], - npm: "@ai-sdk/openai", - api: "https://api.perplexity.ai/v1", - name: "Perplexity Agent", - doc: "https://docs.perplexity.ai/docs/agent-api/models", - models: { - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2.5 }, - limit: { context: 1000000, output: 32000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 1.25, - output: 10, - cache_read: 0.125, - context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2.5, cache_read: 0.0625 }, - limit: { context: 128000, output: 8192 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 128000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "xai/grok-4-1-fast-non-reasoning": { - id: "xai/grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - }, - }, - xiaomi: { - id: "xiaomi", - env: ["XIAOMI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.xiaomimimo.com/v1", - name: "Xiaomi", - doc: "https://platform.xiaomimimo.com/#/docs", - models: { - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.08 }, - limit: { context: 256000, output: 128000 }, - }, - "mimo-v2-flash": { - id: "mimo-v2-flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12-01", - release_date: "2025-12-16", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 256000, output: 64000 }, - }, - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, cache_read: 0.2 }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - synthetic: { - id: "synthetic", - env: ["SYNTHETIC_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.synthetic.new/openai/v1", - name: "Synthetic", - doc: "https://synthetic.new/pricing", - models: { - "hf:MiniMaxAI/MiniMax-M2.5": { - id: "hf:MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-07", - last_updated: "2026-02-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.6 }, - limit: { context: 191488, output: 65536 }, - }, - "hf:MiniMaxAI/MiniMax-M2": { - id: "hf:MiniMaxAI/MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 196608, output: 131000 }, - }, - "hf:MiniMaxAI/MiniMax-M2.1": { - id: "hf:MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 204800, output: 131072 }, - }, - "hf:deepseek-ai/DeepSeek-R1": { - id: "hf:deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-R1-0528": { - id: "hf:deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 (0528)", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 8 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.1": { - id: "hf:deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.2": { - id: "hf:deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4, cache_read: 0.27, cache_write: 0 }, - limit: { context: 162816, input: 162816, output: 8000 }, - }, - "hf:deepseek-ai/DeepSeek-V3-0324": { - id: "hf:deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 (0324)", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3": { - id: "hf:deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:moonshotai/Kimi-K2-Instruct-0905": { - id: "hf:moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 262144, output: 32768 }, - }, - "hf:moonshotai/Kimi-K2.5": { - id: "hf:moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:moonshotai/Kimi-K2-Thinking": { - id: "hf:moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 262144 }, - }, - "hf:openai/gpt-oss-120b": { - id: "hf:openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:nvidia/Kimi-K2.5-NVFP4": { - id: "hf:nvidia/Kimi-K2.5-NVFP4", - name: "Kimi K2.5 (NVFP4)", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama-4-Scout-17B-16E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 328000, output: 4096 }, - }, - "hf:meta-llama/Llama-3.1-405B-Instruct": { - id: "hf:meta-llama/Llama-3.1-405B-Instruct", - name: "Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.1-70B-Instruct": { - id: "hf:meta-llama/Llama-3.1-70B-Instruct", - name: "Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.1-8B-Instruct": { - id: "hf:meta-llama/Llama-3.1-8B-Instruct", - name: "Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.3-70B-Instruct": { - id: "hf:meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 524000, output: 4096 }, - }, - "hf:zai-org/GLM-4.7-Flash": { - id: "hf:zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-18", - last_updated: "2026-01-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.06 }, - limit: { context: 196608, output: 65536 }, - }, - "hf:zai-org/GLM-4.6": { - id: "hf:zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 200000, output: 64000 }, - }, - "hf:zai-org/GLM-4.7": { - id: "hf:zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 200000, output: 64000 }, - }, - "hf:Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 3 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "hf:Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen 3 Coder 480B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen 3 235B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 256000, output: 32000 }, - }, - }, - }, - nebius: { - id: "nebius", - env: ["NEBIUS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.tokenfactory.nebius.com/v1", - name: "Nebius Token Factory", - doc: "https://docs.tokenfactory.nebius.com/", - models: { - "zai-org/GLM-4.7-FP8": { - id: "zai-org/GLM-4.7-FP8", - name: "GLM-4.7 (FP8)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM-4.5-Air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "GLM-4.5", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-03-01", - last_updated: "2026-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3.2, cache_read: 0.1, cache_write: 1 }, - limit: { context: 200000, input: 200000, output: 16384 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron-3-Super-120B-A12B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": { - id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", - name: "Llama-3.1-Nemotron-Ultra-253B-v1", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "nvidia/Nemotron-Nano-V2-12b": { - id: "nvidia/Nemotron-Nano-V2-12b", - name: "Nemotron-Nano-V2-12b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.2, cache_read: 0.007, cache_write: 0.08 }, - limit: { context: 32000, input: 30000, output: 4096 }, - }, - "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": { - id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B", - name: "Nemotron-3-Nano-30B-A3B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24, cache_read: 0.006, cache_write: 0.075 }, - limit: { context: 32000, input: 30000, output: 4096 }, - }, - "NousResearch/Hermes-4-405B": { - id: "NousResearch/Hermes-4-405B", - name: "Hermes-4-405B", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, reasoning: 3, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "NousResearch/Hermes-4-70B": { - id: "NousResearch/Hermes-4-70B", - name: "Hermes-4-70B", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, reasoning: 0.4, cache_read: 0.013, cache_write: 0.16 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "BAAI/bge-en-icl": { - id: "BAAI/bge-en-icl", - name: "BGE-ICL", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-06", - release_date: "2024-07-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "BAAI/bge-multilingual-gemma2": { - id: "BAAI/bge-multilingual-gemma2", - name: "bge-multilingual-gemma2", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-06", - release_date: "2024-07-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 8192, input: 8192, output: 0 }, - }, - "PrimeIntellect/INTELLECT-3": { - id: "PrimeIntellect/INTELLECT-3", - name: "INTELLECT-3", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-25", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-02-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, reasoning: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3-0324-fast": { - id: "deepseek-ai/DeepSeek-V3-0324-fast", - name: "DeepSeek-V3-0324 (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.25, cache_read: 0.075, cache_write: 0.28125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.4, reasoning: 2.4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 128000, input: 120000, output: 32768 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45, reasoning: 0.45, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 163000, input: 160000, output: 16384 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek-V3-0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5, cache_read: 0.05, cache_write: 0.1875 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1-0528-fast": { - id: "deepseek-ai/DeepSeek-R1-0528-fast", - name: "DeepSeek R1 0528 Fast", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 8192 }, - }, - "intfloat/e5-mistral-7b-instruct": { - id: "intfloat/e5-mistral-7b-instruct", - name: "e5-mistral-7b-instruct", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2023-12", - release_date: "2024-01-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi-K2-Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-05", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.4, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 200000, input: 190000, output: 8192 }, - }, - "moonshotai/Kimi-K2.5-fast": { - id: "moonshotai/Kimi-K2.5-fast", - name: "Kimi-K2.5-fast", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-15", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.5, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-15", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.5, reasoning: 2.5, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi-K2-Thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, reasoning: 2.5, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "google/gemma-2-2b-it": { - id: "google/gemma-2-2b-it", - name: "Gemma-2-2b-it", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-07-31", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 8192, input: 8000, output: 4096 }, - }, - "google/gemma-3-27b-it-fast": { - id: "google/gemma-3-27b-it-fast", - name: "Gemma-3-27b-it (Fast)", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 110000, input: 100000, output: 8192 }, - }, - "google/gemma-2-9b-it-fast": { - id: "google/gemma-2-9b-it-fast", - name: "Gemma-2-9b-it (Fast)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-27", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.0375 }, - limit: { context: 8192, input: 8000, output: 4096 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma-3-27b-it", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 110000, input: 100000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "Meta-Llama-3.1-8B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-07-23", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "meta-llama/Llama-Guard-3-8B": { - id: "meta-llama/Llama-Guard-3-8B", - name: "Llama-Guard-3-8B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: false, - knowledge: "2024-04", - release_date: "2024-04-18", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 8192, input: 8000, output: 1024 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-fast": { - id: "meta-llama/Llama-3.3-70B-Instruct-fast", - name: "Llama-3.3-70B-Instruct (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-12-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct-fast": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", - name: "Meta-Llama-3.1-8B-Instruct (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-07-23", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-12-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, cache_read: 0.013, cache_write: 0.16 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3-30B-A3B-Instruct-2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3-32B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 8192 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3-30B-A3B-Thinking-2507", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, reasoning: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.8 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen2.5-VL-72B-Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen3-Embedding-8B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2025-10", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "Qwen/Qwen3-32B-fast": { - id: "Qwen/Qwen3-32B-fast", - name: "Qwen3-32B (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.2, reasoning: 1.2, cache_read: 0.015, cache_write: 0.18 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "Qwen/Qwen2.5-Coder-7B-fast": { - id: "Qwen/Qwen2.5-Coder-7B-fast", - name: "Qwen2.5-Coder-7B (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-19", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3-Coder-30B-A3B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6, reasoning: 0.6, cache_read: 0.015, cache_write: 0.18 }, - limit: { context: 128000, input: 124000, output: 8192 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2, cache_read: 0.005, cache_write: 0.06 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "black-forest-labs/flux-dev": { - id: "black-forest-labs/flux-dev", - name: "FLUX.1-dev", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-07", - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 77, input: 77, output: 0 }, - }, - "black-forest-labs/flux-schnell": { - id: "black-forest-labs/flux-schnell", - name: "FLUX.1-schnell", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-07", - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 77, input: 77, output: 0 }, - }, - }, - }, - "qiniu-ai": { - id: "qiniu-ai", - env: ["QINIU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.qnaigc.com/v1", - name: "Qiniu", - doc: "https://developer.qiniu.com/aitokenapi", - models: { - "claude-4.5-haiku": { - id: "claude-4.5-haiku", - name: "Claude 4.5 Haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "claude-3.5-sonnet": { - id: "claude-3.5-sonnet", - name: "Claude 3.5 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-09", - last_updated: "2025-09-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 8200 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235b A22B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 64000 }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 128000 }, - }, - "claude-3.7-sonnet": { - id: "claude-3.7-sonnet", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "qwen3-max-preview": { - id: "qwen3-max-preview", - name: "Qwen3 Max Preview", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-06", - last_updated: "2025-09-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 32768 }, - }, - "claude-4.0-sonnet": { - id: "claude-4.0-sonnet", - name: "Claude 4.0 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "qwen-vl-max-2025-01-25": { - id: "qwen-vl-max-2025-01-25", - name: "Qwen VL-MAX-2025-01-25", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek-V3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "doubao-seed-1.6-thinking": { - id: "doubao-seed-1.6-thinking", - name: "Doubao-Seed 1.6 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-14", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262000, output: 4096 }, - }, - "mimo-v2-flash": { - id: "mimo-v2-flash", - name: "Mimo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131000, output: 4096 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 98304 }, - }, - "claude-4.5-sonnet": { - id: "claude-4.5-sonnet", - name: "Claude 4.5 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "qwen2.5-vl-7b-instruct": { - id: "qwen2.5-vl-7b-instruct", - name: "Qwen 2.5 VL 7B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "doubao-seed-2.0-pro": { - id: "doubao-seed-2.0-pro", - name: "Doubao Seed 2.0 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 64000 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "doubao-seed-1.6": { - id: "doubao-seed-1.6", - name: "Doubao-Seed 1.6", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "doubao-seed-2.0-mini": { - id: "doubao-seed-2.0-mini", - name: "Doubao Seed 2.0 Mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "claude-4.0-opus": { - id: "claude-4.0-opus", - name: "Claude 4.0 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 32000 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen-Turbo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 4096 }, - }, - "gemini-3.0-pro-preview": { - id: "gemini-3.0-pro-preview", - name: "Gemini 3.0 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 64000 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 40000, output: 4096 }, - }, - "doubao-1.5-vision-pro": { - id: "doubao-1.5-vision-pro", - name: "Doubao 1.5 Vision Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "gemini-3.0-pro-image-preview": { - id: "gemini-3.0-pro-image-preview", - name: "Gemini 3.0 Pro Image Preview", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 32768, output: 8192 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-22", - last_updated: "2026-02-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 64000 }, - }, - "claude-3.5-haiku": { - id: "claude-3.5-haiku", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 8192 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "doubao-1.5-pro-32k": { - id: "doubao-1.5-pro-32k", - name: "Doubao 1.5 Pro 32k", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 12000 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30b A3b Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "qwen2.5-vl-72b-instruct": { - id: "qwen2.5-vl-72b-instruct", - name: "Qwen 2.5 VL 72B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen 3 235B A22B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "doubao-seed-2.0-lite": { - id: "doubao-seed-2.0-lite", - name: "Doubao Seed 2.0 Lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "claude-4.1-opus": { - id: "claude-4.1-opus", - name: "Claude 4.1 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 32000 }, - }, - "doubao-1.5-thinking-pro": { - id: "doubao-1.5-thinking-pro", - name: "Doubao 1.5 Thinking Pro", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 32768, output: 8192 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax M1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 80000 }, - }, - "doubao-seed-1.6-flash": { - id: "doubao-seed-1.6-flash", - name: "Doubao-Seed 1.6 Flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-vl-30b-a3b-thinking": { - id: "qwen3-vl-30b-a3b-thinking", - name: "Qwen3-Vl 30b A3b Thinking", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-09", - last_updated: "2026-02-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "doubao-seed-2.0-code": { - id: "doubao-seed-2.0-code", - name: "Doubao Seed 2.0 Code", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 128000 }, - }, - "qwen3-30b-a3b-thinking-2507": { - id: "qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30b A3b Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 126000, output: 32000 }, - }, - "claude-4.5-opus": { - id: "claude-4.5-opus", - name: "Claude 4.5 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 4096 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 32768 }, - }, - "gemini-3.0-flash-preview": { - id: "gemini-3.0-flash-preview", - name: "Gemini 3.0 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 64000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 40000, output: 4096 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "kling-v2-6": { - id: "kling-v2-6", - name: "Kling-V2 6", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-13", - last_updated: "2026-01-13", - modalities: { input: ["text", "image", "video"], output: ["video"] }, - open_weights: false, - limit: { context: 99999999, output: 99999999 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 8192 }, - }, - "qwen-max-2025-01-25": { - id: "qwen-max-2025-01-25", - name: "Qwen2.5-Max-2025-01-25", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "Xiaomi/Mimo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-26", - last_updated: "2025-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Stepfun/Step-3.5 Flash", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 64000, output: 4096 }, - }, - "deepseek/deepseek-v3.2-exp-thinking": { - id: "deepseek/deepseek-v3.2-exp-thinking", - name: "DeepSeek/DeepSeek-V3.2-Exp-Thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek/DeepSeek-V3.1-Terminus", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.2-251201": { - id: "deepseek/deepseek-v3.2-251201", - name: "Deepseek/DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-math-v2": { - id: "deepseek/deepseek-math-v2", - name: "Deepseek/Deepseek-Math-V2", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 160000, output: 160000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek/DeepSeek-V3.2-Exp", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.1-terminus-thinking": { - id: "deepseek/deepseek-v3.1-terminus-thinking", - name: "DeepSeek/DeepSeek-V3.1-Terminus-Thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 100000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Moonshotai/Kimi-K2.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 100000 }, - }, - "z-ai/autoglm-phone-9b": { - id: "z-ai/autoglm-phone-9b", - name: "Z-Ai/Autoglm Phone 9b", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 12800, output: 4096 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "Z-Ai/GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "Z-AI/GLM 4.6", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "Z-Ai/GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "stepfun-ai/gelab-zero-4b-preview": { - id: "stepfun-ai/gelab-zero-4b-preview", - name: "Stepfun-Ai/Gelab Zero 4b Preview", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 8192, output: 4096 }, - }, - "meituan/longcat-flash-lite": { - id: "meituan/longcat-flash-lite", - name: "Meituan/Longcat-Flash-Lite", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 320000 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "Meituan/Longcat-Flash-Chat", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-05", - last_updated: "2025-11-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 131072 }, - }, - "x-ai/grok-4-fast-reasoning": { - id: "x-ai/grok-4-fast-reasoning", - name: "X-Ai/Grok-4-Fast-Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "x-AI/Grok-Code-Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-02", - last_updated: "2025-09-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4.1-fast-reasoning": { - id: "x-ai/grok-4.1-fast-reasoning", - name: "X-Ai/Grok 4.1 Fast Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 20000000, output: 2000000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "x-AI/Grok-4-Fast", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-20", - last_updated: "2025-09-20", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast-non-reasoning": { - id: "x-ai/grok-4.1-fast-non-reasoning", - name: "X-Ai/Grok 4.1 Fast Non Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "x-AI/Grok-4.1-Fast", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4-fast-non-reasoning": { - id: "x-ai/grok-4-fast-non-reasoning", - name: "X-Ai/Grok-4-Fast-Non-Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "OpenAI/GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "OpenAI/GPT-5", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 400000, output: 128000 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "Minimax/Minimax-M2.5 Highspeed", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax/Minimax-M2.1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "Minimax/Minimax-M2", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "Minimax/Minimax-M2.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - }, - }, - "ollama-cloud": { - id: "ollama-cloud", - env: ["OLLAMA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://ollama.com/v1", - name: "Ollama Cloud", - doc: "https://docs.ollama.com/cloud", - models: { - "glm-5": { - id: "glm-5", - name: "glm-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "qwen3-coder:480b": { - id: "qwen3-coder:480b", - name: "qwen3-coder:480b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-22", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "nemotron-3-nano:30b": { - id: "nemotron-3-nano:30b", - name: "nemotron-3-nano:30b", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 1048576, output: 131072 }, - }, - "ministral-3:8b": { - id: "ministral-3:8b", - name: "ministral-3:8b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "qwen3-coder-next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2026-02-02", - last_updated: "2026-02-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "gpt-oss:120b": { - id: "gpt-oss:120b", - name: "gpt-oss:120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 32768 }, - }, - "devstral-2:123b": { - id: "devstral-2:123b", - name: "devstral-2:123b", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-09", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "glm-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-09-29", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "qwen3-vl:235b-instruct": { - id: "qwen3-vl:235b-instruct", - name: "qwen3-vl:235b-instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-09-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 1048576, output: 65536 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "minimax-m2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-23", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "ministral-3:14b": { - id: "ministral-3:14b", - name: "ministral-3:14b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "qwen3-next:80b": { - id: "qwen3-next:80b", - name: "qwen3-next:80b", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-09-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 32768 }, - }, - "kimi-k2:1t": { - id: "kimi-k2:1t", - name: "kimi-k2:1t", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "gemma3:12b": { - id: "gemma3:12b", - name: "gemma3:12b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "minimax-m2.7": { - id: "minimax-m2.7", - name: "minimax-m2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "kimi-k2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "gpt-oss:20b": { - id: "gpt-oss:20b", - name: "gpt-oss:20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 32768 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "deepseek-v3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-06-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 65536 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "glm-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-22", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "kimi-k2-thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "ministral-3:3b": { - id: "ministral-3:3b", - name: "ministral-3:3b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-10-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "qwen3.5:397b": { - id: "qwen3.5:397b", - name: "qwen3.5:397b", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - release_date: "2026-02-15", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 81920 }, - }, - "gemma3:27b": { - id: "gemma3:27b", - name: "gemma3:27b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2025-07-27", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "minimax-m2", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-10-23", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 128000 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "minimax-m2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "devstral-small-2:24b": { - id: "devstral-small-2:24b", - name: "devstral-small-2:24b", - family: "devstral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-12-09", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "nemotron-3-super": { - id: "nemotron-3-super", - name: "nemotron-3-super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "cogito-2.1:671b": { - id: "cogito-2.1:671b", - name: "cogito-2.1:671b", - family: "cogito", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-11-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 32000 }, - }, - "gemma3:4b": { - id: "gemma3:4b", - name: "gemma3:4b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-v3.1:671b": { - id: "deepseek-v3.1:671b", - name: "deepseek-v3.1:671b", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-21", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 163840 }, - }, - "mistral-large-3:675b": { - id: "mistral-large-3:675b", - name: "mistral-large-3:675b", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-12-02", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "rnj-1:8b": { - id: "rnj-1:8b", - name: "rnj-1:8b", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-06", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 32768, output: 4096 }, - }, - "qwen3-vl:235b": { - id: "qwen3-vl:235b", - name: "qwen3-vl:235b", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2025-09-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 32768 }, - }, - }, - }, - scaleway: { - id: "scaleway", - env: ["SCALEWAY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.scaleway.ai/v1", - name: "Scaleway", - doc: "https://www.scaleway.com/en/docs/generative-apis/", - models: { - "voxtral-small-24b-2507": { - id: "voxtral-small-24b-2507", - name: "Voxtral Small 24B 2507", - family: "voxtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-17", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 32000, output: 16384 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.25 }, - limit: { context: 260000, output: 16384 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 100000, output: 16384 }, - }, - "mistral-small-3.2-24b-instruct-2506": { - id: "mistral-small-3.2-24b-instruct-2506", - name: "Mistral Small 3.2 24B Instruct (2506)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-20", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 128000, output: 32768 }, - }, - "qwen3-embedding-8b": { - id: "qwen3-embedding-8b", - name: "Qwen3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-25-11", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 32768, output: 4096 }, - }, - "bge-multilingual-gemma2": { - id: "bge-multilingual-gemma2", - name: "BGE Multilingual Gemma2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-07-26", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 256000, output: 16384 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 32768 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 32000, output: 8196 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 128000, output: 32768 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper Large v3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2026-03-17", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.003, output: 0 }, - limit: { context: 0, output: 8192 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "devstral-2-123b-instruct-2512": { - id: "devstral-2-123b-instruct-2512", - name: "Devstral 2 123B Instruct (2512)", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-07", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, output: 16384 }, - }, - "pixtral-12b-2409": { - id: "pixtral-12b-2409", - name: "Pixtral 12B 2409", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-25", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral-nemo-instruct-2407": { - id: "mistral-nemo-instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral-nemo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-25", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 8192 }, - }, - "gemma-3-27b-it": { - id: "gemma-3-27b-it", - name: "Gemma-3-27B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.5 }, - limit: { context: 40000, output: 8192 }, - }, - }, - }, - dinference: { - id: "dinference", - env: ["DINFERENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.dinference.com/v1", - name: "DInference", - doc: "https://dinference.com", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.4 }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08", - last_updated: "2025-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0675, output: 0.27 }, - limit: { context: 131072, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.65 }, - limit: { context: 200000, output: 128000 }, - }, - }, - }, - "cloudflare-ai-gateway": { - id: "cloudflare-ai-gateway", - env: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"], - npm: "ai-gateway-provider", - name: "Cloudflare AI Gateway", - doc: "https://developers.cloudflare.com/ai-gateway/", - models: { - "workers-ai/@cf/zai-org/glm-4.7-flash": { - id: "workers-ai/@cf/zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { - id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { - id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", - name: "IBM Granite 4.0 H Micro", - family: "granite", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-small-en-v1.5": { - id: "workers-ai/@cf/baai/bge-small-en-v1.5", - name: "BGE Small EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-large-en-v1.5": { - id: "workers-ai/@cf/baai/bge-large-en-v1.5", - name: "BGE Large EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-reranker-base": { - id: "workers-ai/@cf/baai/bge-reranker-base", - name: "BGE Reranker Base", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0031, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-m3": { - id: "workers-ai/@cf/baai/bge-m3", - name: "BGE M3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-base-en-v1.5": { - id: "workers-ai/@cf/baai/bge-base-en-v1.5", - name: "BGE Base EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.067, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/pfnet/plamo-embedding-1b": { - id: "workers-ai/@cf/pfnet/plamo-embedding-1b", - name: "PLaMo Embedding 1B", - family: "plamo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.019, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { - id: "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 4.88 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/facebook/bart-large-cnn": { - id: "workers-ai/@cf/facebook/bart-large-cnn", - name: "BART Large CNN", - family: "bart", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1": { - id: "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1", - name: "Mistral 7B Instruct v0.1", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/myshell-ai/melotts": { - id: "workers-ai/@cf/myshell-ai/melotts", - name: "MyShell MeloTTS", - family: "melotts", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/pipecat-ai/smart-turn-v2": { - id: "workers-ai/@cf/pipecat-ai/smart-turn-v2", - name: "Pipecat Smart Turn v2", - family: "smart-turn", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/moonshotai/kimi-k2.5": { - id: "workers-ai/@cf/moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "workers-ai/@cf/google/gemma-3-12b-it": { - id: "workers-ai/@cf/google/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwq-32b": { - id: "workers-ai/@cf/qwen/qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { - id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct": { - id: "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct", - name: "Qwen 2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen3-embedding-0.6b": { - id: "workers-ai/@cf/qwen/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8", - name: "Llama 3.1 8B Instruct FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.29 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3-8b-instruct-awq": { - id: "workers-ai/@cf/meta/llama-3-8b-instruct-awq", - name: "Llama 3 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq", - name: "Llama 3.1 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { - id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049, output: 0.68 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-3b-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-guard-3-8b": { - id: "workers-ai/@cf/meta/llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 0.03 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-1b-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { - id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", - name: "Llama 3.3 70B Instruct FP8 Fast", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.25 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.8299999999999998 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/m2m100-1.2b": { - id: "workers-ai/@cf/meta/m2m100-1.2b", - name: "M2M100 1.2B", - family: "m2m", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-2-7b-chat-fp16": { - id: "workers-ai/@cf/meta/llama-2-7b-chat-fp16", - name: "Llama 2 7B Chat FP16", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 6.67 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3-8b-instruct": { - id: "workers-ai/@cf/meta/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.83 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { - id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/aura-2-es": { - id: "workers-ai/@cf/deepgram/aura-2-es", - name: "Deepgram Aura 2 (ES)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/nova-3": { - id: "workers-ai/@cf/deepgram/nova-3", - name: "Deepgram Nova 3", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/aura-2-en": { - id: "workers-ai/@cf/deepgram/aura-2-en", - name: "Deepgram Aura 2 (EN)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/openai/gpt-oss-120b": { - id: "workers-ai/@cf/openai/gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/openai/gpt-oss-20b": { - id: "workers-ai/@cf/openai/gpt-oss-20b", - name: "GPT OSS 20B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B": { - id: "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B", - name: "IndicTrans2 EN-Indic 1B", - family: "indictrans", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/huggingface/distilbert-sst-2-int8": { - id: "workers-ai/@cf/huggingface/distilbert-sst-2-int8", - name: "DistilBERT SST-2 INT8", - family: "distilbert", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.026, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it": { - id: "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it", - name: "Gemma SEA-LION v4 27B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5-turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2021-09-01", - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4": { - id: "openai/gpt-4", - name: "GPT-4", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4-1": { - id: "anthropic/claude-opus-4-1", - name: "Claude Opus 4.1 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3-sonnet": { - id: "anthropic/claude-3-sonnet", - name: "Claude Sonnet 3", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-3-5-haiku": { - id: "anthropic/claude-3-5-haiku", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-opus": { - id: "anthropic/claude-3-opus", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "kuae-cloud-coding-plan": { - id: "kuae-cloud-coding-plan", - env: ["KUAE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding-plan-endpoint.kuaecloud.net/v1", - name: "KUAE Cloud Coding Plan", - doc: "https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/", - models: { - "GLM-4.7": { - id: "GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - upstage: { - id: "upstage", - env: ["UPSTAGE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.upstage.ai/v1/solar", - name: "Upstage", - doc: "https://developers.upstage.ai/docs/apis/chat", - models: { - "solar-pro2": { - id: "solar-pro2", - name: "solar-pro2", - family: "solar-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 65536, output: 8192 }, - }, - "solar-mini": { - id: "solar-mini", - name: "solar-mini", - family: "solar-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-06-12", - last_updated: "2025-04-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 4096 }, - }, - "solar-pro3": { - id: "solar-pro3", - name: "solar-pro3", - family: "solar-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 131072, output: 8192 }, - }, - }, - }, - inception: { - id: "inception", - env: ["INCEPTION_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.inceptionlabs.ai/v1/", - name: "Inception", - doc: "https://platform.inceptionlabs.ai/docs", - models: { - "mercury-2": { - id: "mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - mercury: { - id: "mercury", - name: "Mercury", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-06-26", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "mercury-edit": { - id: "mercury-edit", - name: "Mercury Edit", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 8192 }, - }, - "mercury-coder": { - id: "mercury-coder", - name: "Mercury Coder", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-02-26", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - submodel: { - id: "submodel", - env: ["SUBMODEL_INSTAGEN_ACCESS_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://llm.submodel.ai/v1", - name: "submodel", - doc: "https://submodel.gitbook.io", - models: { - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "zai-org/GLM-4.5-FP8": { - id: "zai-org/GLM-4.5-FP8", - name: "GLM 4.5 FP8", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.15 }, - limit: { context: 75000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 75000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 75000, output: 163840 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 262144, output: 131072 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - "minimax-cn-coding-plan": { - id: "minimax-cn-coding-plan", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimaxi.com/anthropic/v1", - name: "MiniMax Coding Plan (minimaxi.com)", - doc: "https://platform.minimaxi.com/docs/coding-plan/intro", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "novita-ai": { - id: "novita-ai", - env: ["NOVITA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.novita.ai/openai", - name: "NovitaAI", - doc: "https://novita.ai/docs/guides/introduction", - models: { - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131072 }, - }, - "zai-org/glm-4.5-air": { - id: "zai-org/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-10-13", - last_updated: "2025-10-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.85 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/glm-4.6": { - id: "zai-org/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/autoglm-phone-9b-multilingual": { - id: "zai-org/autoglm-phone-9b-multilingual", - name: "AutoGLM-Phone-9B-Multilingual", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-12-10", - last_updated: "2025-12-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.035, output: 0.138 }, - limit: { context: 65536, output: 65536 }, - }, - "zai-org/glm-4.5v": { - id: "zai-org/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 65536, output: 16384 }, - }, - "zai-org/glm-4.6v": { - id: "zai-org/glm-4.6v", - name: "GLM 4.6V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9, cache_read: 0.055 }, - limit: { context: 131072, output: 32768 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "Wizardlm 2 8x22B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-24", - last_updated: "2024-04-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 0.62 }, - limit: { context: 65535, output: 8000 }, - }, - "minimaxai/minimax-m1-80k": { - id: "minimaxai/minimax-m1-80k", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "skywork/r1v4-lite": { - id: "skywork/r1v4-lite", - name: "Skywork R1V4-Lite", - family: "skywork", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 65536 }, - }, - "gryphe/mythomax-l2-13b": { - id: "gryphe/mythomax-l2-13b", - name: "Mythomax L2 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.09 }, - limit: { context: 4096, output: 3200 }, - }, - "paddlepaddle/paddleocr-vl": { - id: "paddlepaddle/paddleocr-vl", - name: "PaddleOCR-VL", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 16384, output: 16384 }, - }, - "baichuan/baichuan-m2-32b": { - id: "baichuan/baichuan-m2-32b", - name: "baichuan-m2-32b", - family: "baichuan", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-12", - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 131072, output: 131072 }, - }, - "kwaipilot/kat-coder-pro": { - id: "kwaipilot/kat-coder-pro", - name: "Kat Coder Pro", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-05", - last_updated: "2026-01-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 128000 }, - }, - "kwaipilot/kat-coder": { - id: "kwaipilot/kat-coder", - name: "KAT-Coder-Pro V1(Free)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek/deepseek-v3-turbo": { - id: "deepseek/deepseek-v3-turbo", - name: "DeepSeek V3 (Turbo)\t", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.3 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-prover-v2-671b": { - id: "deepseek/deepseek-prover-v2-671b", - name: "Deepseek Prover V2 671B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 160000, output: 160000 }, - }, - "deepseek/deepseek-r1-turbo": { - id: "deepseek/deepseek-r1-turbo", - name: "DeepSeek R1 (Turbo)\t", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-ocr-2": { - id: "deepseek/deepseek-ocr-2", - name: "deepseek/deepseek-ocr-2", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1, cache_read: 0.135 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5, cache_read: 0.35 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-r1-0528-qwen3-8b": { - id: "deepseek/deepseek-r1-0528-qwen3-8b", - name: "DeepSeek R1 0528 Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-05-29", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.09 }, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill LLama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.12, cache_read: 0.135 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "Deepseek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1, cache_read: 0.135 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "Deepseek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.269, output: 0.4, cache_read: 0.1345 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-ocr": { - id: "deepseek/deepseek-ocr", - name: "DeepSeek-OCR", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-10-24", - last_updated: "2025-10-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "Deepseek V3.2 Exp", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "baidu/ernie-4.5-vl-28b-a3b-thinking": { - id: "baidu/ernie-4.5-vl-28b-a3b-thinking", - name: "ERNIE-4.5-VL-28B-A3B-Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 0.39 }, - limit: { context: 131072, output: 65536 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "ERNIE 4.5 VL 424B A47B", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "ERNIE 4.5 VL 28B A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 5.6 }, - limit: { context: 30000, output: 8000 }, - }, - "baidu/ernie-4.5-300b-a47b-paddle": { - id: "baidu/ernie-4.5-300b-a47b-paddle", - name: "ERNIE 4.5 300B A47B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "baidu/ernie-4.5-21B-a3b": { - id: "baidu/ernie-4.5-21B-a3b", - name: "ERNIE 4.5 21B A3B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 120000, output: 8000 }, - }, - "baidu/ernie-4.5-21B-a3b-thinking": { - id: "baidu/ernie-4.5-21B-a3b-thinking", - name: "ERNIE-4.5-21B-A3B-Thinking", - family: "ernie", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131072, output: 65536 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.119, output: 0.2 }, - limit: { context: 98304, output: 16384 }, - }, - "qwen/qwen3-4b-fp8": { - id: "qwen/qwen3-4b-fp8", - name: "Qwen3 4B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 128000, output: 20000 }, - }, - "qwen/qwen3-235b-a22b-instruct-2507": { - id: "qwen/qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.58 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen/qwen3-32b-fp8": { - id: "qwen/qwen3-32b-fp8", - name: "Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.3 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-fp8": { - id: "qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 64000 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30b A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-09", - last_updated: "2025-10-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-instruct": { - id: "qwen/qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-mt-plus": { - id: "qwen/qwen-mt-plus", - name: "Qwen MT Plus", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-03", - last_updated: "2025-09-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen/qwen3-omni-30b-a3b-instruct": { - id: "qwen/qwen3-omni-30b-a3b-instruct", - name: "Qwen3 Omni 30B A3B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "video", "audio", "image"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen/qwen-2.5-72b-instruct": { - id: "qwen/qwen-2.5-72b-instruct", - name: "Qwen 2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-15", - last_updated: "2024-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 0.4 }, - limit: { context: 32000, output: 8192 }, - }, - "qwen/qwen3-vl-30b-a3b-thinking": { - id: "qwen/qwen3-vl-30b-a3b-thinking", - name: "qwen/qwen3-vl-30b-a3b-thinking", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-thinking": { - id: "qwen/qwen3-vl-235b-a22b-thinking", - name: "Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.98, output: 3.95 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22b Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen2.5-7b-instruct": { - id: "qwen/qwen2.5-7b-instruct", - name: "Qwen2.5 7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 32000, output: 32000 }, - }, - "qwen/qwen3-vl-30b-a3b-instruct": { - id: "qwen/qwen3-vl-30b-a3b-instruct", - name: "qwen/qwen3-vl-30b-a3b-instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-fp8": { - id: "qwen/qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-vl-8b-instruct": { - id: "qwen/qwen3-vl-8b-instruct", - name: "qwen/qwen3-vl-8b-instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-17", - last_updated: "2025-10-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.11, output: 8.45 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-8b-fp8": { - id: "qwen/qwen3-8b-fp8", - name: "Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.035, output: 0.138 }, - limit: { context: 128000, output: 20000 }, - }, - "qwen/qwen3-omni-30b-a3b-thinking": { - id: "qwen/qwen3-omni-30b-a3b-thinking", - name: "Qwen3 Omni 30B A3B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "audio", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, - limit: { context: 65536, output: 16384 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-07", - last_updated: "2024-12-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.135, output: 0.4 }, - limit: { context: 131072, output: 120000 }, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - id: "meta-llama/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-06", - last_updated: "2025-04-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.59 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3-70b-instruct": { - id: "meta-llama/llama-3-70b-instruct", - name: "Llama3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 16384, output: 16384 }, - }, - "meta-llama/llama-3-8b-instruct": { - id: "meta-llama/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 8192, output: 8192 }, - }, - "meta-llama/llama-4-maverick-17b-128e-instruct-fp8": { - id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-06", - last_updated: "2025-04-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 1048576, output: 8192 }, - }, - "mistralai/mistral-nemo": { - id: "mistralai/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-07-30", - last_updated: "2024-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.17 }, - limit: { context: 60288, output: 16000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "OpenAI: GPT OSS 20B", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 131072, output: 32768 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131100 }, - }, - "sao10k/l3-70b-euryale-v2.1": { - id: "sao10k/l3-70b-euryale-v2.1", - name: "L3 70B Euryale V2.1\t", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-06-18", - last_updated: "2024-06-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l31-70b-euryale-v2.2": { - id: "sao10k/l31-70b-euryale-v2.2", - name: "L31 70B Euryale V2.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3-8b-lunaris": { - id: "sao10k/l3-8b-lunaris", - name: "Sao10k L3 8B Lunaris\t", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2024-11-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/L3-8B-Stheno-v3.2": { - id: "sao10k/L3-8B-Stheno-v3.2", - name: "L3 8B Stheno V3.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 8192, output: 32000 }, - }, - "xiaomimimo/mimo-v2-flash": { - id: "xiaomimimo/mimo-v2-flash", - name: "XiaomiMiMo/MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.3 }, - limit: { context: 262144, output: 32000 }, - }, - "nousresearch/hermes-2-pro-llama-3-8b": { - id: "nousresearch/hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, - }, - }, - }, - opencode: { - id: "opencode", - env: ["OPENCODE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://opencode.ai/zen/v1", - name: "OpenCode Zen", - doc: "https://opencode.ai/docs/zen", - models: { - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gemini-3.1-pro": { - id: "gemini-3.1-pro", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/google" }, - }, - "trinity-large-preview-free": { - id: "trinity-large-preview-free", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - status: "deprecated", - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "kimi-k2.5-free": { - id: "kimi-k2.5-free", - name: "Kimi K2.5 Free", - family: "kimi-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "grok-code": { - id: "grok-code", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-20", - last_updated: "2025-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 256000, output: 256000 }, - status: "deprecated", - }, - "nemotron-3-super-free": { - id: "nemotron-3-super-free", - name: "Nemotron 3 Super Free", - family: "nemotron-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1000000, output: 128000 }, - }, - "claude-3-5-haiku": { - id: "claude-3-5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "mimo-v2-flash-free": { - id: "mimo-v2-flash-free", - name: "MiMo V2 Flash Free", - family: "mimo-flash-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 65536 }, - status: "deprecated", - }, - "gemini-3-flash": { - id: "gemini-3-flash", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/google" }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.3-codex-spark": { - id: "gpt-5.3-codex-spark", - name: "GPT-5.3 Codex Spark", - family: "gpt-codex-spark", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 128000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "qwen3-coder": { - id: "qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.8 }, - limit: { context: 262144, output: 65536 }, - status: "deprecated", - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "mimo-v2-omni-free": { - id: "mimo-v2-omni-free", - name: "MiMo V2 Omni Free", - family: "mimo-omni-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 64000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.08 }, - limit: { context: 262144, output: 65536 }, - }, - "minimax-m2.1-free": { - id: "minimax-m2.1-free", - name: "MiniMax M2.1 Free", - family: "minimax-free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - provider: { npm: "@ai-sdk/anthropic" }, - }, - "mimo-v2-pro-free": { - id: "mimo-v2-pro-free", - name: "MiMo V2 Pro Free", - family: "mimo-pro-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1048576, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "glm-5-free": { - id: "glm-5-free", - name: "GLM-5 Free", - family: "glm-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "big-pickle": { - id: "big-pickle", - name: "Big Pickle", - family: "big-pickle", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-10-17", - last_updated: "2025-10-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.5-free": { - id: "minimax-m2.5-free", - name: "MiniMax M2.5 Free", - family: "minimax-free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "glm-4.7-free": { - id: "glm-4.7-free", - name: "GLM-4.7 Free", - family: "glm-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "gemini-3-pro": { - id: "gemini-3-pro", - name: "Gemini 3 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - status: "deprecated", - provider: { npm: "@ai-sdk/google" }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - }, - }, - poe: { - id: "poe", - env: ["POE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.poe.com/v1", - name: "Poe", - doc: "https://creator.poe.com/docs/external-applications/openai-compatible-api", - models: { - "stabilityai/stablediffusionxl": { - id: "stabilityai/stablediffusionxl", - name: "StableDiffusionXL", - family: "stable-diffusion", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-07-09", - last_updated: "2023-07-09", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 200, output: 0 }, - }, - "ideogramai/ideogram-v2": { - id: "ideogramai/ideogram-v2", - name: "Ideogram-v2", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-21", - last_updated: "2024-08-21", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram": { - id: "ideogramai/ideogram", - name: "Ideogram", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-04-03", - last_updated: "2024-04-03", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2a-turbo": { - id: "ideogramai/ideogram-v2a-turbo", - name: "Ideogram-v2a-Turbo", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2a": { - id: "ideogramai/ideogram-v2a", - name: "Ideogram-v2a", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "novita/glm-4.7-flash": { - id: "novita/glm-4.7-flash", - name: "glm-4.7-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 65500 }, - }, - "novita/glm-4.7-n": { - id: "novita/glm-4.7-n", - name: "glm-4.7-n", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/glm-4.6": { - id: "novita/glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "novita/minimax-m2.1": { - id: "novita/minimax-m2.1", - name: "minimax-m2.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-26", - last_updated: "2025-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/kimi-k2.5": { - id: "novita/kimi-k2.5", - name: "kimi-k2.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 262144 }, - }, - "novita/glm-4.7": { - id: "novita/glm-4.7", - name: "glm-4.7", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/kimi-k2-thinking": { - id: "novita/kimi-k2-thinking", - name: "kimi-k2-thinking", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 0 }, - }, - "novita/glm-4.6v": { - id: "novita/glm-4.6v", - name: "glm-4.6v", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 131000, output: 32768 }, - }, - "google/gemini-3.1-pro": { - id: "google/gemini-3.1-pro", - name: "Gemini-3.1-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/lyria": { - id: "google/lyria", - name: "Lyria", - family: "lyria", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "google/gemini-3-flash": { - id: "google/gemini-3-flash", - name: "Gemini-3-Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-07", - last_updated: "2025-10-07", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, cache_read: 0.04 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/imagen-3": { - id: "google/imagen-3", - name: "Imagen-3", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-15", - last_updated: "2024-10-15", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini-2.5-Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-26", - last_updated: "2025-04-26", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, - limit: { context: 1065535, output: 65535 }, - }, - "google/veo-3.1": { - id: "google/veo-3.1", - name: "Veo-3.1", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-3-fast": { - id: "google/imagen-3-fast", - name: "Imagen-3-Fast", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-17", - last_updated: "2024-10-17", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/nano-banana-pro": { - id: "google/nano-banana-pro", - name: "Nano-Banana-Pro", - family: "nano-banana", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 65536, output: 0 }, - }, - "google/veo-2": { - id: "google/veo-2", - name: "Veo-2", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-02", - last_updated: "2024-12-02", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-4-ultra": { - id: "google/imagen-4-ultra", - name: "Imagen-4-Ultra", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-24", - last_updated: "2025-05-24", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini-2.5-Flash-Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-19", - last_updated: "2025-06-19", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 1024000, output: 64000 }, - }, - "google/nano-banana": { - id: "google/nano-banana", - name: "Nano-Banana", - family: "nano-banana", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, - limit: { context: 65536, output: 0 }, - }, - "google/veo-3.1-fast": { - id: "google/veo-3.1-fast", - name: "Veo-3.1-Fast", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-deep-research": { - id: "google/gemini-deep-research", - name: "gemini-deep-research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 9.6 }, - limit: { context: 1048576, output: 0 }, - }, - "google/veo-3": { - id: "google/veo-3", - name: "Veo-3", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-4": { - id: "google/imagen-4", - name: "Imagen-4", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.0-flash-lite": { - id: "google/gemini-2.0-flash-lite", - name: "Gemini-2.0-Flash-Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.052, output: 0.21 }, - limit: { context: 990000, output: 8192 }, - }, - "google/gemini-3.1-flash-lite": { - id: "google/gemini-3.1-flash-lite", - name: "Gemini-3.1-Flash-Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro": { - id: "google/gemini-3-pro", - name: "Gemini-3-Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 9.6, cache_read: 0.16 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini-2.5-Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.87, output: 7, cache_read: 0.087 }, - limit: { context: 1065535, output: 65535 }, - }, - "google/gemini-2.0-flash": { - id: "google/gemini-2.0-flash", - name: "Gemini-2.0-Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.42 }, - limit: { context: 990000, output: 8192 }, - }, - "google/veo-3-fast": { - id: "google/veo-3-fast", - name: "Veo-3-Fast", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-13", - last_updated: "2025-10-13", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-4-fast": { - id: "google/imagen-4-fast", - name: "Imagen-4-Fast", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "lumalabs/ray2": { - id: "lumalabs/ray2", - name: "Ray2", - family: "ray", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 5000, output: 0 }, - }, - "poetools/claude-code": { - id: "poetools/claude-code", - name: "claude-code", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-27", - last_updated: "2025-11-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-10", - last_updated: "2026-02-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5-Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 14, output: 110 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.54, cache_read: 0.068 }, - limit: { context: 124096, output: 4096 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9, output: 36, cache_read: 2.2 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2024-12-18", - last_updated: "2024-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 14, output: 54 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "o4-mini-deep-research", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5-Chat", - family: "gpt-codex", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-classic": { - id: "openai/gpt-4-classic", - name: "GPT-4-Classic", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-03-25", - last_updated: "2024-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 27, output: 54 }, - limit: { context: 8192, output: 4096 }, - }, - "openai/gpt-5.3-instant": { - id: "openai/gpt-5.3-instant", - name: "GPT-5.3-Instant", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-image-1.5": { - id: "openai/gpt-image-1.5", - name: "gpt-image-1.5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36, cache_read: 0.022 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-image-1-mini": { - id: "openai/gpt-image-1-mini", - name: "GPT-Image-1-Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/sora-2-pro": { - id: "openai/sora-2-pro", - name: "Sora-2-Pro", - family: "sora", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5-Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-13", - last_updated: "2023-09-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 1.4 }, - limit: { context: 16384, output: 2048 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4o-aug": { - id: "openai/gpt-4o-aug", - name: "GPT-4o-Aug", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-11-21", - last_updated: "2024-11-21", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 9, cache_read: 1.1 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 18, output: 72 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4-Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-13", - last_updated: "2023-09-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 9, output: 27 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-image-1": { - id: "openai/gpt-image-1", - name: "GPT-Image-1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-31", - last_updated: "2025-03-31", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "openai/sora-2": { - id: "openai/sora-2", - name: "Sora-2", - family: "sora", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-3.5-turbo-raw": { - id: "openai/gpt-3.5-turbo-raw", - name: "GPT-3.5-Turbo-Raw", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-27", - last_updated: "2023-09-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 1.4 }, - limit: { context: 4524, output: 2048 }, - }, - "openai/gpt-4o-mini-search": { - id: "openai/gpt-4o-mini-search", - name: "GPT-4o-mini-Search", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.54 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4, cache_read: 0.25 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.36, output: 1.4, cache_read: 0.09 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "pdf"], output: ["image"] }, - open_weights: false, - cost: { input: 2.2, output: 14, cache_read: 0.22 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - cost: { input: 27, output: 160 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "o1-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-03-19", - last_updated: "2025-03-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 140, output: 540 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/chatgpt-4o-latest": { - id: "openai/chatgpt-4o-latest", - name: "ChatGPT-4o-Latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-14", - last_updated: "2024-08-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.5, output: 14 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 19, output: 150 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/dall-e-3": { - id: "openai/dall-e-3", - name: "DALL-E-3", - family: "dall-e", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 800, output: 0 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-search": { - id: "openai/gpt-4o-search", - name: "GPT-4o-Search", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 9 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4-Nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 1.1, cache_read: 0.018 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-4-classic-0314": { - id: "openai/gpt-4-classic-0314", - name: "GPT-4-Classic-0314", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-26", - last_updated: "2024-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 27, output: 54 }, - limit: { context: 8192, output: 4096 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045, output: 0.36, cache_read: 0.0045 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "GPT-3.5-Turbo-Instruct", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-20", - last_updated: "2023-09-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 1.8 }, - limit: { context: 3500, output: 1024 }, - }, - "openai/gpt-5.2-instant": { - id: "openai/gpt-5.2-instant", - name: "GPT-5.2-Instant", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "o3-mini-high", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.68, output: 4, cache_read: 0.068 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1-instant": { - id: "openai/gpt-5.1-instant", - name: "GPT-5.1-Instant", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "topazlabs-co/topazlabs": { - id: "topazlabs-co/topazlabs", - name: "TopazLabs", - family: "topazlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 204, output: 0 }, - }, - "runwayml/runway": { - id: "runwayml/runway", - name: "Runway", - family: "runway", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 256, output: 0 }, - }, - "runwayml/runway-gen-4-turbo": { - id: "runwayml/runway-gen-4-turbo", - name: "Runway-Gen-4-Turbo", - family: "runway", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-09", - last_updated: "2025-05-09", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 256, output: 0 }, - }, - "anthropic/claude-sonnet-3.5-june": { - id: "anthropic/claude-sonnet-3.5-june", - name: "Claude-Sonnet-3.5-June", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-11-18", - last_updated: "2024-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude-Opus-4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, - limit: { context: 196608, output: 32000 }, - }, - "anthropic/claude-sonnet-3.5": { - id: "anthropic/claude-sonnet-3.5", - name: "Claude-Sonnet-3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-haiku-3": { - id: "anthropic/claude-haiku-3", - name: "Claude-Haiku-3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-03-09", - last_updated: "2024-03-09", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 1.1, cache_read: 0.021, cache_write: 0.26 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-haiku-3.5": { - id: "anthropic/claude-haiku-3.5", - name: "Claude-Haiku-3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.68, output: 3.4, cache_read: 0.068, cache_write: 0.85 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude-Sonnet-4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude-Haiku-4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 4.3, cache_read: 0.085, cache_write: 1.1 }, - limit: { context: 192000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude-Opus-4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-21", - last_updated: "2025-11-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, - limit: { context: 196608, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude-Opus-4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, - limit: { context: 192512, output: 28672 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude-Sonnet-4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude-Sonnet-4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 32768 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude-Opus-4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, - limit: { context: 983040, output: 128000 }, - }, - "anthropic/claude-sonnet-3.7": { - id: "anthropic/claude-sonnet-3.7", - name: "Claude-Sonnet-3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 196608, output: 128000 }, - }, - "trytako/tako": { - id: "trytako/tako", - name: "Tako", - family: "tako", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 2048, output: 0 }, - }, - "elevenlabs/elevenlabs-music": { - id: "elevenlabs/elevenlabs-music", - name: "ElevenLabs-Music", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-29", - last_updated: "2025-08-29", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 2000, output: 0 }, - }, - "elevenlabs/elevenlabs-v3": { - id: "elevenlabs/elevenlabs-v3", - name: "ElevenLabs-v3", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "elevenlabs/elevenlabs-v2.5-turbo": { - id: "elevenlabs/elevenlabs-v2.5-turbo", - name: "ElevenLabs-v2.5-Turbo", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-28", - last_updated: "2024-10-28", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "cerebras/llama-3.1-8b-cs": { - id: "cerebras/llama-3.1-8b-cs", - name: "llama-3.1-8b-cs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-13", - last_updated: "2025-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/gpt-oss-120b-cs": { - id: "cerebras/gpt-oss-120b-cs", - name: "gpt-oss-120b-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/qwen3-235b-2507-cs": { - id: "cerebras/qwen3-235b-2507-cs", - name: "qwen3-235b-2507-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/llama-3.3-70b-cs": { - id: "cerebras/llama-3.3-70b-cs", - name: "llama-3.3-70b-cs", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-13", - last_updated: "2025-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/qwen3-32b-cs": { - id: "cerebras/qwen3-32b-cs", - name: "qwen3-32b-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-15", - last_updated: "2025-05-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4-fast-reasoning": { - id: "xai/grok-4-fast-reasoning", - name: "Grok-4-Fast-Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-code-fast-1": { - id: "xai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-22", - last_updated: "2025-08-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 128000 }, - }, - "xai/grok-4.1-fast-reasoning": { - id: "xai/grok-4.1-fast-reasoning", - name: "Grok-4.1-Fast-Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok-4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 128000 }, - }, - "xai/grok-4.1-fast-non-reasoning": { - id: "xai/grok-4.1-fast-non-reasoning", - name: "Grok-4.1-Fast-Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4-fast-non-reasoning": { - id: "xai/grok-4-fast-non-reasoning", - name: "Grok-4-Fast-Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - }, - }, - "amazon-bedrock": { - id: "amazon-bedrock", - env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"], - npm: "@ai-sdk/amazon-bedrock", - name: "Amazon Bedrock", - doc: "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", - models: { - "deepseek.r1-v1:0": { - id: "deepseek.r1-v1:0", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 32768 }, - }, - "meta.llama3-1-70b-instruct-v1:0": { - id: "meta.llama3-1-70b-instruct-v1:0", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen.qwen3-coder-480b-a35b-v1:0": { - id: "qwen.qwen3-coder-480b-a35b-v1:0", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.8 }, - limit: { context: 131072, output: 65536 }, - }, - "eu.anthropic.claude-sonnet-4-6": { - id: "eu.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (EU)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.mistral-large-3-675b-instruct": { - id: "mistral.mistral-large-3-675b-instruct", - name: "Mistral Large 3", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 8192 }, - }, - "openai.gpt-oss-120b-1:0": { - id: "openai.gpt-oss-120b-1:0", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-opus-4-20250514-v1:0": { - id: "us.anthropic.claude-opus-4-20250514-v1:0", - name: "Claude Opus 4 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "nvidia.nemotron-nano-12b-v2": { - id: "nvidia.nemotron-nano-12b-v2", - name: "NVIDIA Nemotron Nano 12B v2 VL BF16", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-3-7-sonnet-20250219-v1:0": { - id: "anthropic.claude-3-7-sonnet-20250219-v1:0", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic.claude-sonnet-4-6": { - id: "anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "minimax.minimax-m2.1": { - id: "minimax.minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "global.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "global.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (Global)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.ministral-3-8b-instruct": { - id: "mistral.ministral-3-8b-instruct", - name: "Ministral 3 8B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 4096 }, - }, - "openai.gpt-oss-safeguard-20b": { - id: "openai.gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "amazon.nova-lite-v1:0": { - id: "amazon.nova-lite-v1:0", - name: "Nova Lite", - family: "nova-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, - limit: { context: 300000, output: 8192 }, - }, - "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.pixtral-large-2502-v1:0": { - id: "mistral.pixtral-large-2502-v1:0", - name: "Pixtral Large (25.02)", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-08", - last_updated: "2025-04-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 8192 }, - }, - "google.gemma-3-12b-it": { - id: "google.gemma-3-12b-it", - name: "Google Gemma 3 12B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, - limit: { context: 131072, output: 8192 }, - }, - "meta.llama3-1-8b-instruct-v1:0": { - id: "meta.llama3-1-8b-instruct-v1:0", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral.devstral-2-123b": { - id: "mistral.devstral-2-123b", - name: "Devstral 2 123B", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, output: 8192 }, - }, - "anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama4-maverick-17b-instruct-v1:0": { - id: "meta.llama4-maverick-17b-instruct-v1:0", - name: "Llama 4 Maverick 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.97 }, - limit: { context: 1000000, output: 16384 }, - }, - "mistral.ministral-3-14b-instruct": { - id: "mistral.ministral-3-14b-instruct", - name: "Ministral 14B 3.0", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "minimax.minimax-m2": { - id: "minimax.minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204608, output: 128000 }, - }, - "amazon.nova-micro-v1:0": { - id: "amazon.nova-micro-v1:0", - name: "Nova Micro", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, - limit: { context: 128000, output: 8192 }, - }, - "anthropic.claude-3-5-sonnet-20241022-v2:0": { - id: "anthropic.claude-3-5-sonnet-20241022-v2:0", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "nvidia.nemotron-nano-3-30b": { - id: "nvidia.nemotron-nano-3-30b", - name: "NVIDIA Nemotron Nano 3 30B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-sonnet-4-20250514-v1:0": { - id: "anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-vl-235b-a22b": { - id: "qwen.qwen3-vl-235b-a22b", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "global.anthropic.claude-opus-4-6-v1": { - id: "global.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (Global)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "writer.palmyra-x4-v1:0": { - id: "writer.palmyra-x4-v1:0", - name: "Palmyra X4", - family: "palmyra", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 122880, output: 8192 }, - }, - "minimax.minimax-m2.5": { - id: "minimax.minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 98304 }, - }, - "amazon.nova-pro-v1:0": { - id: "amazon.nova-pro-v1:0", - name: "Nova Pro", - family: "nova-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, - limit: { context: 300000, output: 8192 }, - }, - "us.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "us.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-2-90b-instruct-v1:0": { - id: "meta.llama3-2-90b-instruct-v1:0", - name: "Llama 3.2 90B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-opus-4-6-v1": { - id: "us.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "google.gemma-3-4b-it": { - id: "google.gemma-3-4b-it", - name: "Gemma 3 4B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.08 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-opus-4-6-v1": { - id: "anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "zai.glm-4.7-flash": { - id: "zai.glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 131072 }, - }, - "anthropic.claude-opus-4-20250514-v1:0": { - id: "anthropic.claude-opus-4-20250514-v1:0", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "global.anthropic.claude-sonnet-4-6": { - id: "global.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "meta.llama3-2-1b-instruct-v1:0": { - id: "meta.llama3-2-1b-instruct-v1:0", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 4096 }, - }, - "anthropic.claude-opus-4-1-20250805-v1:0": { - id: "anthropic.claude-opus-4-1-20250805-v1:0", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "meta.llama4-scout-17b-instruct-v1:0": { - id: "meta.llama4-scout-17b-instruct-v1:0", - name: "Llama 4 Scout 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 3500000, output: 16384 }, - }, - "deepseek.v3.2": { - id: "deepseek.v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 1.85 }, - limit: { context: 163840, output: 81920 }, - }, - "deepseek.v3-v1:0": { - id: "deepseek.v3-v1:0", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 163840, output: 81920 }, - }, - "mistral.ministral-3-3b-instruct": { - id: "mistral.ministral-3-3b-instruct", - name: "Ministral 3 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 256000, output: 8192 }, - }, - "global.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (Global)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "nvidia.nemotron-nano-9b-v2": { - id: "nvidia.nemotron-nano-9b-v2", - name: "NVIDIA Nemotron Nano 9B v2", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.23 }, - limit: { context: 128000, output: 4096 }, - }, - "writer.palmyra-x5-v1:0": { - id: "writer.palmyra-x5-v1:0", - name: "Palmyra X5", - family: "palmyra", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 6 }, - limit: { context: 1040000, output: 8192 }, - }, - "meta.llama3-3-70b-instruct-v1:0": { - id: "meta.llama3-3-70b-instruct-v1:0", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "zai.glm-4.7": { - id: "zai.glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "moonshot.kimi-k2-thinking": { - id: "moonshot.kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 256000, output: 256000 }, - }, - "anthropic.claude-3-haiku-20240307-v1:0": { - id: "anthropic.claude-3-haiku-20240307-v1:0", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-02", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25 }, - limit: { context: 200000, output: 4096 }, - }, - "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "openai.gpt-oss-20b-1:0": { - id: "openai.gpt-oss-20b-1:0", - name: "gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-sonnet-4-6": { - id: "us.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "meta.llama3-2-11b-instruct-v1:0": { - id: "meta.llama3-2-11b-instruct-v1:0", - name: "Llama 3.2 11B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.16 }, - limit: { context: 128000, output: 4096 }, - }, - "eu.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (EU)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-1-405b-instruct-v1:0": { - id: "meta.llama3-1-405b-instruct-v1:0", - name: "Llama 3.1 405B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 2.4 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen.qwen3-next-80b-a3b": { - id: "qwen.qwen3-next-80b-a3b", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "us.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "us.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-coder-30b-a3b-v1:0": { - id: "qwen.qwen3-coder-30b-a3b-v1:0", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 131072 }, - }, - "us.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (US)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-235b-a22b-2507-v1:0": { - id: "qwen.qwen3-235b-a22b-2507-v1:0", - name: "Qwen3 235B A22B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 262144, output: 131072 }, - }, - "openai.gpt-oss-safeguard-120b": { - id: "openai.gpt-oss-safeguard-120b", - name: "GPT OSS Safeguard 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-3-5-sonnet-20240620-v1:0": { - id: "anthropic.claude-3-5-sonnet-20240620-v1:0", - name: "Claude Sonnet 3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "mistral.voxtral-small-24b-2507": { - id: "mistral.voxtral-small-24b-2507", - name: "Voxtral Small 24B 2507", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 32000, output: 8192 }, - }, - "anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-2-3b-instruct-v1:0": { - id: "meta.llama3-2-3b-instruct-v1:0", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 131000, output: 4096 }, - }, - "google.gemma-3-27b-it": { - id: "google.gemma-3-27b-it", - name: "Google Gemma 3 27B Instruct", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-27", - last_updated: "2025-07-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 202752, output: 8192 }, - }, - "us.anthropic.claude-opus-4-1-20250805-v1:0": { - id: "us.anthropic.claude-opus-4-1-20250805-v1:0", - name: "Claude Opus 4.1 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "global.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "global.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-3-5-haiku-20241022-v1:0": { - id: "anthropic.claude-3-5-haiku-20241022-v1:0", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "zai.glm-5": { - id: "zai.glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 101376 }, - }, - "eu.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "eu.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-opus-4-5-20251101-v1:0": { - id: "anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "nvidia.nemotron-super-3-120b": { - id: "nvidia.nemotron-super-3-120b", - name: "NVIDIA Nemotron 3 Super 120B A12B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.65 }, - limit: { context: 262144, output: 131072 }, - }, - "eu.anthropic.claude-opus-4-6-v1": { - id: "eu.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (EU)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "amazon.nova-premier-v1:0": { - id: "amazon.nova-premier-v1:0", - name: "Nova Premier", - family: "nova", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 12.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "amazon.nova-2-lite-v1:0": { - id: "amazon.nova-2-lite-v1:0", - name: "Nova 2 Lite", - family: "nova", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 2.75 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen.qwen3-32b-v1:0": { - id: "qwen.qwen3-32b-v1:0", - name: "Qwen3 32B (dense)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 16384, output: 16384 }, - }, - "mistral.magistral-small-2509": { - id: "mistral.magistral-small-2509", - name: "Magistral Small 1.2", - family: "magistral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 40000 }, - }, - "moonshotai.kimi-k2.5": { - id: "moonshotai.kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral.voxtral-mini-3b-2507": { - id: "mistral.voxtral-mini-3b-2507", - name: "Voxtral Mini 3B 2507", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["audio", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 4096 }, - }, - "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "alibaba-coding-plan-cn": { - id: "alibaba-coding-plan-cn", - env: ["ALIBABA_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding.dashscope.aliyuncs.com/v1", - name: "Alibaba Coding Plan (China)", - doc: "https://help.aliyun.com/zh/model-studio/coding-plan", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 196608, output: 24576 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - }, - }, - "minimax-cn": { - id: "minimax-cn", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimaxi.com/anthropic/v1", - name: "MiniMax (minimaxi.com)", - doc: "https://platform.minimaxi.com/docs/guides/quickstart", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - bailing: { - id: "bailing", - env: ["BAILING_API_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.tbox.cn/api/llm/v1/chat/completions", - name: "Bailing", - doc: "https://alipaytbox.yuque.com/sxs0ba/ling/intro", - models: { - "Ring-1T": { - id: "Ring-1T", - name: "Ring-1T", - family: "ring", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.29 }, - limit: { context: 128000, output: 32000 }, - }, - "Ling-1T": { - id: "Ling-1T", - name: "Ling-1T", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.29 }, - limit: { context: 128000, output: 32000 }, - }, - }, - }, - "azure-cognitive-services": { - id: "azure-cognitive-services", - env: ["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME", "AZURE_COGNITIVE_SERVICES_API_KEY"], - npm: "@ai-sdk/azure", - name: "Azure Cognitive Services", - doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - models: { - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "phi-3-small-8k-instruct": { - id: "phi-3-small-8k-instruct", - name: "Phi-3-small-instruct (8k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "codestral-2501": { - id: "codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral-small-2503": { - id: "mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 32768 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-3.5-turbo-instruct": { - id: "gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-09-21", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-3.5-turbo-1106": { - id: "gpt-3.5-turbo-1106", - name: "GPT-3.5 Turbo 1106", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 16384, output: 16384 }, - }, - "phi-4-reasoning": { - id: "phi-4-reasoning", - name: "Phi-4-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "phi-3-mini-128k-instruct": { - id: "phi-3-mini-128k-instruct", - name: "Phi-3-mini-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "cohere-embed-v3-english": { - id: "cohere-embed-v3-english", - name: "Embed v3 English", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "phi-3-medium-4k-instruct": { - id: "phi-3-medium-4k-instruct", - name: "Phi-3-medium-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 4096, output: 1024 }, - }, - "cohere-embed-v3-multilingual": { - id: "cohere-embed-v3-multilingual", - name: "Embed v3 Multilingual", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "gpt-3.5-turbo-0125": { - id: "gpt-3.5-turbo-0125", - name: "GPT-3.5 Turbo 0125", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16384, output: 16384 }, - }, - "phi-4-mini-reasoning": { - id: "phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "meta-llama-3.1-8b-instruct": { - id: "meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 66, cache_read: 8.25 }, - limit: { context: 128000, output: 32768 }, - }, - "meta-llama-3.1-70b-instruct": { - id: "meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 128000, output: 32768 }, - }, - "phi-3-mini-4k-instruct": { - id: "phi-3-mini-4k-instruct", - name: "Phi-3-mini-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 4096, output: 1024 }, - }, - "codex-mini": { - id: "codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "phi-4-reasoning-plus": { - id: "phi-4-reasoning-plus", - name: "Phi-4-reasoning-plus", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "phi-4": { - id: "phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 4096 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-4-32k": { - id: "gpt-4-32k", - name: "GPT-4 32K", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 32768, output: 32768 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "cohere-embed-v-4-0": { - id: "cohere-embed-v-4-0", - name: "Embed v4", - family: "cohere-embed", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0 }, - limit: { context: 128000, output: 1536 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "model-router": { - id: "model-router", - name: "Model Router", - family: "model-router", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-05-19", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.14, output: 4.56 }, - limit: { context: 131072, output: 131072 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", - shape: "completions", - }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-3.5-turbo-0613": { - id: "gpt-3.5-turbo-0613", - name: "GPT-3.5 Turbo 0613", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16384, output: 16384 }, - }, - "cohere-command-r-08-2024": { - id: "cohere-command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-v3.2-speciale": { - id: "deepseek-v3.2-speciale", - name: "DeepSeek-V3.2-Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "phi-4-mini": { - id: "phi-4-mini", - name: "Phi-4-mini", - family: "phi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "gpt-3.5-turbo-0301": { - id: "gpt-3.5-turbo-0301", - name: "GPT-3.5 Turbo 0301", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "meta-llama-3-70b-instruct": { - id: "meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 8192, output: 2048 }, - }, - "llama-3.2-11b-vision-instruct": { - id: "llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.37, output: 0.37 }, - limit: { context: 128000, output: 8192 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "meta-llama-3-8b-instruct": { - id: "meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5.1-chat": { - id: "gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "gpt-5-chat": { - id: "gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-10-24", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.2-chat": { - id: "gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "cohere-command-r-plus-08-2024": { - id: "cohere-command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "meta-llama-3.1-405b-instruct": { - id: "meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 5.33, output: 16 }, - limit: { context: 128000, output: 32768 }, - }, - "llama-4-scout-17b-16e-instruct": { - id: "llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.78 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 272000, output: 128000 }, - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "cohere-command-a": { - id: "cohere-command-a", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "phi-3.5-mini-instruct": { - id: "phi-3.5-mini-instruct", - name: "Phi-3.5-mini-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 32768 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "llama-3.2-90b-vision-instruct": { - id: "llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.04, output: 2.04 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "ministral-3b": { - id: "ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-4-turbo-vision": { - id: "gpt-4-turbo-vision", - name: "GPT-4 Turbo Vision", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-3.5-moe-instruct": { - id: "phi-3.5-moe-instruct", - name: "Phi-3.5-MoE-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.64 }, - limit: { context: 128000, output: 4096 }, - }, - "mai-ds-r1": { - id: "mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 8192 }, - }, - "phi-4-multimodal": { - id: "phi-4-multimodal", - name: "Phi-4-multimodal", - family: "phi", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.32, input_audio: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-3-medium-128k-instruct": { - id: "phi-3-medium-128k-instruct", - name: "Phi-3-medium-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, output: 4096 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "Grok 4 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "phi-3-small-128k-instruct": { - id: "phi-3-small-128k-instruct", - name: "Phi-3-small-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - }, - }, - alibaba: { - id: "alibaba", - env: ["DASHSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", - name: "Alibaba", - doc: "https://www.alibabacloud.com/help/en/model-studio/models", - models: { - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen-VL Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-08-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.63 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen-VL Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next 80B-A3B (Thinking)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3-Coder 480B-A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.5, output: 7.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-14b": { - id: "qwen3-14b", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.4, reasoning: 4.2 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-vl-30b-a3b": { - id: "qwen3-vl-30b-a3b", - name: "Qwen3-VL 30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8, reasoning: 2.4 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-asr-flash": { - id: "qwen3-asr-flash", - name: "Qwen3-ASR Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.035 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 6.4 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11-01", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.2, reasoning: 0.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "qwen2-5-7b-instruct": { - id: "qwen2-5-7b-instruct", - name: "Qwen2.5 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.175, output: 0.7 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5-VL 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.8, output: 8.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-14b-instruct": { - id: "qwen2-5-14b-instruct", - name: "Qwen2.5 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-8b": { - id: "qwen3-8b", - name: "Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.7, reasoning: 2.1 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6, reasoning: 3.6 }, - limit: { context: 262144, output: 65536 }, - }, - "qvq-max": { - id: "qvq-max", - name: "QVQ Max", - family: "qvq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4.8 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-omni-7b": { - id: "qwen2-5-omni-7b", - name: "Qwen2.5-Omni 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4, input_audio: 6.76 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen2-5-vl-7b-instruct": { - id: "qwen2-5-vl-7b-instruct", - name: "Qwen2.5-VL 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.05 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-omni-turbo-realtime": { - id: "qwen-omni-turbo-realtime", - name: "Qwen-Omni Turbo Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.27, output: 1.07, input_audio: 4.44, output_audio: 8.89 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.25 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-omni-turbo": { - id: "qwen-omni-turbo", - name: "Qwen-Omni Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-19", - last_updated: "2025-03-26", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.07, output: 0.27, input_audio: 4.44, output_audio: 8.89 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen-mt-plus": { - id: "qwen-mt-plus", - name: "Qwen-MT Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.46, output: 7.37 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.6, reasoning: 4.8 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-livetranslate-flash-realtime": { - id: "qwen3-livetranslate-flash-realtime", - name: "Qwen3-LiveTranslate Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 10, output: 10, input_audio: 10, output_audio: 38 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.2, reasoning: 4 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-32b-instruct": { - id: "qwen2-5-32b-instruct", - name: "Qwen2.5 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next 80B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-omni-flash": { - id: "qwen3-omni-flash", - name: "Qwen3-Omni Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.43, output: 1.66, input_audio: 3.81, output_audio: 15.11 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-72b-instruct": { - id: "qwen2-5-72b-instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 5.6 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-omni-flash-realtime": { - id: "qwen3-omni-flash-realtime", - name: "Qwen3-Omni Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.52, output: 1.99, input_audio: 4.57, output_audio: 18.13 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen-vl-ocr": { - id: "qwen-vl-ocr", - name: "Qwen-VL OCR", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-28", - last_updated: "2025-04-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 34096, output: 4096 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 2.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3-VL 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-plus-character-ja": { - id: "qwen-plus-character-ja", - name: "Qwen Plus Character (Japanese)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.4 }, - limit: { context: 8192, output: 512 }, - }, - "qwen-mt-turbo": { - id: "qwen-mt-turbo", - name: "Qwen-MT Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.16, output: 0.49 }, - limit: { context: 16384, output: 8192 }, - }, - }, - }, - "cloudflare-workers-ai": { - id: "cloudflare-workers-ai", - env: ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", - name: "Cloudflare Workers AI", - doc: "https://developers.cloudflare.com/workers-ai/models/", - models: { - "@cf/zai-org/glm-4.7-flash": { - id: "@cf/zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "@cf/nvidia/nemotron-3-120b-a12b": { - id: "@cf/nvidia/nemotron-3-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "@cf/ibm-granite/granite-4.0-h-micro": { - id: "@cf/ibm-granite/granite-4.0-h-micro", - name: "IBM Granite 4.0 H Micro", - family: "granite", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-small-en-v1.5": { - id: "@cf/baai/bge-small-en-v1.5", - name: "BGE Small EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-large-en-v1.5": { - id: "@cf/baai/bge-large-en-v1.5", - name: "BGE Large EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-reranker-base": { - id: "@cf/baai/bge-reranker-base", - name: "BGE Reranker Base", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0031, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-m3": { - id: "@cf/baai/bge-m3", - name: "BGE M3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-base-en-v1.5": { - id: "@cf/baai/bge-base-en-v1.5", - name: "BGE Base EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.067, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/pfnet/plamo-embedding-1b": { - id: "@cf/pfnet/plamo-embedding-1b", - name: "PLaMo Embedding 1B", - family: "plamo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.019, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { - id: "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 4.88 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/facebook/bart-large-cnn": { - id: "@cf/facebook/bart-large-cnn", - name: "BART Large CNN", - family: "bart", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/mistral/mistral-7b-instruct-v0.1": { - id: "@cf/mistral/mistral-7b-instruct-v0.1", - name: "Mistral 7B Instruct v0.1", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/myshell-ai/melotts": { - id: "@cf/myshell-ai/melotts", - name: "MyShell MeloTTS", - family: "melotts", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/pipecat-ai/smart-turn-v2": { - id: "@cf/pipecat-ai/smart-turn-v2", - name: "Pipecat Smart Turn v2", - family: "smart-turn", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/moonshotai/kimi-k2.5": { - id: "@cf/moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "@cf/google/gemma-3-12b-it": { - id: "@cf/google/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwq-32b": { - id: "@cf/qwen/qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwen3-30b-a3b-fp8": { - id: "@cf/qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwen2.5-coder-32b-instruct": { - id: "@cf/qwen/qwen2.5-coder-32b-instruct", - name: "Qwen 2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwen3-embedding-0.6b": { - id: "@cf/qwen/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.1-8b-instruct-fp8": { - id: "@cf/meta/llama-3.1-8b-instruct-fp8", - name: "Llama 3.1 8B Instruct FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.29 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3-8b-instruct-awq": { - id: "@cf/meta/llama-3-8b-instruct-awq", - name: "Llama 3 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.1-8b-instruct-awq": { - id: "@cf/meta/llama-3.1-8b-instruct-awq", - name: "Llama 3.1 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-4-scout-17b-16e-instruct": { - id: "@cf/meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.2-11b-vision-instruct": { - id: "@cf/meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049, output: 0.68 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.2-3b-instruct": { - id: "@cf/meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-guard-3-8b": { - id: "@cf/meta/llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 0.03 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.2-1b-instruct": { - id: "@cf/meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.3-70b-instruct-fp8-fast": { - id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast", - name: "Llama 3.3 70B Instruct FP8 Fast", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.25 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.1-8b-instruct": { - id: "@cf/meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.8299999999999998 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/m2m100-1.2b": { - id: "@cf/meta/m2m100-1.2b", - name: "M2M100 1.2B", - family: "m2m", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-2-7b-chat-fp16": { - id: "@cf/meta/llama-2-7b-chat-fp16", - name: "Llama 2 7B Chat FP16", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 6.67 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3-8b-instruct": { - id: "@cf/meta/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.83 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/mistralai/mistral-small-3.1-24b-instruct": { - id: "@cf/mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepgram/aura-2-es": { - id: "@cf/deepgram/aura-2-es", - name: "Deepgram Aura 2 (ES)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepgram/nova-3": { - id: "@cf/deepgram/nova-3", - name: "Deepgram Nova 3", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepgram/aura-2-en": { - id: "@cf/deepgram/aura-2-en", - name: "Deepgram Aura 2 (EN)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/openai/gpt-oss-120b": { - id: "@cf/openai/gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/openai/gpt-oss-20b": { - id: "@cf/openai/gpt-oss-20b", - name: "GPT OSS 20B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/ai4bharat/indictrans2-en-indic-1B": { - id: "@cf/ai4bharat/indictrans2-en-indic-1B", - name: "IndicTrans2 EN-Indic 1B", - family: "indictrans", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/huggingface/distilbert-sst-2-int8": { - id: "@cf/huggingface/distilbert-sst-2-int8", - name: "DistilBERT SST-2 INT8", - family: "distilbert", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.026, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/aisingapore/gemma-sea-lion-v4-27b-it": { - id: "@cf/aisingapore/gemma-sea-lion-v4-27b-it", - name: "Gemma SEA-LION v4 27B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - groq: { - id: "groq", - env: ["GROQ_API_KEY"], - npm: "@ai-sdk/groq", - name: "Groq", - doc: "https://console.groq.com/docs/models", - models: { - "llama3-70b-8192": { - id: "llama3-70b-8192", - name: "Llama 3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "qwen-qwq-32b": { - id: "qwen-qwq-32b", - name: "Qwen QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-27", - last_updated: "2024-11-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.39 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "llama-3.1-8b-instant": { - id: "llama-3.1-8b-instant", - name: "Llama 3.1 8B Instant", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 131072, output: 131072 }, - }, - "llama-guard-3-8b": { - id: "llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 0.99 }, - limit: { context: 131072, output: 8192 }, - status: "deprecated", - }, - "llama3-8b-8192": { - id: "llama3-8b-8192", - name: "Llama 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "mistral-saba-24b": { - id: "mistral-saba-24b", - name: "Mistral Saba 24B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-02-06", - last_updated: "2025-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.79, output: 0.79 }, - limit: { context: 32768, output: 32768 }, - status: "deprecated", - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 131072, output: 32768 }, - }, - "gemma2-9b-it": { - id: "gemma2-9b-it", - name: "Gemma 2 9B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "moonshotai/kimi-k2-instruct-0905": { - id: "moonshotai/kimi-k2-instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-32b": { - id: "qwen/qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11-08", - release_date: "2024-12-23", - last_updated: "2024-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.59 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - id: "meta-llama/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.34 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-guard-4-12b": { - id: "meta-llama/llama-guard-4-12b", - name: "Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 131072, output: 1024 }, - }, - "meta-llama/llama-4-maverick-17b-128e-instruct": { - id: "meta-llama/llama-4-maverick-17b-128e-instruct", - name: "Llama 4 Maverick 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 131072, output: 65536 }, - }, - }, - }, - wandb: { - id: "wandb", - env: ["WANDB_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.inference.wandb.ai/v1", - name: "Weights & Biases", - doc: "https://docs.wandb.ai/guides/integrations/inference/", - models: { - "zai-org/GLM-5-FP8": { - id: "zai-org/GLM-5-FP8", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 200000, output: 200000 }, - }, - "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": { - id: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8", - name: "NVIDIA Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "microsoft/Phi-4-mini-instruct": { - id: "microsoft/Phi-4-mini-instruct", - name: "Phi-4-mini-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.35 }, - limit: { context: 128000, output: 128000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.65 }, - limit: { context: 161000, output: 161000 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.85 }, - limit: { context: 262144, output: 262144 }, - }, - "meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 64000, output: 64000 }, - }, - "meta-llama/Llama-3.1-70B-Instruct": { - id: "meta-llama/Llama-3.1-70B-Instruct", - name: "Llama 3.1 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 128000, output: 128000 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 128000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 128000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 131072 }, - }, - "OpenPipe/Qwen3-14B-Instruct": { - id: "OpenPipe/Qwen3-14B-Instruct", - name: "OpenPipe Qwen3 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 32768, output: 32768 }, - }, - }, - }, - aihubmix: { - id: "aihubmix", - env: ["AIHUBMIX_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://aihubmix.com/v1", - name: "AIHubMix", - doc: "https://docs.aihubmix.com", - models: { - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.12 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5-Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 7, output: 28, cache_read: 3.5 }, - limit: { context: 400000, output: 128000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.88, output: 2.82 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 82.5, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.82, output: 3.29 }, - limit: { context: 262144, output: 131000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 128000 }, - }, - "coding-glm-4.7-free": { - id: "coding-glm-4.7-free", - name: "Coding GLM 4.7 Free", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "coding-minimax-m2.1-free": { - id: "coding-minimax-m2.1-free", - name: "Coding MiniMax M2.1 Free", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.02 }, - limit: { context: 1000000, output: 65000 }, - }, - "claude-opus-4-6-think": { - id: "claude-opus-4-6-think", - name: "Claude Opus 4.6 Think", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.55 }, - limit: { context: 262144, input: 262144, output: 65536 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.15 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "gemini-3-pro-preview-search": { - id: "gemini-3-pro-preview-search", - name: "Gemini 3 Pro Preview Search", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.5 }, - limit: { context: 1000000, output: 65000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-v3.2-think": { - id: "deepseek-v3.2-think", - name: "DeepSeek-V3.2-Think", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 131000, output: 64000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-07", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "Kimi-K2-0905": { - id: "Kimi-K2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 131000, output: 64000 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 1.37 }, - limit: { context: 262144, output: 65536 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 20, cache_read: 2.5 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-09", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.75 }, - limit: { context: 200000, output: 65536 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 5.5, cache_read: 0.11, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.15 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.5 }, - limit: { context: 1000000, output: 65000 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen 3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.66 }, - limit: { context: 1000000, output: 65536 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.3, output: 16.5, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.75 }, - limit: { context: 200000, output: 64000 }, - }, - "deepseek-v3.2-fast": { - id: "deepseek-v3.2-fast", - name: "DeepSeek-V3.2-Fast", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.1, output: 3.29 }, - limit: { context: 128000, output: 128000 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.41 }, - limit: { context: 128000, output: 32768 }, - }, - "coding-glm-4.7": { - id: "coding-glm-4.7", - name: "Coding-GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, - limit: { context: 204800, output: 131072 }, - }, - "coding-glm-5-free": { - id: "coding-glm-5-free", - name: "Coding-GLM-5-Free", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 5, cache_read: 0.31 }, - limit: { context: 2000000, output: 65000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5-Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2, cache_read: 0.25 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-sonnet-4-6-think": { - id: "claude-sonnet-4-6-think", - name: "Claude Sonnet 4.6 Think", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - "minimax-coding-plan": { - id: "minimax-coding-plan", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimax.io/anthropic/v1", - name: "MiniMax Coding Plan (minimax.io)", - doc: "https://platform.minimax.io/docs/coding-plan/intro", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "kimi-for-coding": { - id: "kimi-for-coding", - env: ["KIMI_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.kimi.com/coding/v1", - name: "Kimi For Coding", - doc: "https://www.kimi.com/coding/docs/en/third-party-agents.html", - models: { - k2p5: { - id: "k2p5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - }, - }, - mistral: { - id: "mistral", - env: ["MISTRAL_API_KEY"], - npm: "@ai-sdk/mistral", - name: "Mistral", - doc: "https://docs.mistral.ai/getting-started/models/", - models: { - "devstral-medium-2507": { - id: "devstral-medium-2507", - name: "Devstral Medium", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "labs-devstral-small-2512": { - id: "labs-devstral-small-2512", - name: "Devstral Small 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "devstral-medium-latest": { - id: "devstral-medium-latest", - name: "Devstral 2 (latest)", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "open-mistral-7b": { - id: "open-mistral-7b", - name: "Mistral 7B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2023-09-27", - last_updated: "2023-09-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 8000, output: 8000 }, - }, - "mistral-small-2506": { - id: "mistral-small-2506", - name: "Mistral Small 3.2", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "codestral-latest": { - id: "codestral-latest", - name: "Codestral (latest)", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-05-29", - last_updated: "2025-01-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 4096 }, - }, - "ministral-8b-latest": { - id: "ministral-8b-latest", - name: "Ministral 8B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 128000 }, - }, - "magistral-small": { - id: "magistral-small", - name: "Magistral Small", - family: "magistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "Mistral Large 3", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "ministral-3b-latest": { - id: "ministral-3b-latest", - name: "Ministral 3B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-embed": { - id: "mistral-embed", - name: "Mistral Embed", - family: "mistral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8000, output: 3072 }, - }, - "devstral-small-2505": { - id: "devstral-small-2505", - name: "Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 128000 }, - }, - "pixtral-12b": { - id: "pixtral-12b", - name: "Pixtral 12B", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "open-mixtral-8x7b": { - id: "open-mixtral-8x7b", - name: "Mixtral 8x7B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32000, output: 32000 }, - }, - "pixtral-large-latest": { - id: "pixtral-large-latest", - name: "Pixtral Large (latest)", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-large-latest": { - id: "mistral-large-latest", - name: "Mistral Large (latest)", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-medium-2508": { - id: "mistral-medium-2508", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 2.1", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 16384 }, - }, - "mistral-small-latest": { - id: "mistral-small-latest", - name: "Mistral Small (latest)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2024-09-01", - last_updated: "2024-09-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "open-mixtral-8x22b": { - id: "open-mixtral-8x22b", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 64000, output: 64000 }, - }, - "mistral-medium-latest": { - id: "mistral-medium-latest", - name: "Mistral Medium (latest)", - family: "mistral-medium", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 16384 }, - }, - "devstral-small-2507": { - id: "devstral-small-2507", - name: "Devstral Small", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 128000 }, - }, - "magistral-medium-latest": { - id: "magistral-medium-latest", - name: "Magistral Medium (latest)", - family: "magistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 5 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - abacus: { - id: "abacus", - env: ["ABACUS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://routellm.abacus.ai/v1", - name: "Abacus", - doc: "https://abacus.ai/help/api", - models: { - "gpt-4o-2024-11-20": { - id: "gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, output: 16384 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5.3-codex-xhigh": { - id: "gpt-5.3-codex-xhigh", - name: "GPT-5.3 Codex XHigh", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 16384 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 Nano", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 32768 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1047576, output: 32768 }, - }, - "o3-pro": { - id: "o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 40 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1047576, output: 32768 }, - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo Preview", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-08", - last_updated: "2025-07-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 8 }, - limit: { context: 256000, output: 8192 }, - }, - "qwen-2.5-coder-32b": { - id: "qwen-2.5-coder-32b", - name: "Qwen 2.5 Coder 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.79, output: 0.79 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "route-llm": { - id: "route-llm", - name: "Route LLM", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-chat-latest": { - id: "gpt-5.3-chat-latest", - name: "GPT-5.3 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 131072, output: 16384 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 16384 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "GPT-5.1 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-4.6": { - id: "zai-org/glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 7 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.66 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": { - id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", - name: "Llama 3.1 405B Instruct Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.5, output: 3.5 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.59 }, - limit: { context: 1000000, output: 32768 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2024-11-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/qwen3-coder-480b-a35b-instruct": { - id: "Qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.2 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29 }, - limit: { context: 128000, output: 8192 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen 2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.38 }, - limit: { context: 128000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262144, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.44 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "fireworks-ai": { - id: "fireworks-ai", - env: ["FIREWORKS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.fireworks.ai/inference/v1/", - name: "Fireworks AI", - doc: "https://fireworks.ai/docs/", - models: { - "accounts/fireworks/routers/kimi-k2p5-turbo": { - id: "accounts/fireworks/routers/kimi-k2p5-turbo", - name: "Kimi K2.5 Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/kimi-k2-instruct": { - id: "accounts/fireworks/models/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 128000, output: 16384 }, - }, - "accounts/fireworks/models/glm-4p7": { - id: "accounts/fireworks/models/glm-4p7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.3 }, - limit: { context: 198000, output: 198000 }, - }, - "accounts/fireworks/models/glm-5": { - id: "accounts/fireworks/models/glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.5 }, - limit: { context: 202752, output: 131072 }, - }, - "accounts/fireworks/models/deepseek-v3p1": { - id: "accounts/fireworks/models/deepseek-v3p1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 163840, output: 163840 }, - }, - "accounts/fireworks/models/minimax-m2p1": { - id: "accounts/fireworks/models/minimax-m2p1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 200000, output: 200000 }, - }, - "accounts/fireworks/models/glm-4p5-air": { - id: "accounts/fireworks/models/glm-4p5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 131072, output: 131072 }, - }, - "accounts/fireworks/models/deepseek-v3p2": { - id: "accounts/fireworks/models/deepseek-v3p2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68, cache_read: 0.28 }, - limit: { context: 160000, output: 160000 }, - }, - "accounts/fireworks/models/minimax-m2p5": { - id: "accounts/fireworks/models/minimax-m2p5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 196608, output: 196608 }, - }, - "accounts/fireworks/models/gpt-oss-120b": { - id: "accounts/fireworks/models/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "accounts/fireworks/models/kimi-k2p5": { - id: "accounts/fireworks/models/kimi-k2p5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/kimi-k2-thinking": { - id: "accounts/fireworks/models/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.3 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/glm-4p5": { - id: "accounts/fireworks/models/glm-4p5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 131072, output: 131072 }, - }, - "accounts/fireworks/models/gpt-oss-20b": { - id: "accounts/fireworks/models/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - stepfun: { - id: "stepfun", - env: ["STEPFUN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.stepfun.com/v1", - name: "StepFun", - doc: "https://platform.stepfun.com/docs/zh/overview/concept", - models: { - "step-3.5-flash": { - id: "step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.096, output: 0.288, cache_read: 0.019 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "step-2-16k": { - id: "step-2-16k", - name: "Step 2 (16K)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-01", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5.21, output: 16.44, cache_read: 1.04 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "step-1-32k": { - id: "step-1-32k", - name: "Step 1 (32K)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-01", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.05, output: 9.59, cache_read: 0.41 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - }, - }, - gitlab: { - id: "gitlab", - env: ["GITLAB_TOKEN"], - npm: "gitlab-ai-provider", - name: "GitLab Duo", - doc: "https://docs.gitlab.com/user/duo_agent_platform/", - models: { - "duo-chat-gpt-5-2-codex": { - id: "duo-chat-gpt-5-2-codex", - name: "Agentic Chat (GPT-5.2 Codex)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-opus-4-6": { - id: "duo-chat-opus-4-6", - name: "Agentic Chat (Claude Opus 4.6)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "duo-chat-gpt-5-mini": { - id: "duo-chat-gpt-5-mini", - name: "Agentic Chat (GPT-5 Mini)", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-3-codex": { - id: "duo-chat-gpt-5-3-codex", - name: "Agentic Chat (GPT-5.3 Codex)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-sonnet-4-5": { - id: "duo-chat-sonnet-4-5", - name: "Agentic Chat (Claude Sonnet 4.5)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-haiku-4-5": { - id: "duo-chat-haiku-4-5", - name: "Agentic Chat (Claude Haiku 4.5)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-gpt-5-codex": { - id: "duo-chat-gpt-5-codex", - name: "Agentic Chat (GPT-5 Codex)", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-4-nano": { - id: "duo-chat-gpt-5-4-nano", - name: "Agentic Chat (GPT-5.4 Nano)", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-2": { - id: "duo-chat-gpt-5-2", - name: "Agentic Chat (GPT-5.2)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-4-mini": { - id: "duo-chat-gpt-5-4-mini", - name: "Agentic Chat (GPT-5.4 Mini)", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-sonnet-4-6": { - id: "duo-chat-sonnet-4-6", - name: "Agentic Chat (Claude Sonnet 4.6)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "duo-chat-gpt-5-4": { - id: "duo-chat-gpt-5-4", - name: "Agentic Chat (GPT-5.4)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "duo-chat-opus-4-5": { - id: "duo-chat-opus-4-5", - name: "Agentic Chat (Claude Opus 4.5)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-gpt-5-1": { - id: "duo-chat-gpt-5-1", - name: "Agentic Chat (GPT-5.1)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - siliconflow: { - id: "siliconflow", - env: ["SILICONFLOW_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.siliconflow.com/v1", - name: "SiliconFlow", - doc: "https://cloud.siliconflow.com/models", - models: { - "nex-agi/DeepSeek-V3.1-Nex-N1": { - id: "nex-agi/DeepSeek-V3.1-Nex-N1", - name: "nex-agi/DeepSeek-V3.1-Nex-N1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "zai-org/GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "zai-org/GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.9 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "zai-org/GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.5V": { - id: "zai-org/GLM-4.5V", - name: "zai-org/GLM-4.5V", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 66000, output: 66000 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "zai-org/GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-07", - last_updated: "2025-12-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "zai-org/GLM-4.5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "zai-org/GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 205000, output: 205000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMaxAI/MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMaxAI/MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3.2-Exp": { - id: "deepseek-ai/DeepSeek-V3.2-Exp", - name: "deepseek-ai/DeepSeek-V3.2-Exp", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/deepseek-vl2": { - id: "deepseek-ai/deepseek-vl2", - name: "deepseek-ai/deepseek-vl2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 4000, output: 4000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "deepseek-ai/DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "ByteDance-Seed/Seed-OSS-36B-Instruct": { - id: "ByteDance-Seed/Seed-OSS-36B-Instruct", - name: "ByteDance-Seed/Seed-OSS-36B-Instruct", - family: "seed", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "tencent/Hunyuan-A13B-Instruct": { - id: "tencent/Hunyuan-A13B-Instruct", - name: "tencent/Hunyuan-A13B-Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "tencent/Hunyuan-MT-7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 33000, output: 33000 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "moonshotai/Kimi-K2-Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 2.29 }, - limit: { context: 131000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "moonshotai/Kimi-K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 3 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "inclusionAI/Ling-flash-2.0": { - id: "inclusionAI/Ling-flash-2.0", - name: "inclusionAI/Ling-flash-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ring-flash-2.0": { - id: "inclusionAI/Ring-flash-2.0", - name: "inclusionAI/Ring-flash-2.0", - family: "ring", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-mini-2.0": { - id: "inclusionAI/Ling-mini-2.0", - name: "inclusionAI/Ling-mini-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "baidu/ERNIE-4.5-300B-A47B": { - id: "baidu/ERNIE-4.5-300B-A47B", - name: "baidu/ERNIE-4.5-300B-A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131000, output: 131000 }, - }, - "stepfun-ai/Step-3.5-Flash": { - id: "stepfun-ai/Step-3.5-Flash", - name: "stepfun-ai/Step-3.5-Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "meta-llama/Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Thinking": { - id: "Qwen/Qwen3-VL-30B-A3B-Thinking", - name: "Qwen/Qwen3-VL-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen/Qwen3-30B-A3B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Instruct": { - id: "Qwen/Qwen3-VL-32B-Instruct", - name: "Qwen/Qwen3-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "Qwen/QwQ-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.58 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen/Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Thinking": { - id: "Qwen/Qwen3-VL-235B-A22B-Thinking", - name: "Qwen/Qwen3-VL-235B-A22B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen/Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen2.5-VL-7B-Instruct": { - id: "Qwen/Qwen2.5-VL-7B-Instruct", - name: "Qwen/Qwen2.5-VL-7B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen/Qwen3-30B-A3B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 131000 }, - }, - "Qwen/Qwen2.5-32B-Instruct": { - id: "Qwen/Qwen2.5-32B-Instruct", - name: "Qwen/Qwen2.5-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen/Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-8B": { - id: "Qwen/Qwen3-8B", - name: "Qwen/Qwen3-8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Thinking": { - id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen2.5-7B-Instruct": { - id: "Qwen/Qwen2.5-7B-Instruct", - name: "Qwen/Qwen2.5-7B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-14B-Instruct": { - id: "Qwen/Qwen2.5-14B-Instruct", - name: "Qwen/Qwen2.5-14B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen/Qwen2.5-VL-72B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen/Qwen2.5-72B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct-128K": { - id: "Qwen/Qwen2.5-72B-Instruct-128K", - name: "Qwen/Qwen2.5-72B-Instruct-128K", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen3-235B-A22B": { - id: "Qwen/Qwen3-235B-A22B", - name: "Qwen/Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.42 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-8B-Instruct": { - id: "Qwen/Qwen3-VL-8B-Instruct", - name: "Qwen/Qwen3-VL-8B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.68 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen/Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Captioner": { - id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen/Qwen3-VL-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Thinking": { - id: "Qwen/Qwen3-VL-8B-Thinking", - name: "Qwen/Qwen3-VL-8B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Thinking": { - id: "Qwen/Qwen3-VL-32B-Thinking", - name: "Qwen/Qwen3-VL-32B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen/Qwen3-235B-A22B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen/Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen/Qwen2.5-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 131000, output: 131000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "openai/gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.45 }, - limit: { context: 131000, output: 8000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "openai/gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.18 }, - limit: { context: 131000, output: 8000 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "THUDM/GLM-4-32B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "THUDM/GLM-4-9B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "THUDM/GLM-Z1-32B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "THUDM/GLM-Z1-9B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 131000, output: 131000 }, - }, - }, - }, - togetherai: { - id: "togetherai", - env: ["TOGETHER_API_KEY"], - npm: "@ai-sdk/togetherai", - name: "Together AI", - doc: "https://docs.together.ai/docs/serverless-models", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 200000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2 }, - limit: { context: 200000, output: 200000 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 131072 }, - }, - "essentialai/Rnj-1-Instruct": { - id: "essentialai/Rnj-1-Instruct", - name: "Rnj-1 Instruct", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-05", - last_updated: "2025-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 32768 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3-1": { - id: "deepseek-ai/DeepSeek-V3-1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.7 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 7 }, - limit: { context: 163839, output: 163839 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.88, output: 0.88 }, - limit: { context: 131072, output: 131072 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", - name: "Qwen3 235B A22B Instruct 2507 FP8", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 130000 }, - }, - "Qwen/Qwen3-Coder-Next-FP8": { - id: "Qwen/Qwen3-Coder-Next-FP8", - name: "Qwen3 Coder Next FP8", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-03", - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - }, - }, - clarifai: { - id: "clarifai", - env: ["CLARIFAI_PAT"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.clarifai.com/v2/ext/openai/v1", - name: "Clarifai", - doc: "https://docs.clarifai.com/compute/inference/", - models: { - "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput": { - id: "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput", - name: "MiniMax-M2.5 High Throughput", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "arcee_ai/AFM/models/trinity-mini": { - id: "arcee_ai/AFM/models/trinity-mini", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR": { - id: "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR", - name: "DeepSeek OCR", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-02-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 8192, output: 8192 }, - }, - "clarifai/main/models/mm-poly-8b": { - id: "clarifai/main/models/mm-poly-8b", - name: "MM Poly 8B", - family: "mm-poly", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-06", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.658, output: 1.11 }, - limit: { context: 32768, output: 4096 }, - }, - "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct": { - id: "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11458, output: 0.74812 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507": { - id: "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507": { - id: "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.36, output: 1.3 }, - limit: { context: 262144, output: 131072 }, - }, - "mistralai/completion/models/Ministral-3-14B-Reasoning-2512": { - id: "mistralai/completion/models/Ministral-3-14B-Reasoning-2512", - name: "Ministral 3 14B Reasoning 2512", - family: "ministral", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-01", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 1.7 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/completion/models/Ministral-3-3B-Reasoning-2512": { - id: "mistralai/completion/models/Ministral-3-3B-Reasoning-2512", - name: "Ministral 3 3B Reasoning 2512", - family: "ministral", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12", - last_updated: "2026-02-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.039, output: 0.54825 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/chat-completion/models/gpt-oss-120b-high-throughput": { - id: "openai/chat-completion/models/gpt-oss-120b-high-throughput", - name: "GPT OSS 120B High Throughput", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 131072, output: 16384 }, - }, - "openai/chat-completion/models/gpt-oss-20b": { - id: "openai/chat-completion/models/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.18 }, - limit: { context: 131072, output: 16384 }, - }, - }, - }, - berget: { - id: "berget", - env: ["BERGET_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.berget.ai/v1", - name: "Berget.AI", - doc: "https://api.berget.ai", - models: { - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.3 }, - limit: { context: 128000, output: 8192 }, - }, - "BAAI/bge-reranker-v2-m3": { - id: "BAAI/bge-reranker-v2-m3", - name: "bge-reranker-v2-m3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-23", - last_updated: "2025-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 512, output: 512 }, - }, - "intfloat/multilingual-e5-large-instruct": { - id: "intfloat/multilingual-e5-large-instruct", - name: "Multilingual-E5-large-instruct", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "intfloat/multilingual-e5-large": { - id: "intfloat/multilingual-e5-large", - name: "Multilingual-E5-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-09", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "KBLab/kb-whisper-large": { - id: "KBLab/kb-whisper-large", - name: "KB-Whisper-Large", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 480000, output: 4800 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 8192 }, - }, - "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct 2506", - family: "mistral-small", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32000, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS-120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - lucidquery: { - id: "lucidquery", - env: ["LUCIDQUERY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://lucidquery.com/api/v1", - name: "LucidQuery AI", - doc: "https://lucidquery.com/api/docs", - models: { - "lucidquery-nexus-coder": { - id: "lucidquery-nexus-coder", - name: "LucidQuery Nexus Coder", - family: "lucid", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-01", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 5 }, - limit: { context: 250000, output: 60000 }, - }, - "lucidnova-rf1-100b": { - id: "lucidnova-rf1-100b", - name: "LucidNova RF1 100B", - family: "nova", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-09-16", - release_date: "2024-12-28", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 5 }, - limit: { context: 120000, output: 8000 }, - }, - }, - }, - "zhipuai-coding-plan": { - id: "zhipuai-coding-plan", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://open.bigmodel.cn/api/coding/paas/v4", - name: "Zhipu AI Coding Plan", - doc: "https://docs.bigmodel.cn/cn/coding-plan/overview", - models: { - "glm-4.6v-flash": { - id: "glm-4.6v-flash", - name: "GLM-4.6V-Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - deepseek: { - id: "deepseek", - env: ["DEEPSEEK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.deepseek.com", - name: "DeepSeek", - doc: "https://api-docs.deepseek.com/quick_start/pricing", - models: { - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - family: "deepseek-thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "DeepSeek Chat", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - lmstudio: { - id: "lmstudio", - env: ["LMSTUDIO_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "http://127.0.0.1:1234/v1", - name: "LMStudio", - doc: "https://lmstudio.ai/models", - models: { - "qwen/qwen3-30b-a3b-2507": { - id: "qwen/qwen3-30b-a3b-2507", - name: "Qwen3 30B A3B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-coder-30b": { - id: "qwen/qwen3-coder-30b", - name: "Qwen3 Coder 30B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - openrouter: { - id: "openrouter", - env: ["OPENROUTER_API_KEY"], - npm: "@openrouter/ai-sdk-provider", - api: "https://openrouter.ai/api/v1", - name: "OpenRouter", - doc: "https://openrouter.ai/models", - models: { - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "Intellect 3", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/nemotron-nano-9b-v2:free": { - id: "nvidia/nemotron-nano-9b-v2:free", - name: "Nemotron Nano 9B V2 (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-09-05", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "nvidia/nemotron-nano-12b-v2-vl:free": { - id: "nvidia/nemotron-nano-12b-v2-vl:free", - name: "Nemotron Nano 12B 2 VL (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-10-28", - last_updated: "2026-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "nvidia/nemotron-3-nano-30b-a3b:free": { - id: "nvidia/nemotron-3-nano-30b-a3b:free", - name: "Nemotron 3 Nano 30B A3B (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-12-14", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "nvidia-nemotron-nano-9b-v2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-3-super-120b-a12b-free": { - id: "nvidia/nemotron-3-super-120b-a12b-free", - name: "Nemotron 3 Super (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "arcee-ai/trinity-large-preview:free": { - id: "arcee-ai/trinity-large-preview:free", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/trinity-mini:free": { - id: "arcee-ai/trinity-mini:free", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "xiaomi/mimo-v2-omni": { - id: "xiaomi/mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 65536 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-14", - last_updated: "2025-12-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 262144, output: 65536 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "liquid/lfm-2.5-1.2b-thinking:free": { - id: "liquid/lfm-2.5-1.2b-thinking:free", - name: "LFM2.5-1.2B-Thinking (free)", - family: "liquid", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-20", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "liquid/lfm-2.5-1.2b-instruct:free": { - id: "liquid/lfm-2.5-1.2b-instruct:free", - name: "LFM2.5-1.2B-Instruct (free)", - family: "liquid", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-20", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-04", - last_updated: "2026-03-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - "inception/mercury": { - id: "inception/mercury", - name: "Mercury", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-26", - last_updated: "2025-06-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 32000 }, - }, - "inception/mercury-coder": { - id: "inception/mercury-coder", - name: "Mercury Coder", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 32000 }, - }, - "sourceful/riverflow-v2-fast-preview": { - id: "sourceful/riverflow-v2-fast-preview", - name: "Riverflow V2 Fast Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "sourceful/riverflow-v2-max-preview": { - id: "sourceful/riverflow-v2-max-preview", - name: "Riverflow V2 Max Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "sourceful/riverflow-v2-standard-preview": { - id: "sourceful/riverflow-v2-standard-preview", - name: "Riverflow V2 Standard Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "stepfun/step-3.5-flash:free": { - id: "stepfun/step-3.5-flash:free", - name: "Step 3.5 Flash (free)", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Step 3.5 Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 256000 }, - }, - "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { - id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", - name: "Uncensored (free)", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-07-09", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "deepseek/deepseek-v3.1-terminus:exacto": { - id: "deepseek/deepseek-v3.1-terminus:exacto", - name: "DeepSeek V3.1 Terminus (exacto)", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek V3.2 Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-chat-v3.1": { - id: "deepseek/deepseek-chat-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-chat-v3-0324": { - id: "deepseek/deepseek-chat-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 8192 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-23", - last_updated: "2025-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.4 }, - limit: { context: 163840, output: 65536 }, - }, - "openrouter/free": { - id: "openrouter/free", - name: "Free Models Router", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-01", - last_updated: "2026-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, input: 200000, output: 8000 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/kimi-k2-0905:exacto": { - id: "moonshotai/kimi-k2-0905:exacto", - name: "Kimi K2 Instruct 0905 (exacto)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2:free": { - id: "moonshotai/kimi-k2:free", - name: "Kimi K2 (free)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32800, output: 32800 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview-customtools": { - id: "google/gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro-preview-06-05": { - id: "google/gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3n-e4b-it:free": { - id: "google/gemma-3n-e4b-it:free", - name: "Gemma 3n 4B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "google/gemini-2.5-flash-preview-09-2025": { - id: "google/gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.031 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro-preview-05-06": { - id: "google/gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3n-e2b-it:free": { - id: "google/gemma-3n-e2b-it:free", - name: "Gemma 3n 2B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-17", - last_updated: "2025-07-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-001": { - id: "google/gemini-2.0-flash-001", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.25, - output: 1.5, - reasoning: 1.5, - cache_read: 0.025, - cache_write: 0.083, - input_audio: 0.5, - output_audio: 0.5, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-12b-it:free": { - id: "google/gemma-3-12b-it:free", - name: "Gemma 3 12B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-9b-it": { - id: "google/gemma-2-9b-it", - name: "Gemma 2 9B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-28", - last_updated: "2024-06-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 8192, output: 8192 }, - }, - "google/gemma-3-4b-it:free": { - id: "google/gemma-3-4b-it:free", - name: "Gemma 3 4B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Gemma 3n 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1050000, output: 66000 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Gemma 3 12B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemma-3-4b-it": { - id: "google/gemma-3-4b-it", - name: "Gemma 3 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01703, output: 0.06815 }, - limit: { context: 96000, output: 96000 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 96000, output: 96000 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-27b-it:free": { - id: "google/gemma-3-27b-it:free", - name: "Gemma 3 27B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131000 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.6:exacto": { - id: "z-ai/glm-4.6:exacto", - name: "GLM 4.6 (exacto)", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.9, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7-flash": { - id: "z-ai/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 65535 }, - }, - "z-ai/glm-4.5-air:free": { - id: "z-ai/glm-4.5-air:free", - name: "GLM 4.5 Air (free)", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "GLM 4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-coder:free": { - id: "qwen/qwen3-coder:free", - name: "Qwen3 Coder 480B A35B Instruct (free)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwen3-coder-flash": { - id: "qwen/qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 128000, output: 66536 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-coder:exacto": { - id: "qwen/qwen3-coder:exacto", - name: "Qwen3 Coder (exacto)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 1.53 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - id: "qwen/qwen-2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3.5-plus-02-15": { - id: "qwen/qwen3.5-plus-02-15", - name: "Qwen3.5 Plus 2026-02-15", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - id: "qwen/qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-07-25": { - id: "qwen/qwen3-235b-a22b-07-25", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.85 }, - limit: { context: 262144, output: 131072 }, - }, - "qwen/qwen3-next-80b-a3b-instruct:free": { - id: "qwen/qwen3-next-80b-a3b-instruct:free", - name: "Qwen3 Next 80B A3B Instruct (free)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-4b:free": { - id: "qwen/qwen3-4b:free", - name: "Qwen3 4B (free)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-30", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - id: "qwen/qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.078, output: 0.312 }, - limit: { context: 262144, output: 81920 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 32768 }, - }, - "x-ai/grok-3": { - id: "x-ai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-3-mini-beta": { - id: "x-ai/grok-3-mini-beta", - name: "Grok 3 Mini Beta", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-3-mini": { - id: "x-ai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-4.20-multi-agent-beta": { - id: "x-ai/grok-4.20-multi-agent-beta", - name: "Grok 4.20 Multi - Agent Beta", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, - limit: { context: 2000000, output: 30000 }, - status: "beta", - }, - "x-ai/grok-4.20-beta": { - id: "x-ai/grok-4.20-beta", - name: "Grok 4.20 Beta", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, - limit: { context: 2000000, output: 30000 }, - status: "beta", - }, - "x-ai/grok-3-beta": { - id: "x-ai/grok-3-beta", - name: "Grok 3 Beta", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-3.3-70b-instruct:free": { - id: "meta-llama/llama-3.3-70b-instruct:free", - name: "Llama 3.3 70B Instruct (free)", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - id: "meta-llama/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-3.2-3b-instruct:free": { - id: "meta-llama/llama-3.2-3b-instruct:free", - name: "Llama 3.2 3B Instruct (free)", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/devstral-medium-2507": { - id: "mistralai/devstral-medium-2507", - name: "Devstral Medium", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Codestral 2508", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "mistralai/mistral-small-3.1-24b-instruct": { - id: "mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistralai/mistral-small-2603": { - id: "mistralai/mistral-small-2603", - name: "Mistral Small 4", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/devstral-small-2505": { - id: "mistralai/devstral-small-2505", - name: "Devstral Small", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.12 }, - limit: { context: 128000, output: 128000 }, - }, - "mistralai/devstral-2512": { - id: "mistralai/devstral-2512", - name: "Devstral 2 2512", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-small-3.2-24b-instruct": { - id: "mistralai/mistral-small-3.2-24b-instruct", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 96000, output: 8192 }, - }, - "mistralai/devstral-small-2507": { - id: "mistralai/devstral-small-2507", - name: "Devstral Small 1.1", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-120b:exacto": { - id: "openai/gpt-oss-120b:exacto", - name: "GPT OSS 120B (exacto)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.24 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "GPT-5 Image", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 5, output: 10, cache_read: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.28 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b:free": { - id: "openai/gpt-oss-20b:free", - name: "gpt-oss-20b (free)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4 Mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2e-7, output: 0.00000125, cache_read: 2e-8 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-120b:free": { - id: "openai/gpt-oss-120b:free", - name: "gpt-oss-120b (free)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 7.5e-7, output: 0.0000045, cache_read: 7.5e-8 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax/minimax-m1": { - id: "minimax/minimax-m1", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax-01", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000000, output: 1000000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.15, cache_read: 0.28, cache_write: 1.15 }, - limit: { context: 196600, output: 118000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "bytedance-seed/seedream-4.5": { - id: "bytedance-seed/seedream-4.5", - name: "Seedream 4.5", - family: "seed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-23", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 4096 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 128000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "black-forest-labs/flux.2-pro": { - id: "black-forest-labs/flux.2-pro", - name: "FLUX.2 Pro", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-25", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 46864, output: 46864 }, - }, - "black-forest-labs/flux.2-flex": { - id: "black-forest-labs/flux.2-flex", - name: "FLUX.2 Flex", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-25", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 67344, output: 67344 }, - }, - "black-forest-labs/flux.2-max": { - id: "black-forest-labs/flux.2-max", - name: "FLUX.2 Max", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-16", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 46864, output: 46864 }, - }, - "black-forest-labs/flux.2-klein-4b": { - id: "black-forest-labs/flux.2-klein-4b", - name: "FLUX.2 Klein 4B", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-14", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 40960, output: 40960 }, - }, - "nousresearch/hermes-4-405b": { - id: "nousresearch/hermes-4-405b", - name: "Hermes 4 405B", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-4-70b": { - id: "nousresearch/hermes-4-70b", - name: "Hermes 4 70B", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-3-llama-3.1-405b:free": { - id: "nousresearch/hermes-3-llama-3.1-405b:free", - name: "Hermes 3 405B Instruct (free)", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - }, - }, - "github-models": { - id: "github-models", - env: ["GITHUB_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://models.github.ai/inference", - name: "GitHub Models", - doc: "https://docs.github.com/en/github-models", - models: { - "ai21-labs/ai21-jamba-1.5-mini": { - id: "ai21-labs/ai21-jamba-1.5-mini", - name: "AI21 Jamba 1.5 Mini", - family: "jamba", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-29", - last_updated: "2024-08-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 4096 }, - }, - "ai21-labs/ai21-jamba-1.5-large": { - id: "ai21-labs/ai21-jamba-1.5-large", - name: "AI21 Jamba 1.5 Large", - family: "jamba", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-29", - last_updated: "2024-08-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 4096 }, - }, - "microsoft/phi-4-multimodal-instruct": { - id: "microsoft/phi-4-multimodal-instruct", - name: "Phi-4-multimodal-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-128k-instruct": { - id: "microsoft/phi-3-small-128k-instruct", - name: "Phi-3-small instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-128k-instruct": { - id: "microsoft/phi-3-medium-128k-instruct", - name: "Phi-3-medium instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/mai-ds-r1": { - id: "microsoft/mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "microsoft/phi-3.5-moe-instruct": { - id: "microsoft/phi-3.5-moe-instruct", - name: "Phi-3.5-MoE instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-mini-instruct": { - id: "microsoft/phi-3.5-mini-instruct", - name: "Phi-3.5-mini instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-mini-instruct": { - id: "microsoft/phi-4-mini-instruct", - name: "Phi-4-mini-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4": { - id: "microsoft/phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16000, output: 4096 }, - }, - "microsoft/phi-3-mini-4k-instruct": { - id: "microsoft/phi-3-mini-4k-instruct", - name: "Phi-3-mini instruct (4k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 1024 }, - }, - "microsoft/phi-4-mini-reasoning": { - id: "microsoft/phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-vision-instruct": { - id: "microsoft/phi-3.5-vision-instruct", - name: "Phi-3.5-vision instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-4k-instruct": { - id: "microsoft/phi-3-medium-4k-instruct", - name: "Phi-3-medium instruct (4k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 1024 }, - }, - "microsoft/phi-3-mini-128k-instruct": { - id: "microsoft/phi-3-mini-128k-instruct", - name: "Phi-3-mini instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-reasoning": { - id: "microsoft/phi-4-reasoning", - name: "Phi-4-Reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-8k-instruct": { - id: "microsoft/phi-3-small-8k-instruct", - name: "Phi-3-small instruct (8k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "core42/jais-30b-chat": { - id: "core42/jais-30b-chat", - name: "JAIS 30b Chat", - family: "jais", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2023-08-30", - last_updated: "2023-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "mistral-ai/ministral-3b": { - id: "mistral-ai/ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral-ai/mistral-medium-2505": { - id: "mistral-ai/mistral-medium-2505", - name: "Mistral Medium 3 (25.05)", - family: "mistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/mistral-nemo": { - id: "mistral-ai/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral-ai/mistral-large-2411": { - id: "mistral-ai/mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/mistral-small-2503": { - id: "mistral-ai/mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/codestral-2501": { - id: "mistral-ai/codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32000, output: 8192 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-90b-vision-instruct": { - id: "meta/llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.3-70b-instruct": { - id: "meta/llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/llama-4-scout-17b-16e-instruct": { - id: "meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/meta-llama-3.1-405b-instruct": { - id: "meta/meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3-8b-instruct": { - id: "meta/meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/meta-llama-3-70b-instruct": { - id: "meta/meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "meta/meta-llama-3.1-70b-instruct": { - id: "meta/meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3.1-8b-instruct": { - id: "meta/meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/llama-4-maverick-17b-128e-instruct-fp8": { - id: "meta/llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o1-preview": { - id: "openai/o1-preview", - name: "OpenAI o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1-mini": { - id: "openai/o1-mini", - name: "OpenAI o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 65536 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "cohere/cohere-command-a": { - id: "cohere/cohere-command-a", - name: "Cohere Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-plus-08-2024": { - id: "cohere/cohere-command-r-plus-08-2024", - name: "Cohere Command R+ 08-2024", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r": { - id: "cohere/cohere-command-r", - name: "Cohere Command R", - family: "command-r", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-03-11", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-08-2024": { - id: "cohere/cohere-command-r-08-2024", - name: "Cohere Command R 08-2024", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-plus": { - id: "cohere/cohere-command-r-plus", - name: "Cohere Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-04-04", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-09", - last_updated: "2024-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-09", - last_updated: "2024-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - "302ai": { - id: "302ai", - env: ["302AI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.302.ai/v1", - name: "302.AI", - doc: "https://doc.302.ai", - models: { - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "qwen3-235b-a22b-instruct-2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1.143 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "gpt-5-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-08", - last_updated: "2025-10-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "claude-opus-4-5-20251101", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "Deepseek-Reasoner", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen-max-latest": { - id: "qwen-max-latest", - name: "Qwen-Max-Latest", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.343, output: 1.372 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-max-2025-09-23": { - id: "qwen3-max-2025-09-23", - name: "qwen3-max-2025-09-23", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.43 }, - limit: { context: 258048, output: 65536 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "grok-4-fast-reasoning", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "gemini-2.5-flash-lite-preview-09-2025", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "gpt-5.2-chat-latest", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-4-1-20250805-thinking": { - id: "claude-opus-4-1-20250805-thinking", - name: "claude-opus-4-1-20250805-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-27", - last_updated: "2025-05-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "qwen3-coder-480b-a35b-instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.43 }, - limit: { context: 262144, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "gemini-2.5-flash-preview-09-2025", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "grok-4-1-fast-reasoning", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 128000, output: 98304 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "kimi-k2-0905-preview", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.632, output: 2.53 }, - limit: { context: 262144, output: 262144 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "grok-4-1-fast-non-reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "gpt-5.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-5-20250929-thinking": { - id: "claude-sonnet-4-5-20250929-thinking", - name: "claude-sonnet-4-5-20250929-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "mistral-large-2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 3.3 }, - limit: { context: 128000, output: 262144 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "glm-4.6", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 200000, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "gpt-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 32768 }, - }, - "doubao-seed-1-6-vision-250815": { - id: "doubao-seed-1-6-vision-250815", - name: "doubao-seed-1-6-vision-250815", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.114, output: 1.143 }, - limit: { context: 256000, output: 32000 }, - }, - "doubao-seed-1-6-thinking-250715": { - id: "doubao-seed-1-6-thinking-250715", - name: "doubao-seed-1-6-thinking-250715", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.121, output: 1.21 }, - limit: { context: 256000, output: 16000 }, - }, - "doubao-seed-1-8-251215": { - id: "doubao-seed-1-8-251215", - name: "doubao-seed-1-8-251215", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.114, output: 0.286 }, - limit: { context: 224000, output: 64000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "claude-sonnet-4-5-20250929", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "ministral-14b-2512": { - id: "ministral-14b-2512", - name: "ministral-14b-2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 0.33 }, - limit: { context: 128000, output: 128000 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-26", - last_updated: "2025-10-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 1000000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "gpt-5.2", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "gpt-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1000000, output: 32768 }, - }, - "gemini-2.5-flash-nothink": { - id: "gemini-2.5-flash-nothink", - name: "gemini-2.5-flash-nothink", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-24", - last_updated: "2025-06-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.86 }, - limit: { context: 128000, output: 16384 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "deepseek-v3.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-opus-4-5-20251101-thinking": { - id: "claude-opus-4-5-20251101-thinking", - name: "claude-opus-4-5-20251101-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "claude-haiku-4-5-20251001", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "gpt-5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "Deepseek-Chat", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "gpt-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1000000, output: 32768 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "gemini-2.5-flash-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-10-08", - last_updated: "2025-10-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 30 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "gemini-3-pro-image-preview", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 120 }, - limit: { context: 32768, output: 64000 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "glm-4.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 200000, output: 131072 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax-M1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.132, output: 1.254 }, - limit: { context: 1000000, output: 128000 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "kimi-k2-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.575, output: 2.3 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5-thinking": { - id: "gpt-5-thinking", - name: "gpt-5-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-v3.2-thinking": { - id: "deepseek-v3.2-thinking", - name: "DeepSeek-V3.2-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 128000 }, - }, - "chatgpt-4o-latest": { - id: "chatgpt-4o-latest", - name: "chatgpt-4o-latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2024-08-08", - last_updated: "2024-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen-Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 1.2 }, - limit: { context: 1000000, output: 32768 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 1000000, output: 131072 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "kimi-k2-thinking-turbo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.265, output: 9.119 }, - limit: { context: 262144, output: 262144 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "gemini-3-pro-preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "gemini-2.0-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-11", - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 2000000, output: 8192 }, - }, - "doubao-seed-code-preview-251028": { - id: "doubao-seed-code-preview-251028", - name: "doubao-seed-code-preview-251028", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-11", - last_updated: "2025-11-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.14 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3-30B-A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 1.08 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "grok-4-fast-non-reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.86 }, - limit: { context: 64000, output: 16384 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen-Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.022, output: 0.22 }, - limit: { context: 1000000, output: 32768 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.145, output: 0.43 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "gpt-5.1-chat-latest", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "claude-opus-4-1-20250805", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "gpt-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4.1": { - id: "grok-4.1", - name: "grok-4.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "github-copilot": { - id: "github-copilot", - env: ["GITHUB_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.githubcopilot.com", - name: "GitHub Copilot", - doc: "https://docs.github.com/en/copilot", - models: { - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1-Codex-max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-27", - last_updated: "2025-08-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "claude-sonnet-4.6": { - id: "claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, input: 128000, output: 32000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "claude-haiku-4.5": { - id: "claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 32000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 64000, output: 16384 }, - }, - "claude-opus-4.5": { - id: "claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 160000, input: 128000, output: 32000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 216000, input: 128000, output: 16000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "claude-sonnet-4.5": { - id: "claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 32000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "claude-opus-4.6": { - id: "claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 64000 }, - }, - "claude-opus-41": { - id: "claude-opus-41", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 80000, output: 16000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 64000, output: 4096 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - moonshotai: { - id: "moonshotai", - env: ["MOONSHOT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.moonshot.ai/v1", - name: "Moonshot AI", - doc: "https://platform.moonshot.ai/docs/api/chat", - models: { - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 10, cache_read: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0711-preview": { - id: "kimi-k2-0711-preview", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 131072, output: 16384 }, - }, - }, - }, - "google-vertex": { - id: "google-vertex", - env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], - npm: "@ai-sdk/google-vertex", - name: "Vertex", - doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/models", - models: { - "gemini-embedding-001": { - id: "gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-05", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 2048, output: 3072 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview-customtools": { - id: "gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview 04-17", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash Preview 05-20", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-flash-latest": { - id: "gemini-flash-latest", - name: "Gemini Flash Latest", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview 06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 65536, output: 65536 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-flash-lite-latest": { - id: "gemini-flash-lite-latest", - name: "Gemini Flash-Lite Latest", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "zai-org/glm-5-maas": { - id: "zai-org/glm-5-maas", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.1 }, - limit: { context: 202752, output: 131072 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "zai-org/glm-4.7-maas": { - id: "zai-org/glm-4.7-maas", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-06", - last_updated: "2026-01-06", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "deepseek-ai/deepseek-v3.1-maas": { - id: "deepseek-ai/deepseek-v3.1-maas", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.7 }, - limit: { context: 163840, output: 32768 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "qwen/qwen3-235b-a22b-instruct-2507-maas": { - id: "qwen/qwen3-235b-a22b-instruct-2507-maas", - name: "Qwen3 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 262144, output: 16384 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "meta/llama-4-maverick-17b-128e-instruct-maas": { - id: "meta/llama-4-maverick-17b-128e-instruct-maas", - name: "Llama 4 Maverick 17B 128E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.15 }, - limit: { context: 524288, output: 8192 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "meta/llama-3.3-70b-instruct-maas": { - id: "meta/llama-3.3-70b-instruct-maas", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 8192 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "openai/gpt-oss-20b-maas": { - id: "openai/gpt-oss-20b-maas", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.25 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-120b-maas": { - id: "openai/gpt-oss-120b-maas", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - "privatemode-ai": { - id: "privatemode-ai", - env: ["PRIVATEMODE_API_KEY", "PRIVATEMODE_ENDPOINT"], - npm: "@ai-sdk/openai-compatible", - api: "http://localhost:8080/v1", - name: "Privatemode AI", - doc: "https://docs.privatemode.ai/api/overview", - models: { - "gemma-3-27b": { - id: "gemma-3-27b", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-04", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper large-v3", - family: "whisper", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2023-09-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "qwen3-embedding-4b": { - id: "qwen3-embedding-4b", - name: "Qwen3-Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-06", - last_updated: "2025-06-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32000, output: 2560 }, - }, - "qwen3-coder-30b-a3b": { - id: "qwen3-coder-30b-a3b", - name: "Qwen3-Coder 30B-A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - google: { - id: "google", - env: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], - npm: "@ai-sdk/google", - name: "Google", - doc: "https://ai.google.dev/gemini-api/docs/pricing", - models: { - "gemini-embedding-001": { - id: "gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-05", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 2048, output: 3072 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview-customtools": { - id: "gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview 04-17", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash Preview 05-20", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-flash-image-preview": { - id: "gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 60 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-live-2.5-flash": { - id: "gemini-live-2.5-flash", - name: "Gemini Live 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, - limit: { context: 128000, output: 8000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-live-2.5-flash-preview-native-audio": { - id: "gemini-live-2.5-flash-preview-native-audio", - name: "Gemini Live 2.5 Flash Preview Native Audio", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-09-18", - modalities: { input: ["text", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, - limit: { context: 131072, output: 65536 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-tts": { - id: "gemini-2.5-flash-preview-tts", - name: "Gemini 2.5 Flash Preview TTS", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 0.5, output: 10 }, - limit: { context: 8000, output: 16000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-flash-latest": { - id: "gemini-flash-latest", - name: "Gemini Flash Latest", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview 06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025, input_audio: 0.3 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-2.5-pro-preview-tts": { - id: "gemini-2.5-pro-preview-tts", - name: "Gemini 2.5 Pro Preview TTS", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 1, output: 20 }, - limit: { context: 8000, output: 16000 }, - }, - "gemini-2.5-flash-image-preview": { - id: "gemini-2.5-flash-image-preview", - name: "Gemini 2.5 Flash Image (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-1.5-flash-8b": { - id: "gemini-1.5-flash-8b", - name: "Gemini 1.5 Flash-8B", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-03", - last_updated: "2024-10-03", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0375, output: 0.15, cache_read: 0.01 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-1.5-flash": { - id: "gemini-1.5-flash", - name: "Gemini 1.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.01875 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemini-flash-lite-latest": { - id: "gemini-flash-lite-latest", - name: "Gemini Flash-Lite Latest", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-1.5-pro": { - id: "gemini-1.5-pro", - name: "Gemini 1.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-02-15", - last_updated: "2024-02-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 5, cache_read: 0.3125 }, - limit: { context: 1000000, output: 8192 }, - }, - }, - }, - vivgrid: { - id: "vivgrid", - env: ["VIVGRID_API_KEY"], - npm: "@ai-sdk/openai", - api: "https://api.vivgrid.com/v1", - name: "Vivgrid", - doc: "https://docs.vivgrid.com/models", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42 }, - limit: { context: 128000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - }, - }, - "moonshotai-cn": { - id: "moonshotai-cn", - env: ["MOONSHOT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.moonshot.cn/v1", - name: "Moonshot AI (China)", - doc: "https://platform.moonshot.cn/docs/api/chat", - models: { - "kimi-k2-0711-preview": { - id: "kimi-k2-0711-preview", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 131072, output: 16384 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 10, cache_read: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - "sap-ai-core": { - id: "sap-ai-core", - env: ["AICORE_SERVICE_KEY"], - npm: "@jerome-benoit/sap-ai-provider-v2", - name: "SAP AI Core", - doc: "https://help.sap.com/docs/sap-ai-core", - models: { - "anthropic--claude-4.5-opus": { - id: "anthropic--claude-4.5-opus", - name: "anthropic--claude-4.5-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic--claude-4-sonnet": { - id: "anthropic--claude-4-sonnet", - name: "anthropic--claude-4-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic--claude-4.5-sonnet": { - id: "anthropic--claude-4.5-sonnet", - name: "anthropic--claude-4.5-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic--claude-3-sonnet": { - id: "anthropic--claude-3-sonnet", - name: "anthropic--claude-3-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic--claude-3.7-sonnet": { - id: "anthropic--claude-3.7-sonnet", - name: "anthropic--claude-3.7-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - sonar: { - id: "sonar", - name: "sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic--claude-3.5-sonnet": { - id: "anthropic--claude-3.5-sonnet", - name: "anthropic--claude-3.5-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "sonar-deep-research", - family: "sonar-deep-research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-02-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, reasoning: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "anthropic--claude-4.6-sonnet": { - id: "anthropic--claude-4.6-sonnet", - name: "anthropic--claude-4.6-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "gemini-2.5-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "gpt-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "anthropic--claude-4.5-haiku": { - id: "anthropic--claude-4.5-haiku", - name: "anthropic--claude-4.5-haiku", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "gpt-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "gpt-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "anthropic--claude-3-opus": { - id: "anthropic--claude-3-opus", - name: "anthropic--claude-3-opus", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "sonar-pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic--claude-3-haiku": { - id: "anthropic--claude-3-haiku", - name: "anthropic--claude-3-haiku", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic--claude-4.6-opus": { - id: "anthropic--claude-4.6-opus", - name: "anthropic--claude-4.6-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "gpt-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic--claude-4-opus": { - id: "anthropic--claude-4-opus", - name: "anthropic--claude-4-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - zhipuai: { - id: "zhipuai", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://open.bigmodel.cn/api/paas/v4", - name: "Zhipu AI", - doc: "https://docs.z.ai/guides/overview/pricing", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - }, - }, - venice: { - id: "venice", - env: ["VENICE_API_KEY"], - npm: "venice-ai-sdk-provider", - name: "Venice AI", - doc: "https://docs.venice.ai", - models: { - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen 3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "google-gemma-3-27b-it": { - id: "google-gemma-3-27b-it", - name: "Google Gemma 3 27B Instruct", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-04", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 198000, output: 16384 }, - }, - "openai-gpt-4o-2024-11-20": { - id: "openai-gpt-4o-2024-11-20", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-28", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.125, output: 12.5 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-45": { - id: "claude-opus-45", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-06", - last_updated: "2026-01-28", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, - limit: { context: 198000, output: 49500 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen 3 Coder 480b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 3 }, - limit: { context: 256000, output: 65536 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, - limit: { context: 1000000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.87, cache_read: 0.03 }, - limit: { context: 256000, output: 10000 }, - }, - "zai-org-glm-5": { - id: "zai-org-glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 198000, output: 32000 }, - }, - "zai-org-glm-4.7": { - id: "zai-org-glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-24", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.65, cache_read: 0.11 }, - limit: { context: 198000, output: 16384 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.6, output: 18, cache_read: 0.36, cache_write: 4.5 }, - limit: { context: 1000000, output: 64000 }, - }, - "zai-org-glm-4.6": { - id: "zai-org-glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2024-04-01", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 2.75, cache_read: 0.3 }, - limit: { context: 198000, output: 16384 }, - }, - "openai-gpt-53-codex": { - id: "openai-gpt-53-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2-5": { - id: "kimi-k2-5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-01-27", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 3.5, cache_read: 0.11 }, - limit: { context: 256000, output: 65536 }, - }, - "mistral-small-3-2-24b-instruct": { - id: "mistral-small-3-2-24b-instruct", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-15", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09375, output: 0.25 }, - limit: { context: 256000, output: 16384 }, - }, - "mistral-31-24b": { - id: "mistral-31-24b", - name: "Venice Medium", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-03-18", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 128000, output: 4096 }, - }, - "grok-4-20-multi-agent-beta": { - id: "grok-4-20-multi-agent-beta", - name: "Grok 4.20 Multi-Agent Beta", - family: "grok-beta", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 7.5, - cache_read: 0.25, - context_over_200k: { input: 5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 2000000, output: 128000 }, - }, - "openai-gpt-54-pro": { - id: "openai-gpt-54-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 37.5, output: 225, context_over_200k: { input: 75, output: 337.5 } }, - limit: { context: 1000000, output: 128000 }, - }, - "qwen3-4b": { - id: "qwen3-4b", - name: "Venice Small", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 32000, output: 4096 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-19", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 3.75, cache_read: 0.07 }, - limit: { context: 256000, output: 65536 }, - }, - "grok-4-20-beta": { - id: "grok-4-20-beta", - name: "Grok 4.20 Beta", - family: "grok-beta", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 7.5, - cache_read: 0.25, - context_over_200k: { input: 5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 2000000, output: 128000 }, - }, - "olafangensan-glm-4.7-flash-heretic": { - id: "olafangensan-glm-4.7-flash-heretic", - name: "GLM 4.7 Flash Heretic", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.8 }, - limit: { context: 200000, output: 24000 }, - }, - "minimax-m25": { - id: "minimax-m25", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.34, output: 1.19, cache_read: 0.04 }, - limit: { context: 198000, output: 32768 }, - }, - "zai-org-glm-4.7-flash": { - id: "zai-org-glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-coder-480b-a35b-instruct-turbo": { - id: "qwen3-coder-480b-a35b-instruct-turbo", - name: "Qwen 3 Coder 480B Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, - limit: { context: 256000, output: 65536 }, - }, - "openai-gpt-oss-120b": { - id: "openai-gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-41-fast": { - id: "grok-41-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-12-01", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.625, cache_read: 0.0625 }, - limit: { context: 1000000, output: 30000 }, - }, - "openai-gpt-52": { - id: "openai-gpt-52", - name: "GPT-5.2", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-12-13", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 256000, output: 65536 }, - }, - "openai-gpt-54": { - id: "openai-gpt-54", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.13, output: 18.8, cache_read: 0.313 }, - limit: { context: 1000000, output: 131072 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-04", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.33, output: 0.48, cache_read: 0.16 }, - limit: { context: 160000, output: 32768 }, - }, - "gemini-3-1-pro-preview": { - id: "gemini-3-1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.5, - cache_write: 0.5, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1000000, output: 32768 }, - }, - "openai-gpt-4o-mini-2024-07-18": { - id: "openai-gpt-4o-mini-2024-07-18", - name: "GPT-4o Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-28", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1875, output: 0.75, cache_read: 0.09375 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-3.3-70b": { - id: "llama-3.3-70b", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen3-next-80b": { - id: "qwen3-next-80b", - name: "Qwen 3 Next 80b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.9 }, - limit: { context: 256000, output: 16384 }, - }, - "hermes-3-llama-3.1-405b": { - id: "hermes-3-llama-3.1-405b", - name: "Hermes 3 Llama 3.1 405b", - family: "hermes", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-25", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.1, output: 3 }, - limit: { context: 128000, output: 16384 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-12-10", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 3.2, cache_read: 0.375 }, - limit: { context: 256000, output: 65536 }, - }, - "qwen3-5-9b": { - id: "qwen3-5-9b", - name: "Qwen 3.5 9B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 256000, output: 65536 }, - }, - "minimax-m21": { - id: "minimax-m21", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, - limit: { context: 198000, output: 32768 }, - }, - "qwen3-5-35b-a3b": { - id: "qwen3-5-35b-a3b", - name: "Qwen 3.5 35B A3B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-25", - last_updated: "2026-03-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3125, output: 1.25, cache_read: 0.15625 }, - limit: { context: 256000, output: 65536 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen 3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 128000, output: 16384 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-12-02", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.625 }, - limit: { context: 198000, output: 32768 }, - }, - "llama-3.2-3b": { - id: "llama-3.2-3b", - name: "Llama 3.2 3B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-10-03", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "venice-uncensored": { - id: "venice-uncensored", - name: "Venice Uncensored 1.1", - family: "venice", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-03-18", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.9 }, - limit: { context: 32000, output: 8192 }, - }, - "nvidia-nemotron-3-nano-30b-a3b": { - id: "nvidia-nemotron-3-nano-30b-a3b", - name: "NVIDIA Nemotron 3 Nano 30B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "openai-gpt-52-codex": { - id: "openai-gpt-52-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-01-15", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 256000, output: 65536 }, - }, - "minimax-m27": { - id: "minimax-m27", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.375, output: 1.5, cache_read: 0.075 }, - limit: { context: 198000, output: 32768 }, - }, - "venice-uncensored-role-play": { - id: "venice-uncensored-role-play", - name: "Venice Role Play Uncensored", - family: "venice", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-20", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3 VL 235B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-16", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "claude-sonnet-45": { - id: "claude-sonnet-45", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-01-15", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.75, output: 18.75, cache_read: 0.375, cache_write: 4.69 }, - limit: { context: 198000, output: 49500 }, - }, - }, - }, - nova: { - id: "nova", - env: ["NOVA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.nova.amazon.com/v1", - name: "Nova", - doc: "https://nova.amazon.com/dev/documentation", - models: { - "nova-2-lite-v1": { - id: "nova-2-lite-v1", - name: "Nova 2 Lite", - family: "nova-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, reasoning: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "nova-2-pro-v1": { - id: "nova-2-pro-v1", - name: "Nova 2 Pro", - family: "nova-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2026-01-03", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, reasoning: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - }, - }, - "zai-coding-plan": { - id: "zai-coding-plan", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.z.ai/api/coding/paas/v4", - name: "Z.AI Coding Plan", - doc: "https://docs.z.ai/devpack/overview", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "opencode-go": { - id: "opencode-go", - env: ["OPENCODE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://opencode.ai/zen/go/v1", - name: "OpenCode Go", - doc: "https://opencode.ai/docs/zen", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax-m2.7": { - id: "minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax-m2.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 65536 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax-m2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - }, - }, - drun: { - id: "drun", - env: ["DRUN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://chat.d.run/v1", - name: "D.Run (China)", - doc: "https://www.d.run", - models: { - "public/deepseek-v3": { - id: "public/deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131072, output: 8192 }, - }, - "public/deepseek-r1": { - id: "public/deepseek-r1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32000 }, - }, - "public/minimax-m25": { - id: "public/minimax-m25", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1.16 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - firmware: { - id: "firmware", - env: ["FIRMWARE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://app.frogbot.ai/api/v1", - name: "Firmware", - doc: "https://docs.frogbot.ai", - models: { - "gpt-5-4": { - id: "gpt-5-4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 272000, output: 128000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-02-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 198000, output: 8192 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 128000 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-17", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-17", - last_updated: "2025-07-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075 }, - limit: { context: 1048576, output: 65536 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "deepseek-v3-2": { - id: "deepseek-v3-2", - name: "DeepSeek v3.2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 1.68, cache_read: 0.28 }, - limit: { context: 128000, output: 8192 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi-K2.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 128000 }, - }, - "gemini-3-1-pro-preview": { - id: "gemini-3-1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "minimax-m2-5": { - id: "minimax-m2-5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-01-15", - last_updated: "2025-02-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 192000, output: 8192 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "gpt-5-3-codex": { - id: "gpt-5-3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2026-01-31", - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - ovhcloud: { - id: "ovhcloud", - env: ["OVHCLOUD_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", - name: "OVHcloud AI Endpoints", - doc: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", - models: { - "meta-llama-3_3-70b-instruct": { - id: "meta-llama-3_3-70b-instruct", - name: "Meta-Llama-3_3-70B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.74, output: 0.74 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-7b-instruct-v0.3": { - id: "mistral-7b-instruct-v0.3", - name: "Mistral-7B-Instruct-v0.3", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.11 }, - limit: { context: 65536, output: 65536 }, - }, - "mistral-small-3.2-24b-instruct-2506": { - id: "mistral-small-3.2-24b-instruct-2506", - name: "Mistral-Small-3.2-24B-Instruct-2506", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-16", - last_updated: "2025-07-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.31 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3-32B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-16", - last_updated: "2025-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.25 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen2.5-coder-32b-instruct": { - id: "qwen2.5-coder-32b-instruct", - name: "Qwen2.5-Coder-32B-Instruct", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.96, output: 0.96 }, - limit: { context: 32768, output: 32768 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.47 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek-R1-Distill-Llama-70B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-30", - last_updated: "2025-01-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.74, output: 0.74 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen2.5-vl-72b-instruct": { - id: "qwen2.5-vl-72b-instruct", - name: "Qwen2.5-VL-72B-Instruct", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-31", - last_updated: "2025-03-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.01, output: 1.01 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder-30B-A3B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.26 }, - limit: { context: 262144, output: 262144 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama-3.1-8B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-11", - last_updated: "2025-06-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.11 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-nemo-instruct-2407": { - id: "mistral-nemo-instruct-2407", - name: "Mistral-Nemo-Instruct-2407", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 65536, output: 65536 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.18 }, - limit: { context: 131072, output: 131072 }, - }, - "mixtral-8x7b-instruct-v0.1": { - id: "mixtral-8x7b-instruct-v0.1", - name: "Mixtral-8x7B-Instruct-v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32768, output: 32768 }, - }, - }, - }, - stackit: { - id: "stackit", - env: ["STACKIT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1", - name: "STACKIT", - doc: "https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models", - models: { - "intfloat/e5-mistral-7b-instruct": { - id: "intfloat/e5-mistral-7b-instruct", - name: "E5 Mistral 7B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 4096, output: 4096 }, - }, - "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": { - id: "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.27 }, - limit: { context: 128000, output: 8192 }, - }, - "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": { - id: "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", - name: "Mistral Nemo", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 128000, output: 8192 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-05-17", - last_updated: "2025-05-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 37000, output: 8192 }, - }, - "Qwen/Qwen3-VL-Embedding-8B": { - id: "Qwen/Qwen3-VL-Embedding-8B", - name: "Qwen3-VL Embedding 8B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.09 }, - limit: { context: 32000, output: 4096 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", - name: "Qwen3-VL 235B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.64, output: 1.91 }, - limit: { context: 218000, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 131000, output: 8192 }, - }, - "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": { - id: "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - "cloudferro-sherlock": { - id: "cloudferro-sherlock", - env: ["CLOUDFERRO_SHERLOCK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api-sherlock.cloudferro.com/openai/v1/", - name: "CloudFerro Sherlock", - doc: "https://docs.sherlock.cloudferro.com/", - models: { - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196000, output: 196000 }, - }, - "speakleash/Bielik-11B-v2.6-Instruct": { - id: "speakleash/Bielik-11B-v2.6-Instruct", - name: "Bielik 11B v2.6 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 0.67 }, - limit: { context: 32000, output: 32000 }, - }, - "speakleash/Bielik-11B-v3.0-Instruct": { - id: "speakleash/Bielik-11B-v3.0-Instruct", - name: "Bielik 11B v3.0 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 0.67 }, - limit: { context: 32000, output: 32000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10-09", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.92, output: 2.92 }, - limit: { context: 70000, output: 70000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.92, output: 2.92 }, - limit: { context: 131000, output: 131000 }, - }, - }, - }, - requesty: { - id: "requesty", - env: ["REQUESTY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://router.requesty.ai/v1", - name: "Requesty", - doc: "https://requesty.ai/solution/llm-routing/models", - models: { - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.55 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 2.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "GPT-5 Image", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 5, output: 10, cache_read: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "audio", "image", "video"], output: ["text", "audio", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4 Mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 16000, output: 4000 }, - }, - "anthropic/claude-3-7-sonnet": { - id: "anthropic/claude-3-7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-1": { - id: "anthropic/claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-01", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 62000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "xai/grok-4-fast": { - id: "xai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.2 }, - limit: { context: 2000000, output: 64000 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-09", - last_updated: "2025-09-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 3 }, - limit: { context: 256000, output: 64000 }, - }, - }, - }, - "qihang-ai": { - id: "qihang-ai", - env: ["QIHANG_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.qhaigc.net/v1", - name: "QiHang", - doc: "https://www.qhaigc.net/docs", - models: { - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.71, output: 3.57 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.71, context_over_200k: { input: 0.09, output: 0.71 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.43, context_over_200k: { input: 0.07, output: 0.43 } }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.43, output: 2.14 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.71 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.57, output: 3.43 }, - limit: { context: 1000000, output: 65000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.29 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "siliconflow-cn": { - id: "siliconflow-cn", - env: ["SILICONFLOW_CN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.siliconflow.cn/v1", - name: "SiliconFlow (China)", - doc: "https://cloud.siliconflow.com/models", - models: { - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "zai-org/GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-07", - last_updated: "2025-12-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5V": { - id: "zai-org/GLM-4.5V", - name: "zai-org/GLM-4.5V", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 66000, output: 66000 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "zai-org/GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.9 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "zai-org/GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 131000, output: 131000 }, - }, - "Pro/zai-org/GLM-4.7": { - id: "Pro/zai-org/GLM-4.7", - name: "Pro/zai-org/GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/zai-org/GLM-5": { - id: "Pro/zai-org/GLM-5", - name: "Pro/zai-org/GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/MiniMaxAI/MiniMax-M2.5": { - id: "Pro/MiniMaxAI/MiniMax-M2.5", - name: "Pro/MiniMaxAI/MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.22 }, - limit: { context: 192000, output: 131000 }, - }, - "Pro/MiniMaxAI/MiniMax-M2.1": { - id: "Pro/MiniMaxAI/MiniMax-M2.1", - name: "Pro/MiniMaxAI/MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "Pro/deepseek-ai/DeepSeek-R1": { - id: "Pro/deepseek-ai/DeepSeek-R1", - name: "Pro/deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3.2": { - id: "Pro/deepseek-ai/DeepSeek-V3.2", - name: "Pro/deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3": { - id: "Pro/deepseek-ai/DeepSeek-V3", - name: "Pro/deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", - name: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/moonshotai/Kimi-K2-Instruct-0905": { - id: "Pro/moonshotai/Kimi-K2-Instruct-0905", - name: "Pro/moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/moonshotai/Kimi-K2.5": { - id: "Pro/moonshotai/Kimi-K2.5", - name: "Pro/moonshotai/Kimi-K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 3 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/moonshotai/Kimi-K2-Thinking": { - id: "Pro/moonshotai/Kimi-K2-Thinking", - name: "Pro/moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "PaddlePaddle/PaddleOCR-VL-1.5": { - id: "PaddlePaddle/PaddleOCR-VL-1.5", - name: "PaddlePaddle/PaddleOCR-VL-1.5", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 16384 }, - }, - "PaddlePaddle/PaddleOCR-VL": { - id: "PaddlePaddle/PaddleOCR-VL", - name: "PaddlePaddle/PaddleOCR-VL", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 16384 }, - }, - "Kwaipilot/KAT-Dev": { - id: "Kwaipilot/KAT-Dev", - name: "Kwaipilot/KAT-Dev", - family: "kat-coder", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-27", - last_updated: "2026-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-ai/DeepSeek-OCR": { - id: "deepseek-ai/DeepSeek-OCR", - name: "deepseek-ai/DeepSeek-OCR", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2025-10-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/deepseek-vl2": { - id: "deepseek-ai/deepseek-vl2", - name: "deepseek-ai/deepseek-vl2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 4000, output: 4000 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131000, output: 131000 }, - }, - "ByteDance-Seed/Seed-OSS-36B-Instruct": { - id: "ByteDance-Seed/Seed-OSS-36B-Instruct", - name: "ByteDance-Seed/Seed-OSS-36B-Instruct", - family: "seed", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "tencent/Hunyuan-MT-7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 33000, output: 33000 }, - }, - "tencent/Hunyuan-A13B-Instruct": { - id: "tencent/Hunyuan-A13B-Instruct", - name: "tencent/Hunyuan-A13B-Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "ascend-tribe/pangu-pro-moe": { - id: "ascend-tribe/pangu-pro-moe", - name: "ascend-tribe/pangu-pro-moe", - family: "pangu", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2026-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 128000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "inclusionAI/Ling-mini-2.0": { - id: "inclusionAI/Ling-mini-2.0", - name: "inclusionAI/Ling-mini-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ring-flash-2.0": { - id: "inclusionAI/Ring-flash-2.0", - name: "inclusionAI/Ring-flash-2.0", - family: "ring", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-flash-2.0": { - id: "inclusionAI/Ling-flash-2.0", - name: "inclusionAI/Ling-flash-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "baidu/ERNIE-4.5-300B-A47B": { - id: "baidu/ERNIE-4.5-300B-A47B", - name: "baidu/ERNIE-4.5-300B-A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131000, output: 131000 }, - }, - "stepfun-ai/Step-3.5-Flash": { - id: "stepfun-ai/Step-3.5-Flash", - name: "stepfun-ai/Step-3.5-Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3.5-9B": { - id: "Qwen/Qwen3.5-9B", - name: "Qwen/Qwen3.5-9B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.74 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-122B-A10B": { - id: "Qwen/Qwen3.5-122B-A10B", - name: "Qwen/Qwen3.5-122B-A10B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 2.32 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen/Qwen3.5-397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.74 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-35B-A3B": { - id: "Qwen/Qwen3.5-35B-A3B", - name: "Qwen/Qwen3.5-35B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.23, output: 1.86 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-4B": { - id: "Qwen/Qwen3.5-4B", - name: "Qwen/Qwen3.5-4B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-27B": { - id: "Qwen/Qwen3.5-27B", - name: "Qwen/Qwen3.5-27B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.09 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen/Qwen2.5-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen/Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen/Qwen3-235B-A22B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Thinking": { - id: "Qwen/Qwen3-VL-32B-Thinking", - name: "Qwen/Qwen3-VL-32B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Thinking": { - id: "Qwen/Qwen3-VL-8B-Thinking", - name: "Qwen/Qwen3-VL-8B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen/Qwen3-VL-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Captioner": { - id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen/Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Instruct": { - id: "Qwen/Qwen3-VL-8B-Instruct", - name: "Qwen/Qwen3-VL-8B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.68 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-72B-Instruct-128K": { - id: "Qwen/Qwen2.5-72B-Instruct-128K", - name: "Qwen/Qwen2.5-72B-Instruct-128K", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen/Qwen2.5-72B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen/Qwen2.5-VL-72B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-14B-Instruct": { - id: "Qwen/Qwen2.5-14B-Instruct", - name: "Qwen/Qwen2.5-14B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-7B-Instruct": { - id: "Qwen/Qwen2.5-7B-Instruct", - name: "Qwen/Qwen2.5-7B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Thinking": { - id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-8B": { - id: "Qwen/Qwen3-8B", - name: "Qwen/Qwen3-8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen/Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-32B-Instruct": { - id: "Qwen/Qwen2.5-32B-Instruct", - name: "Qwen/Qwen2.5-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen/Qwen3-30B-A3B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 131000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen/Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Thinking": { - id: "Qwen/Qwen3-VL-235B-A22B-Thinking", - name: "Qwen/Qwen3-VL-235B-A22B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen/Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "Qwen/QwQ-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.58 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-32B-Instruct": { - id: "Qwen/Qwen3-VL-32B-Instruct", - name: "Qwen/Qwen3-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen/Qwen3-30B-A3B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Thinking": { - id: "Qwen/Qwen3-VL-30B-A3B-Thinking", - name: "Qwen/Qwen3-VL-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "THUDM/GLM-Z1-9B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "THUDM/GLM-Z1-32B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "THUDM/GLM-4-9B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "THUDM/GLM-4-32B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 33000, output: 33000 }, - }, - }, - }, - helicone: { - id: "helicone", - env: ["HELICONE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://ai-gateway.helicone.ai/v1", - name: "Helicone", - doc: "https://helicone.ai/models", - models: { - "claude-4.5-haiku": { - id: "claude-4.5-haiku", - name: "Anthropic: Claude 4.5 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, - limit: { context: 200000, output: 8192 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "OpenAI: GPT-5 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "OpenAI: GPT-5 Pro", - family: "gpt-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 128000, output: 32768 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, - limit: { context: 128000, output: 64000 }, - }, - "claude-3.7-sonnet": { - id: "claude-3.7-sonnet", - name: "Anthropic: Claude 3.7 Sonnet", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-02", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "OpenAI GPT-4o-mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "xAI: Grok 4 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "OpenAI GPT-5 Chat Latest", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-09", - release_date: "2024-09-30", - last_updated: "2024-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-4-scout": { - id: "llama-4-scout", - name: "Meta Llama 4 Scout 17B 16E", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 131072, output: 8192 }, - }, - "codex-mini-latest": { - id: "codex-mini-latest", - name: "OpenAI Codex Mini Latest", - family: "gpt-codex-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "qwen2.5-coder-7b-fast": { - id: "qwen2.5-coder-7b-fast", - name: "Qwen2.5 Coder 7B fast", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-15", - last_updated: "2024-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 32000, output: 8192 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Anthropic: Claude Opus 4.1", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Perplexity Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 4096 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, - limit: { context: 128000, output: 8192 }, - }, - "llama-3.1-8b-instruct-turbo": { - id: "llama-3.1-8b-instruct-turbo", - name: "Meta Llama 3.1 8B Instruct Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 128000, output: 128000 }, - }, - "grok-3": { - id: "grok-3", - name: "xAI Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 131072 }, - }, - "ernie-4.5-21b-a3b-thinking": { - id: "ernie-4.5-21b-a3b-thinking", - name: "Baidu Ernie 4.5 21B A3B Thinking", - family: "ernie", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 128000, output: 8000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "xAI Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-25", - last_updated: "2024-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "llama-prompt-guard-2-22m": { - id: "llama-prompt-guard-2-22m", - name: "Meta Llama Prompt Guard 2 22M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 512, output: 2 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Meta Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.39 }, - limit: { context: 128000, output: 16400 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "xAI Grok 4.1 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "claude-4.5-sonnet": { - id: "claude-4.5-sonnet", - name: "Anthropic: Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4.1-mini-2025-04-14": { - id: "gpt-4.1-mini-2025-04-14", - name: "OpenAI GPT-4.1 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, - limit: { context: 1047576, output: 32768 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Google Gemini 2.5 Flash", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.3 }, - limit: { context: 1048576, output: 65535 }, - }, - "llama-guard-4": { - id: "llama-guard-4", - name: "Meta Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.21 }, - limit: { context: 131072, output: 1024 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "xAI Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 30000 }, - }, - o1: { - id: "o1", - name: "OpenAI: o1", - family: "o", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "OpenAI GPT-5.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2-0905": { - id: "kimi-k2-0905", - name: "Kimi K2 (09/05)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2, cache_read: 0.39999999999999997 }, - limit: { context: 262144, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "xAI Grok 4", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-09", - last_updated: "2024-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 256000 }, - }, - "llama-3.1-8b-instant": { - id: "llama-3.1-8b-instant", - name: "Meta Llama 3.1 8B Instant", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.08 }, - limit: { context: 131072, output: 32678 }, - }, - sonar: { - id: "sonar", - name: "Perplexity Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127000, output: 4096 }, - }, - o3: { - id: "o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "qwen3-coder": { - id: "qwen3-coder", - name: "Qwen3 Coder 480B A35B Instruct Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 0.95 }, - limit: { context: 262144, output: 16384 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "Zai GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.44999999999999996, output: 1.5 }, - limit: { context: 204800, output: 131072 }, - }, - "sonar-reasoning": { - id: "sonar-reasoning", - name: "Perplexity Sonar Reasoning", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 127000, output: 4096 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.59 }, - limit: { context: 131072, output: 40960 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Sonar Deep Research", - family: "sonar-deep-research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 4096 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "OpenAI GPT-4.1 Nano", - family: "gpt-nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09999999999999999, output: 0.39999999999999997, cache_read: 0.024999999999999998 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Anthropic: Claude Sonnet 4.5 (20250929)", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Google Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.09999999999999999, - output: 0.39999999999999997, - cache_read: 0.024999999999999998, - cache_write: 0.09999999999999999, - }, - limit: { context: 1048576, output: 65535 }, - }, - "claude-3.5-haiku": { - id: "claude-3.5-haiku", - name: "Anthropic: Claude 3.5 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7999999999999999, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "OpenAI GPT-OSS 120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "OpenAI: GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.13 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3.1-terminus": { - id: "deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1, cache_read: 0.21600000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "OpenAI GPT-4.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-3.5-sonnet-v2": { - id: "claude-3.5-sonnet-v2", - name: "Anthropic: Claude 3.5 Sonnet v2", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "mistral-small": { - id: "mistral-small", - name: "Mistral Small", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-02", - release_date: "2024-02-26", - last_updated: "2024-02-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 75, output: 200 }, - limit: { context: 128000, output: 128000 }, - }, - "o3-pro": { - id: "o3-pro", - name: "OpenAI o3 Pro", - family: "o-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 40 }, - limit: { context: 128000, output: 16400 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09999999999999999, output: 0.3 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen3-vl-235b-a22b-instruct": { - id: "qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen3-235b-a22b-thinking": { - id: "qwen3-235b-a22b-thinking", - name: "Qwen3 235B A22B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.9000000000000004 }, - limit: { context: 262144, output: 81920 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "xAI Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 131072 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Anthropic: Claude 3 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-03-07", - last_updated: "2024-03-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Anthropic: Claude 4.5 Haiku (20251001)", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, - limit: { context: 200000, output: 8192 }, - }, - "kimi-k2-0711": { - id: "kimi-k2-0711", - name: "Kimi K2 (07/11)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5700000000000001, output: 2.3 }, - limit: { context: 131072, output: 16384 }, - }, - "gpt-5": { - id: "gpt-5", - name: "OpenAI GPT-5", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "OpenAI o4 Mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "OpenAI GPT-4.1 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, - limit: { context: 1047576, output: 32768 }, - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Meta Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.7899999999999999 }, - limit: { context: 131072, output: 32678 }, - }, - "llama-4-maverick": { - id: "llama-4-maverick", - name: "Meta Llama 4 Maverick 17B 128E", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 8192 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 2 }, - limit: { context: 256000, output: 262144 }, - }, - "gemma2-9b-it": { - id: "gemma2-9b-it", - name: "Google Gemma 2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-25", - last_updated: "2024-06-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek-tng-r1t2-chimera": { - id: "deepseek-tng-r1t2-chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-02", - last_updated: "2025-07-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 130000, output: 163840 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Perplexity Sonar Pro", - family: "sonar-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-opus-4": { - id: "claude-opus-4", - name: "Anthropic: Claude Opus 4", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "OpenAI: GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral-Large", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-4.5-opus": { - id: "claude-4.5-opus", - name: "Anthropic: Claude Opus 4.5", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "chatgpt-4o-latest": { - id: "chatgpt-4o-latest", - name: "OpenAI ChatGPT-4o", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-14", - last_updated: "2024-08-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 20, cache_read: 2.5 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Meta Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.049999999999999996 }, - limit: { context: 16384, output: 16384 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Anthropic: Claude Sonnet 4", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Google Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.19999999999999998 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 16384 }, - }, - "llama-prompt-guard-2-86m": { - id: "llama-prompt-guard-2-86m", - name: "Meta Llama Prompt Guard 2 86M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 512, output: 2 }, - }, - "o3-mini": { - id: "o3-mini", - name: "OpenAI o3 Mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2023-10", - release_date: "2023-10-01", - last_updated: "2023-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "gemma-3-12b-it": { - id: "gemma-3-12b-it", - name: "Google Gemma 3 12B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.29 }, - limit: { context: 41000, output: 41000 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "xAI Grok 4 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "OpenAI GPT-5 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "OpenAI GPT-OSS 20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.19999999999999998 }, - limit: { context: 131072, output: 131072 }, - }, - "hermes-2-pro-llama-3-8b": { - id: "hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "OpenAI GPT-5.1 Chat", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Anthropic: Claude Opus 4.1 (20250805)", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Google Gemini 2.5 Pro", - family: "gemini-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.3125, cache_write: 1.25 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "OpenAI GPT-5 Nano", - family: "gpt-nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.39999999999999997, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "o1-mini": { - id: "o1-mini", - name: "OpenAI: o1-mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "OpenAI GPT-4o", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - vercel: { - id: "vercel", - env: ["AI_GATEWAY_API_KEY"], - npm: "@ai-sdk/gateway", - name: "Vercel AI Gateway", - doc: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - models: { - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "INTELLECT 3", - family: "intellect", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 131072 }, - }, - "zai/glm-5": { - id: "zai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131072 }, - }, - "zai/glm-4.7-flashx": { - id: "zai/glm-4.7-flashx", - name: "GLM 4.7 FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "zai/glm-4.5-air": { - id: "zai/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 128000, output: 96000 }, - }, - "zai/glm-4.5": { - id: "zai/glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 131072 }, - }, - "zai/glm-4.7-flash": { - id: "zai/glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.39999999999999997 }, - limit: { context: 200000, output: 131000 }, - }, - "zai/glm-4.6": { - id: "zai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.8 }, - limit: { context: 200000, output: 96000 }, - }, - "zai/glm-4.7": { - id: "zai/glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, - limit: { context: 202752, output: 120000 }, - }, - "zai/glm-4.6v-flash": { - id: "zai/glm-4.6v-flash", - name: "GLM-4.6V-Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 24000 }, - }, - "zai/glm-5-turbo": { - id: "zai/glm-5-turbo", - name: "GLM 5 Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24 }, - limit: { context: 202800, output: 131100 }, - }, - "zai/glm-4.5v": { - id: "zai/glm-4.5v", - name: "GLM 4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 66000, output: 66000 }, - }, - "zai/glm-4.6v": { - id: "zai/glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, - limit: { context: 128000, output: 24000 }, - }, - "nvidia/nemotron-nano-12b-v2-vl": { - id: "nvidia/nemotron-nano-12b-v2-vl", - name: "Nvidia Nemotron Nano 12B V2 VL", - family: "nemotron", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "Nvidia Nemotron Nano 9B V2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "Nemotron 3 Nano 30B A3B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 262144, output: 262144 }, - }, - "arcee-ai/trinity-large-preview": { - id: "arcee-ai/trinity-large-preview", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 131000, output: 131000 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Trinity Mini", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.29 }, - limit: { context: 262144, output: 32000 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo V2 Pro", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3, cache_read: 0.19999999999999998 }, - limit: { context: 1000000, output: 128000 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.024999999999999998 }, - limit: { context: 128000, output: 128000 }, - }, - "inception/mercury-coder-small": { - id: "inception/mercury-coder-small", - name: "Mercury Coder Small Beta", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-02-26", - last_updated: "2025-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 32000, output: 16384 }, - }, - "voyage/voyage-3-large": { - id: "voyage/voyage-3-large", - name: "voyage-3-large", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-code-3": { - id: "voyage/voyage-code-3", - name: "voyage-code-3", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-law-2": { - id: "voyage/voyage-law-2", - name: "voyage-law-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-finance-2": { - id: "voyage/voyage-finance-2", - name: "voyage-finance-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-code-2": { - id: "voyage/voyage-code-2", - name: "voyage-code-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4-lite": { - id: "voyage/voyage-4-lite", - name: "voyage-4-lite", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-3.5-lite": { - id: "voyage/voyage-3.5-lite", - name: "voyage-3.5-lite", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4-large": { - id: "voyage/voyage-4-large", - name: "voyage-4-large", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-3.5": { - id: "voyage/voyage-3.5", - name: "voyage-3.5", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4": { - id: "voyage/voyage-4", - name: "voyage-4", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "amazon/nova-2-lite": { - id: "amazon/nova-2-lite", - name: "Nova 2 Lite", - family: "nova", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 1000000 }, - }, - "amazon/titan-embed-text-v2": { - id: "amazon/titan-embed-text-v2", - name: "Titan Text Embeddings V2", - family: "titan-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-04", - last_updated: "2024-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "amazon/nova-lite": { - id: "amazon/nova-lite", - name: "Nova Lite", - family: "nova-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, - limit: { context: 300000, output: 8192 }, - }, - "amazon/nova-pro": { - id: "amazon/nova-pro", - name: "Nova Pro", - family: "nova-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, - limit: { context: 300000, output: 8192 }, - }, - "amazon/nova-micro": { - id: "amazon/nova-micro", - name: "Nova Micro", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, - limit: { context: 128000, output: 8192 }, - }, - "alibaba/qwen-3-235b": { - id: "alibaba/qwen-3-235b", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-max-preview": { - id: "alibaba/qwen3-max-preview", - name: "Qwen3 Max Preview", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3-next-80b-a3b-thinking": { - id: "alibaba/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 65536 }, - }, - "alibaba/qwen3-max-thinking": { - id: "alibaba/qwen3-max-thinking", - name: "Qwen 3 Max Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 256000, output: 65536 }, - }, - "alibaba/qwen3-vl-instruct": { - id: "alibaba/qwen3-vl-instruct", - name: "Qwen3 VL Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 131072, output: 129024 }, - }, - "alibaba/qwen3-embedding-8b": { - id: "alibaba/qwen3-embedding-8b", - name: "Qwen3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen3-coder-next": { - id: "alibaba/qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 256000, output: 256000 }, - }, - "alibaba/qwen3-coder": { - id: "alibaba/qwen3-coder", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.38, output: 1.53 }, - limit: { context: 262144, output: 66536 }, - }, - "alibaba/qwen-3-30b": { - id: "alibaba/qwen-3-30b", - name: "Qwen3-30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.29 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-embedding-0.6b": { - id: "alibaba/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen-3-14b": { - id: "alibaba/qwen-3-14b", - name: "Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-235b-a22b-thinking": { - id: "alibaba/qwen3-235b-a22b-thinking", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.9 }, - limit: { context: 262114, output: 262114 }, - }, - "alibaba/qwen3-vl-thinking": { - id: "alibaba/qwen3-vl-thinking", - name: "Qwen3 VL Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 8.4 }, - limit: { context: 131072, output: 129024 }, - }, - "alibaba/qwen3.5-flash": { - id: "alibaba/qwen3.5-flash", - name: "Qwen 3.5 Flash", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.001, cache_write: 0.125 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen3-next-80b-a3b-instruct": { - id: "alibaba/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 1.1 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3.5-plus": { - id: "alibaba/qwen3.5-plus", - name: "Qwen 3.5 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, cache_read: 0.04, cache_write: 0.5 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen3-max": { - id: "alibaba/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen-3-32b": { - id: "alibaba/qwen-3-32b", - name: "Qwen 3.32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-coder-plus": { - id: "alibaba/qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1000000, output: 1000000 }, - }, - "alibaba/qwen3-embedding-4b": { - id: "alibaba/qwen3-embedding-4b", - name: "Qwen3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen3-coder-30b-a3b": { - id: "alibaba/qwen3-coder-30b-a3b", - name: "Qwen 3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "bfl/flux-pro-1.0-fill": { - id: "bfl/flux-pro-1.0-fill", - name: "FLUX.1 Fill [pro]", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-pro-1.1": { - id: "bfl/flux-pro-1.1", - name: "FLUX1.1 [pro]", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-kontext-max": { - id: "bfl/flux-kontext-max", - name: "FLUX.1 Kontext Max", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-kontext-pro": { - id: "bfl/flux-kontext-pro", - name: "FLUX.1 Kontext Pro", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-pro-1.1-ultra": { - id: "bfl/flux-pro-1.1-ultra", - name: "FLUX1.1 [pro] Ultra", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "mistral/codestral-embed": { - id: "mistral/codestral-embed", - name: "Codestral Embed", - family: "codestral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "mistral/devstral-small-2": { - id: "mistral/devstral-small-2", - name: "Devstral Small 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "mistral/devstral-2": { - id: "mistral/devstral-2", - name: "Devstral 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-large-3": { - id: "mistral/mistral-large-3", - name: "Mistral Large 3", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-embed": { - id: "mistral/mistral-embed", - name: "Mistral Embed", - family: "mistral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "mistral/ministral-14b": { - id: "mistral/ministral-14b", - name: "Ministral 14B", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-nemo": { - id: "mistral/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.17 }, - limit: { context: 60288, output: 16000 }, - }, - "mistral/mistral-medium": { - id: "mistral/mistral-medium", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 64000 }, - }, - "mistral/devstral-small": { - id: "mistral/devstral-small", - name: "Devstral Small 1.1", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 64000 }, - }, - "mistral/codestral": { - id: "mistral/codestral", - name: "Codestral (latest)", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-05-29", - last_updated: "2025-01-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 4096 }, - }, - "mistral/mixtral-8x22b-instruct": { - id: "mistral/mixtral-8x22b-instruct", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 64000, output: 64000 }, - }, - "mistral/mistral-small": { - id: "mistral/mistral-small", - name: "Mistral Small (latest)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2024-09-01", - last_updated: "2024-09-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral/ministral-8b": { - id: "mistral/ministral-8b", - name: "Ministral 8B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/pixtral-large": { - id: "mistral/pixtral-large", - name: "Pixtral Large (latest)", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/pixtral-12b": { - id: "mistral/pixtral-12b", - name: "Pixtral 12B", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/magistral-small": { - id: "mistral/magistral-small", - name: "Magistral Small", - family: "magistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/magistral-medium": { - id: "mistral/magistral-medium", - name: "Magistral Medium (latest)", - family: "magistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 5 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral/ministral-3b": { - id: "mistral/ministral-3b", - name: "Ministral 3B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 128000 }, - }, - "kwaipilot/kat-coder-pro-v1": { - id: "kwaipilot/kat-coder-pro-v1", - name: "KAT-Coder-Pro V1", - family: "kat-coder", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-24", - last_updated: "2025-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "deepseek/deepseek-v3": { - id: "deepseek/deepseek-v3", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.77, output: 0.77 }, - limit: { context: 163840, output: 16384 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1 }, - limit: { context: 163840, output: 128000 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.4, cache_read: 0.22 }, - limit: { context: 163842, output: 8000 }, - }, - "deepseek/deepseek-v3.2-thinking": { - id: "deepseek/deepseek-v3.2-thinking", - name: "DeepSeek V3.2 Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 32768 }, - }, - "moonshotai/kimi-k2-turbo": { - id: "moonshotai/kimi-k2-turbo", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.4, output: 10 }, - limit: { context: 256000, output: 16384 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.47, output: 2, cache_read: 0.14 }, - limit: { context: 216144, output: 216144 }, - }, - "moonshotai/kimi-k2-thinking-turbo": { - id: "moonshotai/kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262114, output: 262114 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "google/gemini-embedding-001": { - id: "google/gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/imagen-4.0-fast-generate-001": { - id: "google/imagen-4.0-fast-generate-001", - name: "Imagen 4 Fast", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/text-embedding-005": { - id: "google/text-embedding-005", - name: "Text Embedding 005", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08", - last_updated: "2024-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-2.5-flash-preview-09-2025": { - id: "google/gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash": { - id: "google/gemini-3-flash", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/imagen-4.0-ultra-generate-001": { - id: "google/imagen-4.0-ultra-generate-001", - name: "Imagen 4 Ultra", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-24", - last_updated: "2025-05-24", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-3.1-flash-image-preview": { - id: "google/gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image Preview (Nano Banana 2)", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 131072, output: 32768 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1000000, output: 65000 }, - }, - "google/text-multilingual-embedding-002": { - id: "google/text-multilingual-embedding-002", - name: "Text Multilingual Embedding 002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-embedding-2": { - id: "google/gemini-embedding-2", - name: "Gemini Embedding 2", - family: "gemini-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/gemini-2.5-flash-image": { - id: "google/gemini-2.5-flash-image", - name: "Nano Banana (Gemini 2.5 Flash Image)", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3-pro-image": { - id: "google/gemini-3-pro-image", - name: "Nano Banana Pro (Gemini 3 Pro Image)", - family: "gemini-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 2, output: 120 }, - limit: { context: 65536, output: 32768 }, - }, - "google/gemini-2.5-flash-image-preview": { - id: "google/gemini-2.5-flash-image-preview", - name: "Nano Banana Preview (Gemini 2.5 Flash Image Preview)", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/imagen-4.0-generate-001": { - id: "google/imagen-4.0-generate-001", - name: "Imagen 4", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1000000, output: 64000 }, - }, - "google/gemini-2.0-flash": { - id: "google/gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-lite": { - id: "google/gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "meituan/longcat-flash-thinking": { - id: "meituan/longcat-flash-thinking", - name: "LongCat Flash Thinking", - family: "longcat", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 128000, output: 8192 }, - }, - "meituan/longcat-flash-thinking-2601": { - id: "meituan/longcat-flash-thinking-2601", - name: "LongCat Flash Thinking 2601", - family: "longcat", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32768, output: 32768 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "LongCat Flash Chat", - family: "longcat", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-30", - last_updated: "2025-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "bytedance/seed-1.6": { - id: "bytedance/seed-1.6", - name: "Seed 1.6", - family: "seed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 32000 }, - }, - "bytedance/seed-1.8": { - id: "bytedance/seed-1.8", - name: "Seed 1.8", - family: "seed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 64000 }, - }, - "meta/llama-3.1-8b": { - id: "meta/llama-3.1-8b", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.05 }, - limit: { context: 131072, output: 16384 }, - }, - "meta/llama-3.2-11b": { - id: "meta/llama-3.2-11b", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.16, output: 0.16 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.1-70b": { - id: "meta/llama-3.1-70b", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta/llama-3.2-90b": { - id: "meta/llama-3.2-90b", - name: "Llama 3.2 90B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-1b": { - id: "meta/llama-3.2-1b", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-3b": { - id: "meta/llama-3.2-3b", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-4-maverick": { - id: "meta/llama-4-maverick", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.3-70b": { - id: "meta/llama-3.3-70b", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-scout": { - id: "meta/llama-4-scout", - name: "Llama-4-Scout-17B-16E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "vercel/v0-1.5-md": { - id: "vercel/v0-1.5-md", - name: "v0-1.5-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "vercel/v0-1.0-md": { - id: "vercel/v0-1.0-md", - name: "v0-1.0-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT 5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 128000, output: 272000 }, - }, - "openai/text-embedding-ada-002": { - id: "openai/text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "GPT 4o Mini Search Preview", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2023-09", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/text-embedding-3-small": { - id: "openai/text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/text-embedding-3-large": { - id: "openai/text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-09", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, input: 12289, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3 Pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.1-thinking": { - id: "openai/gpt-5.1-thinking", - name: "GPT 5.1 Thinking", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT 5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/codex-mini": { - id: "openai/codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.38 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT 5.4 Pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "GPT-5.3 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "gpt-oss-safeguard-20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3, cache_read: 0.04 }, - limit: { context: 131072, input: 65536, output: 65536 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT 5.2 ", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT 5.4 Nano", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 131072, input: 98304, output: 32768 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-09", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 8192, input: 4096, output: 4096 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT 5.4 Mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1-instant": { - id: "openai/gpt-5.1-instant", - name: "GPT-5.1 Instant", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "morph/morph-v3-large": { - id: "morph/morph-v3-large", - name: "Morph v3 Large", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 32000, output: 32000 }, - }, - "morph/morph-v3-fast": { - id: "morph/morph-v3-fast", - name: "Morph v3 Fast", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 16000, output: 16000 }, - }, - "cohere/embed-v4.0": { - id: "cohere/embed-v4.0", - name: "Embed v4.0", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "cohere/command-a": { - id: "cohere/command-a", - name: "Command A", - family: "command", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "minimax/minimax-m2.1-lightning": { - id: "minimax/minimax-m2.1-lightning", - name: "MiniMax M2.1 Lightning", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.4, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "MiniMax M2.5 High Speed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 0, output: 0 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "Minimax M2.7", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131000 }, - }, - "minimax/minimax-m2.7-highspeed": { - id: "minimax/minimax-m2.7-highspeed", - name: "MiniMax M2.7 High Speed", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131100 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.15, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 262114, output: 262114 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131000 }, - }, - "recraft/recraft-v2": { - id: "recraft/recraft-v2", - name: "Recraft V2", - family: "recraft", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "recraft/recraft-v3": { - id: "recraft/recraft-v3", - name: "Recraft V3", - family: "recraft", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "perplexity/sonar-reasoning-pro": { - id: "perplexity/sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Sonar", - family: "sonar", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-02", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar-reasoning": { - id: "perplexity/sonar-reasoning", - name: "Sonar Reasoning", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar-pro": { - id: "perplexity/sonar-pro", - name: "Sonar Pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-sonnet-20240620": { - id: "anthropic/claude-3.5-sonnet-20240620", - name: "Claude 3.5 Sonnet (2024-06-20)", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-opus": { - id: "anthropic/claude-3-opus", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "xai/grok-4-fast-reasoning": { - id: "xai/grok-4-fast-reasoning", - name: "Grok 4 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 256000 }, - }, - "xai/grok-4.20-non-reasoning-beta": { - id: "xai/grok-4.20-non-reasoning-beta", - name: "Grok 4.20 Beta Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-non-reasoning": { - id: "xai/grok-4.20-non-reasoning", - name: "Grok 4.20 Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-imagine-image": { - id: "xai/grok-imagine-image", - name: "Grok Imagine Image", - family: "grok", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4.20-reasoning": { - id: "xai/grok-4.20-reasoning", - name: "Grok 4.20 Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.1-fast-reasoning": { - id: "xai/grok-4.1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4.1-fast-non-reasoning": { - id: "xai/grok-4.1-fast-non-reasoning", - name: "Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4.20-reasoning-beta": { - id: "xai/grok-4.20-reasoning-beta", - name: "Grok 4.20 Beta Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-multi-agent": { - id: "xai/grok-4.20-multi-agent", - name: "Grok 4.20 Multi-Agent", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-imagine-image-pro": { - id: "xai/grok-imagine-image-pro", - name: "Grok Imagine Image Pro", - family: "grok", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4.20-multi-agent-beta": { - id: "xai/grok-4.20-multi-agent-beta", - name: "Grok 4.20 Multi Agent Beta", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-3-fast": { - id: "xai/grok-3-fast", - name: "Grok 3 Fast", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4-fast-non-reasoning": { - id: "xai/grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "xai/grok-3-mini-fast": { - id: "xai/grok-3-mini-fast", - name: "Grok 3 Mini Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-code-fast-1": { - id: "xai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-2-vision": { - id: "xai/grok-2-vision", - name: "Grok 2 Vision", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - }, - }, - openai: { - id: "openai", - env: ["OPENAI_API_KEY"], - npm: "@ai-sdk/openai", - name: "OpenAI", - doc: "https://platform.openai.com/docs/models", - models: { - "gpt-4o-2024-11-20": { - id: "gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 272000, output: 272000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2022-12", - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "codex-mini-latest": { - id: "codex-mini-latest", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4o-2024-05-13": { - id: "gpt-4o-2024-05-13", - name: "GPT-4o (2024-05-13)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o3-deep-research": { - id: "o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, output: 100000 }, - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o4-mini-deep-research": { - id: "o4-mini-deep-research", - name: "o4-mini-deep-research", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.3-codex-spark": { - id: "gpt-5.3-codex-spark", - name: "GPT-5.3 Codex Spark", - family: "gpt-codex-spark", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 100000, output: 32000 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-3.5-turbo": { - id: "gpt-3.5-turbo", - name: "GPT-3.5-turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2021-09-01", - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, - limit: { context: 16385, output: 4096 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "o3-pro": { - id: "o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "o1-pro": { - id: "o1-pro", - name: "o1-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2025-03-19", - last_updated: "2025-03-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4o-2024-08-06": { - id: "gpt-4o-2024-08-06", - name: "GPT-4o (2024-08-06)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-08-06", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - moark: { - id: "moark", - env: ["MOARK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://moark.com/v1", - name: "Moark", - doc: "https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90", - models: { - "GLM-4.7": { - id: "GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.5, output: 14 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.1, output: 8.4 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - morph: { - id: "morph", - env: ["MORPH_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.morphllm.com/v1", - name: "Morph", - doc: "https://docs.morphllm.com/api-reference/introduction", - models: { - auto: { - id: "auto", - name: "Auto", - family: "auto", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 1.55 }, - limit: { context: 32000, output: 32000 }, - }, - "morph-v3-fast": { - id: "morph-v3-fast", - name: "Morph v3 Fast", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 16000, output: 16000 }, - }, - "morph-v3-large": { - id: "morph-v3-large", - name: "Morph v3 Large", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 32000, output: 32000 }, - }, - }, - }, - cohere: { - id: "cohere", - env: ["COHERE_API_KEY"], - npm: "@ai-sdk/cohere", - name: "Cohere", - doc: "https://docs.cohere.com/docs/models", - models: { - "c4ai-aya-expanse-32b": { - id: "c4ai-aya-expanse-32b", - name: "Aya Expanse 32B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-24", - last_updated: "2024-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 128000, output: 4000 }, - }, - "command-a-03-2025": { - id: "command-a-03-2025", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "command-r7b-arabic-02-2025": { - id: "command-r7b-arabic-02-2025", - name: "Command R7B Arabic", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-translate-08-2025": { - id: "command-a-translate-08-2025", - name: "Command A Translate", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 8000 }, - }, - "command-r-08-2024": { - id: "command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "command-r-plus-08-2024": { - id: "command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-reasoning-08-2025": { - id: "command-a-reasoning-08-2025", - name: "Command A Reasoning", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 32000 }, - }, - "c4ai-aya-expanse-8b": { - id: "c4ai-aya-expanse-8b", - name: "Aya Expanse 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-24", - last_updated: "2024-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 8000, output: 4000 }, - }, - "c4ai-aya-vision-8b": { - id: "c4ai-aya-vision-8b", - name: "Aya Vision 8B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 16000, output: 4000 }, - }, - "c4ai-aya-vision-32b": { - id: "c4ai-aya-vision-32b", - name: "Aya Vision 32B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 16000, output: 4000 }, - }, - "command-r7b-12-2024": { - id: "command-r7b-12-2024", - name: "Command R7B", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-02-27", - last_updated: "2024-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-vision-07-2025": { - id: "command-a-vision-07-2025", - name: "Command A Vision", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 8000 }, - }, - }, - }, - v0: { - id: "v0", - env: ["V0_API_KEY"], - npm: "@ai-sdk/vercel", - name: "v0", - doc: "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", - models: { - "v0-1.0-md": { - id: "v0-1.0-md", - name: "v0-1.0-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "v0-1.5-md": { - id: "v0-1.5-md", - name: "v0-1.5-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "v0-1.5-lg": { - id: "v0-1.5-lg", - name: "v0-1.5-lg", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 512000, output: 32000 }, - }, - }, - }, - minimax: { - id: "minimax", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimax.io/anthropic/v1", - name: "MiniMax (minimax.io)", - doc: "https://platform.minimax.io/docs/guides/quickstart", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - vultr: { - id: "vultr", - env: ["VULTR_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.vultrinference.com/v1", - name: "Vultr", - doc: "https://api.vultrinference.com/", - models: { - "Llama-3_1-Nemotron-Ultra-253B-v1": { - id: "Llama-3_1-Nemotron-Ultra-253B-v1", - name: "Llama 3.1 Nemotron Ultra 253B v1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.8 }, - limit: { context: 32000, output: 4096 }, - }, - "DeepSeek-R1-Distill-Qwen-32B": { - id: "DeepSeek-R1-Distill-Qwen-32B", - name: "DeepSeek R1 Distill Qwen 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 130000, output: 4096 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196000, output: 4096 }, - }, - "Kimi-K2.5": { - id: "Kimi-K2.5", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.75 }, - limit: { context: 261000, output: 32768 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-23", - last_updated: "2025-06-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 130000, output: 8192 }, - }, - "DeepSeek-V3.2": { - id: "DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.65 }, - limit: { context: 163000, output: 4096 }, - }, - "GLM-5-FP8": { - id: "GLM-5-FP8", - name: "GLM 5 FP8", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 3.1 }, - limit: { context: 202000, output: 131072 }, - }, - "NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { - id: "NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", - name: "NVIDIA Nemotron 3 Super 120B A12B NVFP4", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 260000, output: 8192 }, - }, - "DeepSeek-R1-Distill-Llama-70B": { - id: "DeepSeek-R1-Distill-Llama-70B", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 130000, output: 4096 }, - }, - }, - }, - baseten: { - id: "baseten", - env: ["BASETEN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://inference.baseten.co/v1", - name: "Baseten", - doc: "https://docs.baseten.co/development/model-apis/overview", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 200000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15 }, - limit: { context: 202752, output: 131072 }, - }, - "nvidia/Nemotron-120B-A12B": { - id: "nvidia/Nemotron-120B-A12B", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.75 }, - limit: { context: 262144, output: 32678 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204000, output: 204000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 164000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-01", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 163800, output: 131100 }, - status: "deprecated", - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.77, output: 0.77 }, - limit: { context: 164000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-09-05", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-30", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 8192 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 128000, output: 128000 }, - }, - }, - }, - jiekou: { - id: "jiekou", - env: ["JIEKOU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.jiekou.ai/openai", - name: "Jiekou.AI", - doc: "https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev", - models: { - "gpt-5-codex": { - id: "gpt-5-codex", - name: "gpt-5-codex", - family: "gpt-codex", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "gpt-5-pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 108 }, - limit: { context: 400000, output: 272000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "claude-opus-4-5-20251101", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.5, output: 22.5 }, - limit: { context: 200000, output: 65536 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "grok-4-fast-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "gemini-2.5-flash-lite-preview-09-2025", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "gpt-5-chat-latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "gemini-2.5-pro-preview-06-05", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 1048576, output: 200000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "gpt-5.1-codex-max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "grok-4-0709", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 256000, output: 8192 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "gpt-5.2-codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "claude-opus-4-6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "grok-code-fast-1", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 1.35 }, - limit: { context: 256000, output: 256000 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "gemini-2.5-flash-preview-05-20", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.135, output: 3.15 }, - limit: { context: 1048576, output: 200000 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "grok-4-1-fast-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 2.25 }, - limit: { context: 1048576, output: 65535 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "grok-4-1-fast-non-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "gpt-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - o3: { - id: "o3", - name: "o3", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40 }, - limit: { context: 131072, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "claude-opus-4-20250514", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 67.5 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "claude-sonnet-4-5-20250929", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "gemini-2.5-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "gpt-5.1-codex-mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.225, output: 1.8 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "gpt-5.2", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.575, output: 12.6 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "claude-haiku-4-5-20251001", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 4.5 }, - limit: { context: 20000, output: 64000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "gemini-2.5-flash-lite-preview-06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "video", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "gpt-5.1-codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "gpt-5.2-pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 18.9, output: 151.2 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "gemini-3-pro-preview", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 10.8 }, - limit: { context: 1048576, output: 65536 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 131072, output: 131072 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "grok-4-fast-non-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.225, output: 1.8 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "claude-sonnet-4-20250514", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "claude-opus-4-1-20250805", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 67.5 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "gpt-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045, output: 0.36 }, - limit: { context: 400000, output: 128000 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5v": { - id: "zai-org/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 65536, output: 16384 }, - }, - "minimaxai/minimax-m1-80k": { - id: "minimaxai/minimax-m1-80k", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.14 }, - limit: { context: 163840, output: 163840 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "ERNIE 4.5 VL 424B A47B", - family: "ernie", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-300b-a47b-paddle": { - id: "baidu/ernie-4.5-300b-a47b-paddle", - name: "ERNIE 4.5 300B A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "qwen/qwen3-235b-a22b-instruct-2507": { - id: "qwen/qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.8 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen/qwen3-32b-fp8": { - id: "qwen/qwen3-32b-fp8", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.2 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-fp8": { - id: "qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "qwen/qwen3-coder-next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22b Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-fp8": { - id: "qwen/qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "xiaomimimo/mimo-v2-flash": { - id: "xiaomimimo/mimo-v2-flash", - name: "XiaomiMiMo/MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - }, - }, - meganova: { - id: "meganova", - env: ["MEGANOVA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.meganova.ai/v1", - name: "Meganova", - doc: "https://docs.meganova.ai", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.9 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.56 }, - limit: { context: 202752, output: 131072 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 32000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.2 }, - limit: { context: 196608, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3.2-Exp": { - id: "deepseek-ai/DeepSeek-V3.2-Exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-10-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.15 }, - limit: { context: 163840, output: 64000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.38 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.88 }, - limit: { context: 163840, output: 163840 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.6 }, - limit: { context: 262144, output: 262144 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 16384 }, - }, - "Qwen/Qwen3.5-Plus": { - id: "Qwen/Qwen3.5-Plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 16384, output: 16384 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 131072, output: 65536 }, - }, - "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - }, - }, - perplexity: { - id: "perplexity", - env: ["PERPLEXITY_API_KEY"], - npm: "@ai-sdk/perplexity", - name: "Perplexity", - doc: "https://docs.perplexity.ai", - models: { - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 4096 }, - }, - sonar: { - id: "sonar", - name: "Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Sonar Deep Research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-02-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, reasoning: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Sonar Pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - }, - }, - huggingface: { - id: "huggingface", - env: ["HF_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://router.huggingface.co/v1", - name: "Hugging Face", - doc: "https://huggingface.co/docs/inference-providers", - models: { - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131072 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 4096 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 5 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.4 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi-K2-Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-01", - last_updated: "2026-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 32768 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Coder-Next": { - id: "Qwen/Qwen3-Coder-Next", - name: "Qwen3-Coder-Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3-Embedding-4B": { - id: "Qwen/Qwen3-Embedding-4B", - name: "Qwen 3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 2048 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen 3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 4096 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2 }, - limit: { context: 262144, output: 131072 }, - }, - }, - }, - anthropic: { - id: "anthropic", - env: ["ANTHROPIC_API_KEY"], - npm: "@ai-sdk/anthropic", - name: "Anthropic", - doc: "https://docs.anthropic.com/en/docs/about-claude/models", - models: { - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-haiku-latest": { - id: "claude-3-5-haiku-latest", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-sonnet-20240229": { - id: "claude-3-sonnet-20240229", - name: "Claude Sonnet 3", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "claude-sonnet-4-0": { - id: "claude-sonnet-4-0", - name: "Claude Sonnet 4 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-0": { - id: "claude-opus-4-0", - name: "Claude Opus 4 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-5-haiku-20241022": { - id: "claude-3-5-haiku-20241022", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-5-sonnet-20240620": { - id: "claude-3-5-sonnet-20240620", - name: "Claude Sonnet 3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-7-sonnet-latest": { - id: "claude-3-7-sonnet-latest", - name: "Claude Sonnet 3.7 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-opus-20240229": { - id: "claude-3-opus-20240229", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - "tencent-coding-plan": { - id: "tencent-coding-plan", - env: ["TENCENT_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.lkeap.cloud.tencent.com/coding/v3", - name: "Tencent Coding Plan (China)", - doc: "https://cloud.tencent.com/document/product/1772/128947", - models: { - "hunyuan-turbos": { - id: "hunyuan-turbos", - name: "Hunyuan-TurboS", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "tc-code-latest": { - id: "tc-code-latest", - name: "Auto", - family: "auto", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "hunyuan-t1": { - id: "hunyuan-t1", - name: "Hunyuan-T1", - family: "hunyuan", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-2.0-instruct": { - id: "hunyuan-2.0-instruct", - name: "Tencent HY 2.0 Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-2.0-thinking": { - id: "hunyuan-2.0-thinking", - name: "Tencent HY 2.0 Think", - family: "hunyuan", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 32768 }, - }, - }, - }, - "google-vertex-anthropic": { - id: "google-vertex-anthropic", - env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], - npm: "@ai-sdk/google-vertex/anthropic", - name: "Vertex (Anthropic)", - doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", - models: { - "claude-sonnet-4-5@20250929": { - id: "claude-sonnet-4-5@20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1@20250805": { - id: "claude-opus-4-1@20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-7-sonnet@20250219": { - id: "claude-3-7-sonnet@20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4@20250514": { - id: "claude-opus-4@20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-opus-4-5@20251101": { - id: "claude-opus-4-5@20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-haiku@20241022": { - id: "claude-3-5-haiku@20241022", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-sonnet-4@20250514": { - id: "claude-sonnet-4@20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-sonnet@20241022": { - id: "claude-3-5-sonnet@20241022", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-6@default": { - id: "claude-opus-4-6@default", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "claude-haiku-4-5@20251001": { - id: "claude-haiku-4-5@20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-6@default": { - id: "claude-sonnet-4-6@default", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - friendli: { - id: "friendli", - env: ["FRIENDLI_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.friendli.ai/serverless/v1", - name: "Friendli", - doc: "https://friendli.ai/docs/guides/serverless_endpoints/introduction", - models: { - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 202752 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 202752 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-13", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 8000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - kilo: { - id: "kilo", - env: ["KILO_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.kilo.ai/api/gateway", - name: "Kilo Gateway", - doc: "https://kilo.ai", - models: { - "giga-potato-thinking": { - id: "giga-potato-thinking", - name: "Giga Potato Thinking (free)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "corethink:free": { - id: "corethink:free", - name: "CoreThink (free)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 78000, output: 8192 }, - }, - "morph-warp-grep-v2": { - id: "morph-warp-grep-v2", - name: "Morph: WarpGrep V2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "giga-potato": { - id: "giga-potato", - name: "Giga Potato (free)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "Prime Intellect: INTELLECT-3", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-26", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 131072 }, - }, - "allenai/olmo-2-0325-32b-instruct": { - id: "allenai/olmo-2-0325-32b-instruct", - name: "AllenAI: Olmo 2 32B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 128000, output: 32768 }, - }, - "allenai/olmo-3-7b-instruct": { - id: "allenai/olmo-3-7b-instruct", - name: "AllenAI: Olmo 3 7B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3-32b-think": { - id: "allenai/olmo-3-32b-think", - name: "AllenAI: Olmo 3 32B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/molmo-2-8b": { - id: "allenai/molmo-2-8b", - name: "AllenAI: Molmo2 8B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-09", - last_updated: "2026-01-31", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 36864, output: 36864 }, - }, - "allenai/olmo-3.1-32b-instruct": { - id: "allenai/olmo-3.1-32b-instruct", - name: "AllenAI: Olmo 3.1 32B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-07", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 65536, output: 32768 }, - }, - "allenai/olmo-3-7b-think": { - id: "allenai/olmo-3-7b-think", - name: "AllenAI: Olmo 3 7B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3.1-32b-think": { - id: "allenai/olmo-3.1-32b-think", - name: "AllenAI: Olmo 3.1 32B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, output: 65536 }, - }, - "nex-agi/deepseek-v3.1-nex-n1": { - id: "nex-agi/deepseek-v3.1-nex-n1", - name: "Nex AGI: DeepSeek V3.1 Nex N1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 163840 }, - }, - "nvidia/llama-3.1-nemotron-70b-instruct": { - id: "nvidia/llama-3.1-nemotron-70b-instruct", - name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-12", - last_updated: "2024-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 131072, output: 16384 }, - }, - "nvidia/nemotron-3-super-120b-a12b:free": { - id: "nvidia/nemotron-3-super-120b-a12b:free", - name: "NVIDIA: Nemotron 3 Super (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1.5": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", - name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-nano-12b-v2-vl": { - id: "nvidia/nemotron-nano-12b-v2-vl", - name: "NVIDIA: Nemotron Nano 12B 2 VL", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-10-28", - last_updated: "2026-01-31", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "NVIDIA: Nemotron Nano 9B V2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "NVIDIA: Nemotron 3 Nano 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 262144, output: 52429 }, - }, - "ibm-granite/granite-4.0-h-micro": { - id: "ibm-granite/granite-4.0-h-micro", - name: "IBM: Granite 4.0 Micro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 131000, output: 32768 }, - }, - "arcee-ai/coder-large": { - id: "arcee-ai/coder-large", - name: "Arcee AI: Coder Large", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "arcee-ai/virtuoso-large": { - id: "arcee-ai/virtuoso-large", - name: "Arcee AI: Virtuoso Large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 1.2 }, - limit: { context: 131072, output: 64000 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Arcee AI: Trinity Mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/maestro-reasoning": { - id: "arcee-ai/maestro-reasoning", - name: "Arcee AI: Maestro Reasoning", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 3.3 }, - limit: { context: 131072, output: 32000 }, - }, - "arcee-ai/trinity-large-preview:free": { - id: "arcee-ai/trinity-large-preview:free", - name: "Arcee AI: Trinity Large Preview (free)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131000, output: 26200 }, - }, - "arcee-ai/spotlight": { - id: "arcee-ai/spotlight", - name: "Arcee AI: Spotlight", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131072, output: 65537 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "Xiaomi: MiMo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29, cache_read: 0.045 }, - limit: { context: 262144, output: 65536 }, - }, - "microsoft/phi-4": { - id: "microsoft/phi-4", - name: "Microsoft: Phi 4", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.14 }, - limit: { context: 16384, output: 16384 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "WizardLM-2 8x22B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-24", - last_updated: "2024-04-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 0.62 }, - limit: { context: 65535, output: 8000 }, - }, - "alfredpros/codellama-7b-instruct-solidity": { - id: "alfredpros/codellama-7b-instruct-solidity", - name: "AlfredPros: CodeLLaMa 7B Instruct Solidity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 4096, output: 4096 }, - }, - "liquid/lfm-2.2-6b": { - id: "liquid/lfm-2.2-6b", - name: "LiquidAI: LFM2-2.6B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.02 }, - limit: { context: 32768, output: 32768 }, - }, - "liquid/lfm-2-24b-a2b": { - id: "liquid/lfm-2-24b-a2b", - name: "LiquidAI: LFM2-24B-A2B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.12 }, - limit: { context: 32768, output: 32768 }, - }, - "liquid/lfm2-8b-a1b": { - id: "liquid/lfm2-8b-a1b", - name: "LiquidAI: LFM2-8B-A1B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.02 }, - limit: { context: 32768, output: 32768 }, - }, - "upstage/solar-pro-3": { - id: "upstage/solar-pro-3", - name: "Upstage: Solar Pro 3", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 32768 }, - }, - "switchpoint/router": { - id: "switchpoint/router", - name: "Switchpoint Router", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-07-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 3.4 }, - limit: { context: 131072, output: 32768 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Inception: Mercury 2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - "inception/mercury": { - id: "inception/mercury", - name: "Inception: Mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, output: 32000 }, - }, - "inception/mercury-coder": { - id: "inception/mercury-coder", - name: "Inception: Mercury Coder", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, output: 32000 }, - }, - "kilo-auto/balanced": { - id: "kilo-auto/balanced", - name: "Kilo Auto Balanced", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo-auto/free": { - id: "kilo-auto/free", - name: "Kilo Auto Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo-auto/small": { - id: "kilo-auto/small", - name: "Kilo Auto Small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "kilo-auto/frontier": { - id: "kilo-auto/frontier", - name: "Kilo Auto Frontier", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "amazon/nova-micro-v1": { - id: "amazon/nova-micro-v1", - name: "Amazon: Nova Micro 1.0", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14 }, - limit: { context: 128000, output: 5120 }, - }, - "amazon/nova-lite-v1": { - id: "amazon/nova-lite-v1", - name: "Amazon: Nova Lite 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 300000, output: 5120 }, - }, - "amazon/nova-premier-v1": { - id: "amazon/nova-premier-v1", - name: "Amazon: Nova Premier 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 12.5 }, - limit: { context: 1000000, output: 32000 }, - }, - "amazon/nova-2-lite-v1": { - id: "amazon/nova-2-lite-v1", - name: "Amazon: Nova 2 Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65535 }, - }, - "amazon/nova-pro-v1": { - id: "amazon/nova-pro-v1", - name: "Amazon: Nova Pro 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 300000, output: 5120 }, - }, - "anthracite-org/magnum-v4-72b": { - id: "anthracite-org/magnum-v4-72b", - name: "Magnum v4 72B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 5 }, - limit: { context: 16384, output: 2048 }, - }, - "essentialai/rnj-1-instruct": { - id: "essentialai/rnj-1-instruct", - name: "EssentialAI: Rnj 1 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 6554 }, - }, - "gryphe/mythomax-l2-13b": { - id: "gryphe/mythomax-l2-13b", - name: "MythoMax 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 4096, output: 4096 }, - }, - "alibaba/tongyi-deepresearch-30b-a3b": { - id: "alibaba/tongyi-deepresearch-30b-a3b", - name: "Tongyi DeepResearch 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 131072, output: 131072 }, - }, - "aion-labs/aion-1.0-mini": { - id: "aion-labs/aion-1.0-mini", - name: "AionLabs: Aion-1.0-Mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 1.4 }, - limit: { context: 131072, output: 32768 }, - }, - "aion-labs/aion-2.0": { - id: "aion-labs/aion-2.0", - name: "AionLabs: Aion-2.0", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.6 }, - limit: { context: 131072, output: 32768 }, - }, - "aion-labs/aion-rp-llama-3.1-8b": { - id: "aion-labs/aion-rp-llama-3.1-8b", - name: "AionLabs: Aion-RP 1.0 (8B)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.6 }, - limit: { context: 32768, output: 32768 }, - }, - "aion-labs/aion-1.0": { - id: "aion-labs/aion-1.0", - name: "AionLabs: Aion-1.0", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 4, output: 8 }, - limit: { context: 131072, output: 32768 }, - }, - "stepfun/step-3.5-flash:free": { - id: "stepfun/step-3.5-flash:free", - name: "StepFun: Step 3.5 Flash (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "StepFun: Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 256000 }, - }, - "relace/relace-search": { - id: "relace/relace-search", - name: "Relace: Relace Search", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3 }, - limit: { context: 256000, output: 128000 }, - }, - "relace/relace-apply-3": { - id: "relace/relace-apply-3", - name: "Relace: Relace Apply 3", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-09-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 1.25 }, - limit: { context: 256000, output: 128000 }, - }, - "thedrummer/rocinante-12b": { - id: "thedrummer/rocinante-12b", - name: "TheDrummer: Rocinante 12B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.43 }, - limit: { context: 32768, output: 32768 }, - }, - "thedrummer/cydonia-24b-v4.1": { - id: "thedrummer/cydonia-24b-v4.1", - name: "TheDrummer: Cydonia 24B V4.1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "thedrummer/unslopnemo-12b": { - id: "thedrummer/unslopnemo-12b", - name: "TheDrummer: UnslopNemo 12B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "thedrummer/skyfall-36b-v2": { - id: "thedrummer/skyfall-36b-v2", - name: "TheDrummer: Skyfall 36B V2", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "mancer/weaver": { - id: "mancer/weaver", - name: "Mancer: Weaver (alpha)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-08-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 1 }, - limit: { context: 8000, output: 2000 }, - }, - "tencent/hunyuan-a13b-instruct": { - id: "tencent/hunyuan-a13b-instruct", - name: "Tencent: Hunyuan A13B Instruct", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131072, output: 131072 }, - }, - "kwaipilot/kat-coder-pro": { - id: "kwaipilot/kat-coder-pro", - name: "Kwaipilot: KAT-Coder-Pro V1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.207, output: 0.828, cache_read: 0.0414 }, - limit: { context: 256000, output: 128000 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek: R1 0528", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.15, cache_read: 0.2 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek: R1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek: DeepSeek V3.2 Speciale", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.2, cache_read: 0.135 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-chat-v3.1": { - id: "deepseek/deepseek-chat-v3.1", - name: "DeepSeek: DeepSeek V3.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 32768, output: 7168 }, - }, - "deepseek/deepseek-chat-v3-0324": { - id: "deepseek/deepseek-chat-v3-0324", - name: "DeepSeek: DeepSeek V3 0324", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.77, cache_read: 0.095 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek: R1 Distill Llama 70B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.8, cache_read: 0.015 }, - limit: { context: 131072, output: 16384 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek: DeepSeek V3.1 Terminus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.21, output: 0.79, cache_read: 0.13 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek: DeepSeek V3.2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.38, cache_read: 0.125 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-chat": { - id: "deepseek/deepseek-chat", - name: "DeepSeek: DeepSeek V3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.32, output: 0.89, cache_read: 0.15 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1-distill-qwen-32b": { - id: "deepseek/deepseek-r1-distill-qwen-32b", - name: "DeepSeek: R1 Distill Qwen 32B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.29 }, - limit: { context: 32768, output: 32768 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek: DeepSeek V3.2 Exp", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "alpindale/goliath-120b": { - id: "alpindale/goliath-120b", - name: "Goliath 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-11-10", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.75, output: 7.5 }, - limit: { context: 6144, output: 1024 }, - }, - "openrouter/hunter-alpha": { - id: "openrouter/hunter-alpha", - name: "Hunter Alpha", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1048576, output: 32000 }, - }, - "openrouter/auto": { - id: "openrouter/auto", - name: "Auto Router", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000000, output: 32768 }, - }, - "openrouter/free": { - id: "openrouter/free", - name: "Free Models Router", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 32768 }, - }, - "openrouter/healer-alpha": { - id: "openrouter/healer-alpha", - name: "Healer Alpha", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32000 }, - }, - "openrouter/bodybuilder": { - id: "openrouter/bodybuilder", - name: "Body Builder (beta)", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - status: "beta", - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "MoonshotAI: Kimi K2 0711", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131000, output: 26215 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "MoonshotAI: Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.15 }, - limit: { context: 131072, output: 26215 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "MoonshotAI: Kimi K2.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.2 }, - limit: { context: 262144, output: 65535 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "MoonshotAI: Kimi K2 Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.47, output: 2, cache_read: 0.2 }, - limit: { context: 131072, output: 65535 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "Baidu: ERNIE 4.5 VL 424B A47B ", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2026-01", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "Baidu: ERNIE 4.5 VL 28B A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.56 }, - limit: { context: 30000, output: 8000 }, - }, - "baidu/ernie-4.5-21b-a3b-thinking": { - id: "baidu/ernie-4.5-21b-a3b-thinking", - name: "Baidu: ERNIE 4.5 21B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131072, output: 65536 }, - }, - "baidu/ernie-4.5-300b-a47b": { - id: "baidu/ernie-4.5-300b-a47b", - name: "Baidu: ERNIE 4.5 300B A47B ", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "baidu/ernie-4.5-21b-a3b": { - id: "baidu/ernie-4.5-21b-a3b", - name: "Baidu: ERNIE 4.5 21B A3B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 120000, output: 8000 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview-customtools": { - id: "google/gemini-3.1-pro-preview-customtools", - name: "Google: Gemini 3.1 Pro Preview Custom Tools", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro-preview-05-06": { - id: "google/gemini-2.5-pro-preview-05-06", - name: "Google: Gemini 2.5 Pro Preview 05-06", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Google: Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, reasoning: 2.5, cache_read: 0.03, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-2.5-pro-preview": { - id: "google/gemini-2.5-pro-preview", - name: "Google: Gemini 2.5 Pro Preview 06-05", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-05", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-flash-image-preview": { - id: "google/gemini-3.1-flash-image-preview", - name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 65536, output: 65536 }, - }, - "google/gemini-2.0-flash-001": { - id: "google/gemini-2.0-flash-001", - name: "Google: Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-11", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025, cache_write: 0.083333 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Google: Gemini 3.1 Flash Lite Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, reasoning: 1.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Google: Gemini 3 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, reasoning: 3, cache_read: 0.05, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-27b-it": { - id: "google/gemma-2-27b-it", - name: "Google: Gemma 2 27B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-06-24", - last_updated: "2024-06-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 0.65 }, - limit: { context: 8192, output: 2048 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Google: Gemini 2.5 Flash Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Google: Gemini 3.1 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-lite-001": { - id: "google/gemini-2.0-flash-lite-001", - name: "Google: Gemini 2.0 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-11", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-flash-image": { - id: "google/gemini-2.5-flash-image", - name: "Google: Nano Banana (Gemini 2.5 Flash Image)", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-08", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3-pro-image-preview": { - id: "google/gemini-3-pro-image-preview", - name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 65536, output: 32768 }, - }, - "google/gemma-2-9b-it": { - id: "google/gemma-2-9b-it", - name: "Google: Gemma 2 9B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-06-28", - last_updated: "2024-06-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 8192, output: 1639 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Google: Gemma 3n 4B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 32768, output: 6554 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Google: Gemini 3 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-18", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, cache_read: 0.2, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Google: Gemma 3 12B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.13, cache_read: 0.015 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemma-3-4b-it": { - id: "google/gemma-3-4b-it", - name: "Google: Gemma 3 4B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.08 }, - limit: { context: 131072, output: 19200 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Google: Gemma 3 27B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11, cache_read: 0.02 }, - limit: { context: 128000, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Google: Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "Z.ai: GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 2.3 }, - limit: { context: 202752, output: 131072 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "Z.ai: GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.85, cache_read: 0.025 }, - limit: { context: 131072, output: 98304 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "Z.ai: GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.175 }, - limit: { context: 131072, output: 98304 }, - }, - "z-ai/glm-4.7-flash": { - id: "z-ai/glm-4.7-flash", - name: "Z.ai: GLM 4.7 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, - limit: { context: 202752, output: 40551 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "Z.ai: GLM 4.6", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.9, cache_read: 0.175 }, - limit: { context: 204800, output: 204800 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "Z.ai: GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 1.98, cache_read: 0.2 }, - limit: { context: 202752, output: 65535 }, - }, - "z-ai/glm-4-32b": { - id: "z-ai/glm-4-32b", - name: "Z.ai: GLM 4 32B ", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 32768 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "Z.ai: GLM 4.5V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 65536, output: 16384 }, - }, - "z-ai/glm-4.6v": { - id: "z-ai/glm-4.6v", - name: "Z.ai: GLM 4.6V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2026-01-10", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131072, output: 131072 }, - }, - "deepcogito/cogito-v2.1-671b": { - id: "deepcogito/cogito-v2.1-671b", - name: "Deep Cogito: Cogito v2.1 671B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, output: 32768 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "Meituan: LongCat Flash Chat", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8, cache_read: 0.2 }, - limit: { context: 131072, output: 131072 }, - }, - "bytedance/ui-tars-1.5-7b": { - id: "bytedance/ui-tars-1.5-7b", - name: "ByteDance: UI-TARS 7B ", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-07-23", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, output: 2048 }, - }, - "undi95/remm-slerp-l2-13b": { - id: "undi95/remm-slerp-l2-13b", - name: "ReMM SLERP 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-07-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 0.65 }, - limit: { context: 6144, output: 4096 }, - }, - "qwen/qwen3.5-27b": { - id: "qwen/qwen3.5-27b", - name: "Qwen: Qwen3.5-27B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.195, output: 1.56 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-vl-plus": { - id: "qwen/qwen-vl-plus", - name: "Qwen: Qwen VL Plus", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-25", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1365, output: 0.4095, cache_read: 0.042 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen-vl-max": { - id: "qwen/qwen-vl-max", - name: "Qwen: Qwen VL Max", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen: Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0975, output: 0.78 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-2.5-vl-7b-instruct": { - id: "qwen/qwen-2.5-vl-7b-instruct", - name: "Qwen: Qwen2.5-VL 7B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-28", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen3-max-thinking": { - id: "qwen/qwen3-max-thinking", - name: "Qwen: Qwen3 Max Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.78, output: 3.9 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen3-14b": { - id: "qwen/qwen3-14b", - name: "Qwen: Qwen3 14B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24, cache_read: 0.025 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3.5-35b-a3b": { - id: "qwen/qwen3.5-35b-a3b", - name: "Qwen: Qwen3.5-35B-A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1625, output: 1.3 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwq-32b": { - id: "qwen/qwq-32b", - name: "Qwen: QwQ 32B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-coder-flash": { - id: "qwen/qwen3-coder-flash", - name: "Qwen: Qwen3 Coder Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.195, output: 0.975, cache_read: 0.06 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-vl-8b-thinking": { - id: "qwen/qwen3-vl-8b-thinking", - name: "Qwen: Qwen3 VL 8B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.117, output: 1.365 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen2.5-vl-32b-instruct": { - id: "qwen/qwen2.5-vl-32b-instruct", - name: "Qwen: Qwen2.5 VL 32B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.025 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen/qwen-max": { - id: "qwen/qwen-max", - name: "Qwen: Qwen-Max ", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-03", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.04, output: 4.16, cache_read: 0.32 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen2.5-coder-7b-instruct": { - id: "qwen/qwen2.5-coder-7b-instruct", - name: "Qwen: Qwen2.5 Coder 7B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-17", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "Qwen: Qwen3 Coder Next", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.75, cache_read: 0.035 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-turbo": { - id: "qwen/qwen-turbo", - name: "Qwen: Qwen-Turbo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0325, output: 0.13, cache_read: 0.01 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen: Qwen3 Coder 480B A35B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1, cache_read: 0.022 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen3-8b": { - id: "qwen/qwen3-8b", - name: "Qwen: Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.4, cache_read: 0.05 }, - limit: { context: 40960, output: 8192 }, - }, - "qwen/qwen3-32b": { - id: "qwen/qwen3-32b", - name: "Qwen: Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-235b-a22b-2507": { - id: "qwen/qwen3-235b-a22b-2507", - name: "Qwen: Qwen3 235B A22B Instruct 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.071, output: 0.1 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen: Qwen3.5 397B A17B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39, output: 2.34 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-2.5-7b-instruct": { - id: "qwen/qwen-2.5-7b-instruct", - name: "Qwen: Qwen2.5 7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.1 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - id: "qwen/qwen-2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-11-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2, cache_read: 0.015 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3.5-plus-02-15": { - id: "qwen/qwen3.5-plus-02-15", - name: "Qwen: Qwen3.5 Plus 2026-02-15", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.26, output: 1.56 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - id: "qwen/qwen3-30b-a3b-instruct-2507", - name: "Qwen: Qwen3 30B A3B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.3, cache_read: 0.04 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen: Qwen2.5 VL 72B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-02-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-235b-a22b": { - id: "qwen/qwen3-235b-a22b", - name: "Qwen: Qwen3 235B A22B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.455, output: 1.82, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen: Qwen3 Coder 30B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-instruct": { - id: "qwen/qwen3-vl-235b-a22b-instruct", - name: "Qwen: Qwen3 VL 235B A22B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-23", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.88, cache_read: 0.11 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen-2.5-72b-instruct": { - id: "qwen/qwen-2.5-72b-instruct", - name: "Qwen2.5 72B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.39 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen/qwen3-vl-30b-a3b-thinking": { - id: "qwen/qwen3-vl-30b-a3b-thinking", - name: "Qwen: Qwen3 VL 30B A3B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 1.56 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-thinking": { - id: "qwen/qwen3-vl-235b-a22b-thinking", - name: "Qwen: Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.6 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - id: "qwen/qwen3-30b-a3b-thinking-2507", - name: "Qwen: Qwen3 30B A3B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen-plus": { - id: "qwen/qwen-plus", - name: "Qwen: Qwen-Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen: Qwen3 235B A22B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3.5-9b": { - id: "qwen/qwen3.5-9b", - name: "Qwen: Qwen3.5-9B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 256000, output: 32768 }, - }, - "qwen/qwen-plus-2025-07-28": { - id: "qwen/qwen-plus-2025-07-28", - name: "Qwen: Qwen Plus 0728", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.78 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3-vl-30b-a3b-instruct": { - id: "qwen/qwen3-vl-30b-a3b-instruct", - name: "Qwen: Qwen3 VL 30B A3B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen: Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 1.1 }, - limit: { context: 131072, output: 52429 }, - }, - "qwen/qwen3-vl-32b-instruct": { - id: "qwen/qwen3-vl-32b-instruct", - name: "Qwen: Qwen3 VL 32B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.104, output: 0.416 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-8b-instruct": { - id: "qwen/qwen3-vl-8b-instruct", - name: "Qwen: Qwen3 VL 8B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3.5-122b-a10b": { - id: "qwen/qwen3.5-122b-a10b", - name: "Qwen: Qwen3.5-122B-A10B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.08 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen: Qwen3 Max", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen3-30b-a3b": { - id: "qwen/qwen3-30b-a3b", - name: "Qwen: Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.28, cache_read: 0.03 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-coder-plus": { - id: "qwen/qwen3-coder-plus", - name: "Qwen: Qwen3 Coder Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 3.25, cache_read: 0.2 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen-plus-2025-07-28:thinking": { - id: "qwen/qwen-plus-2025-07-28:thinking", - name: "Qwen: Qwen Plus 0728 (thinking)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.78 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3.5-flash-02-23": { - id: "qwen/qwen3.5-flash-02-23", - name: "Qwen: Qwen3.5-Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "eleutherai/llemma_7b": { - id: "eleutherai/llemma_7b", - name: "EleutherAI: Llemma 7b", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 4096, output: 4096 }, - }, - "x-ai/grok-3": { - id: "x-ai/grok-3", - name: "xAI: Grok 3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "xAI: Grok Code Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "xAI: Grok 4 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "xAI: Grok 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 51200 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "xAI: Grok 4.1 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-3-mini-beta": { - id: "x-ai/grok-3-mini-beta", - name: "xAI: Grok 3 Mini Beta", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-3-mini": { - id: "x-ai/grok-3-mini", - name: "xAI: Grok 3 Mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-code-fast-1:optimized:free": { - id: "x-ai/grok-code-fast-1:optimized:free", - name: "xAI: Grok Code Fast 1 Optimized (experimental, free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4.20-multi-agent-beta": { - id: "x-ai/grok-4.20-multi-agent-beta", - name: "xAI: Grok 4.20 Multi-Agent Beta", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 2000000, output: 32768 }, - }, - "x-ai/grok-4.20-beta": { - id: "x-ai/grok-4.20-beta", - name: "xAI: Grok 4.20 Beta", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 2000000, output: 32768 }, - }, - "x-ai/grok-3-beta": { - id: "x-ai/grok-3-beta", - name: "xAI: Grok 3 Beta", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-4-scout": { - id: "meta-llama/llama-4-scout", - name: "Meta: Llama 4 Scout", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 327680, output: 16384 }, - }, - "meta-llama/llama-3.1-70b-instruct": { - id: "meta-llama/llama-3.1-70b-instruct", - name: "Meta: Llama 3.1 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Meta: Llama 3.3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.32 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-3-70b-instruct": { - id: "meta-llama/llama-3-70b-instruct", - name: "Meta: Llama 3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - id: "meta-llama/llama-3.2-11b-vision-instruct", - name: "Meta: Llama 3.2 11B Vision Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.049, output: 0.049 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-3.2-3b-instruct": { - id: "meta-llama/llama-3.2-3b-instruct", - name: "Meta: Llama 3.2 3B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 80000, output: 16384 }, - }, - "meta-llama/llama-guard-3-8b": { - id: "meta-llama/llama-guard-3-8b", - name: "Llama Guard 3 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-18", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-3.2-1b-instruct": { - id: "meta-llama/llama-3.2-1b-instruct", - name: "Meta: Llama 3.2 1B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-18", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 60000, output: 12000 }, - }, - "meta-llama/llama-3.1-405b-instruct": { - id: "meta-llama/llama-3.1-405b-instruct", - name: "Meta: Llama 3.1 405B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-16", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 4 }, - limit: { context: 131000, output: 26200 }, - }, - "meta-llama/llama-4-maverick": { - id: "meta-llama/llama-4-maverick", - name: "Meta: Llama 4 Maverick", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-12-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048576, output: 16384 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Meta: Llama 3.1 8B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 16384, output: 16384 }, - }, - "meta-llama/llama-guard-4-12b": { - id: "meta-llama/llama-guard-4-12b", - name: "Meta: Llama Guard 4 12B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 163840, output: 32768 }, - }, - "meta-llama/llama-3-8b-instruct": { - id: "meta-llama/llama-3-8b-instruct", - name: "Meta: Llama 3 8B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-25", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.04 }, - limit: { context: 8192, output: 16384 }, - }, - "meta-llama/llama-3.1-405b": { - id: "meta-llama/llama-3.1-405b", - name: "Meta: Llama 3.1 405B (base)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 4 }, - limit: { context: 32768, output: 32768 }, - }, - "tngtech/deepseek-r1t2-chimera": { - id: "tngtech/deepseek-r1t2-chimera", - name: "TNG: DeepSeek R1T2 Chimera", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-08", - last_updated: "2025-07-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85, cache_read: 0.125 }, - limit: { context: 163840, output: 163840 }, - }, - "mistralai/voxtral-small-24b-2507": { - id: "mistralai/voxtral-small-24b-2507", - name: "Mistral: Voxtral Small 24B 2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32000, output: 6400 }, - }, - "mistralai/ministral-3b-2512": { - id: "mistralai/ministral-3b-2512", - name: "Mistral: Ministral 3 3B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/mistral-saba": { - id: "mistralai/mistral-saba", - name: "Mistral: Saba", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral: Mistral Medium 3", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-small-24b-instruct-2501": { - id: "mistralai/mistral-small-24b-instruct-2501", - name: "Mistral: Mistral Small 3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 32768, output: 16384 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Mistral: Codestral 2508", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 51200 }, - }, - "mistralai/pixtral-large-2411": { - id: "mistralai/pixtral-large-2411", - name: "Mistral: Pixtral Large 2411", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/mistral-small-3.1-24b-instruct": { - id: "mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral: Mistral Small 3.1 24B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.56, cache_read: 0.015 }, - limit: { context: 128000, output: 131072 }, - }, - "mistralai/mistral-small-creative": { - id: "mistralai/mistral-small-creative", - name: "Mistral: Mistral Small Creative", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/mistral-large-2512": { - id: "mistralai/mistral-large-2512", - name: "Mistral: Mistral Large 3 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-01", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 52429 }, - }, - "mistralai/ministral-8b-2512": { - id: "mistralai/ministral-8b-2512", - name: "Mistral: Ministral 3 8B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, output: 32768 }, - }, - "mistralai/ministral-14b-2512": { - id: "mistralai/ministral-14b-2512", - name: "Mistral: Ministral 3 14B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, output: 52429 }, - }, - "mistralai/devstral-medium": { - id: "mistralai/devstral-medium", - name: "Mistral: Devstral Medium", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-large-2407": { - id: "mistralai/mistral-large-2407", - name: "Mistral Large 2407", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-19", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/mistral-nemo": { - id: "mistralai/mistral-nemo", - name: "Mistral: Mistral Nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-01", - last_updated: "2024-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 131072, output: 16384 }, - }, - "mistralai/devstral-2512": { - id: "mistralai/devstral-2512", - name: "Mistral: Devstral 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.025 }, - limit: { context: 262144, output: 65536 }, - }, - "mistralai/devstral-small": { - id: "mistralai/devstral-small", - name: "Mistral: Devstral Small 1.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-07", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-small-3.2-24b-instruct": { - id: "mistralai/mistral-small-3.2-24b-instruct", - name: "Mistral: Mistral Small 3.2 24B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.18, cache_read: 0.03 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mixtral-8x22b-instruct": { - id: "mistralai/mixtral-8x22b-instruct", - name: "Mistral: Mixtral 8x22B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 65536, output: 13108 }, - }, - "mistralai/mistral-large-2411": { - id: "mistralai/mistral-large-2411", - name: "Mistral Large 2411", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-11-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-7b-instruct-v0.1": { - id: "mistralai/mistral-7b-instruct-v0.1", - name: "Mistral: Mistral 7B Instruct v0.1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 2824, output: 565 }, - }, - "mistralai/mistral-large": { - id: "mistralai/mistral-large", - name: "Mistral Large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 25600 }, - }, - "mistralai/mixtral-8x7b-instruct": { - id: "mistralai/mixtral-8x7b-instruct", - name: "Mistral: Mixtral 8x7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-12-10", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.54, output: 0.54 }, - limit: { context: 32768, output: 16384 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral: Mistral Medium 3.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-4o-2024-11-20": { - id: "openai/gpt-4o-2024-11-20", - name: "OpenAI: GPT-4o (2024-11-20)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-20", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "OpenAI: GPT-5.3-Codex", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-02-25", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "OpenAI: GPT-5 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "OpenAI: GPT-5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "OpenAI: GPT-4o-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "OpenAI: GPT-4o-mini Search Preview", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o:extended": { - id: "openai/gpt-4o:extended", - name: "OpenAI: GPT-4o (extended)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 18 }, - limit: { context: 128000, output: 64000 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "OpenAI: GPT-5.1-Codex-Max", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-2024-05-13": { - id: "openai/gpt-4o-2024-05-13", - name: "OpenAI: GPT-4o (2024-05-13)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-4o-audio-preview": { - id: "openai/gpt-4o-audio-preview", - name: "OpenAI: GPT-4o Audio", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-15", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-mini-2024-07-18": { - id: "openai/gpt-4o-mini-2024-07-18", - name: "OpenAI: GPT-4o-mini (2024-07-18)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "OpenAI: GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-audio": { - id: "openai/gpt-audio", - name: "OpenAI: GPT Audio", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "OpenAI: o3 Deep Research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-3.5-turbo-16k": { - id: "openai/gpt-3.5-turbo-16k", - name: "OpenAI: GPT-3.5 Turbo 16k", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-08-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI: o1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-05", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "OpenAI: GPT-5.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-image-mini": { - id: "openai/gpt-5-image-mini", - name: "OpenAI: GPT-5 Image Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "OpenAI: GPT-5.2 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "OpenAI: o4 Mini Deep Research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "OpenAI: GPT-5 Chat", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "OpenAI: GPT-5.1 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI: o3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo-preview": { - id: "openai/gpt-4-turbo-preview", - name: "OpenAI: GPT-4 Turbo Preview", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "OpenAI: GPT-5 Image", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 10, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "OpenAI: GPT-4.1 Nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-3.5-turbo-0613": { - id: "openai/gpt-3.5-turbo-0613", - name: "OpenAI: GPT-3.5 Turbo (older v0613)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 4095, output: 4096 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "OpenAI: GPT-3.5 Turbo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI: gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.039, output: 0.19 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "OpenAI: GPT-5.1-Codex-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "OpenAI: GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "OpenAI: GPT-4.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "OpenAI: o3 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "OpenAI: GPT-4 Turbo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-09-13", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "OpenAI: GPT-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI: o4 Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "OpenAI: GPT-4.1 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4-0314": { - id: "openai/gpt-4-0314", - name: "OpenAI: GPT-4 (older v0314)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-05-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8191, output: 4096 }, - }, - "openai/gpt-audio-mini": { - id: "openai/gpt-audio-mini", - name: "OpenAI: GPT Audio Mini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "OpenAI: GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-03-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "OpenAI: GPT-5.4 Pro", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-03-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "OpenAI: GPT-5.3 Chat", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2026-03-04", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4-1106-preview": { - id: "openai/gpt-4-1106-preview", - name: "OpenAI: GPT-4 Turbo (older v1106)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-11-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "OpenAI: gpt-oss-safeguard-20b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "OpenAI: o1-pro", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - release_date: "2025-03-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "OpenAI: GPT-5.1-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "OpenAI: GPT-5.2 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI: o3 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-20", - last_updated: "2026-03-15", - modalities: { input: ["pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-2024-08-06": { - id: "openai/gpt-4o-2024-08-06", - name: "OpenAI: GPT-4o (2024-08-06)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "OpenAI: GPT-5 Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "OpenAI: gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-4": { - id: "openai/gpt-4", - name: "OpenAI: GPT-4", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-03-14", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8191, output: 4096 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "OpenAI: GPT-5 Nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "OpenAI: GPT-3.5 Turbo Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-03-01", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4095, output: 4096 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "OpenAI: o3 Mini High", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2026-03-15", - modalities: { input: ["pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o4-mini-high": { - id: "openai/o4-mini-high", - name: "OpenAI: o4 Mini High", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2025-04-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "OpenAI: GPT-4o", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-search-preview": { - id: "openai/gpt-4o-search-preview", - name: "OpenAI: GPT-4o Search Preview", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "morph/morph-v3-fast": { - id: "morph/morph-v3-fast", - name: "Morph: Morph V3 Fast", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 81920, output: 38000 }, - }, - "morph/morph-v3-large": { - id: "morph/morph-v3-large", - name: "Morph: Morph V3 Large", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 262144, output: 131072 }, - }, - "cohere/command-r-08-2024": { - id: "cohere/command-r-08-2024", - name: "Cohere: Command R (08-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-r-plus-08-2024": { - id: "cohere/command-r-plus-08-2024", - name: "Cohere: Command R+ (08-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-r7b-12-2024": { - id: "cohere/command-r7b-12-2024", - name: "Cohere: Command R7B (12-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-02-27", - last_updated: "2024-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-a": { - id: "cohere/command-a", - name: "Cohere: Command A", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8192 }, - }, - "minimax/minimax-m1": { - id: "minimax/minimax-m1", - name: "MiniMax: MiniMax M1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax: MiniMax-01", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000192, output: 1000192 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax: MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.95, cache_read: 0.03 }, - limit: { context: 196608, output: 39322 }, - }, - "minimax/minimax-m2-her": { - id: "minimax/minimax-m2-her", - name: "MiniMax: MiniMax M2-her", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 65536, output: 2048 }, - }, - "minimax/minimax-m2.5:free": { - id: "minimax/minimax-m2.5:free", - name: "MiniMax: MiniMax M2.5 (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax: MiniMax M2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.255, output: 1, cache_read: 0.03 }, - limit: { context: 196608, output: 196608 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax: MiniMax M2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.2, cache_read: 0.029 }, - limit: { context: 196608, output: 196608 }, - }, - "sao10k/l3.1-70b-hanami-x1": { - id: "sao10k/l3.1-70b-hanami-x1", - name: "Sao10K: Llama 3.1 70B Hanami x1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-01-08", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 16000, output: 16000 }, - }, - "sao10k/l3-lunaris-8b": { - id: "sao10k/l3-lunaris-8b", - name: "Sao10K: Llama 3 8B Lunaris", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-13", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.05 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3.1-euryale-70b": { - id: "sao10k/l3.1-euryale-70b", - name: "Sao10K: Llama 3.1 Euryale 70B v2.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 0.85 }, - limit: { context: 131072, output: 16384 }, - }, - "sao10k/l3-euryale-70b": { - id: "sao10k/l3-euryale-70b", - name: "Sao10k: Llama 3 Euryale 70B v2.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-06-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3.3-euryale-70b": { - id: "sao10k/l3.3-euryale-70b", - name: "Sao10K: Llama 3.3 Euryale 70B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-12-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 0.75 }, - limit: { context: 131072, output: 16384 }, - }, - "writer/palmyra-x5": { - id: "writer/palmyra-x5", - name: "Writer: Palmyra X5", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 6 }, - limit: { context: 1040000, output: 8192 }, - }, - "perplexity/sonar-reasoning-pro": { - id: "perplexity/sonar-reasoning-pro", - name: "Perplexity: Sonar Reasoning Pro", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 25600 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Perplexity: Sonar", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127072, output: 25415 }, - }, - "perplexity/sonar-deep-research": { - id: "perplexity/sonar-deep-research", - name: "Perplexity: Sonar Deep Research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 25600 }, - }, - "perplexity/sonar-pro": { - id: "perplexity/sonar-pro", - name: "Perplexity: Sonar Pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "perplexity/sonar-pro-search": { - id: "perplexity/sonar-pro-search", - name: "Perplexity: Sonar Pro Search", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-10-31", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "bytedance-seed/seed-2.0-mini": { - id: "bytedance-seed/seed-2.0-mini", - name: "ByteDance Seed: Seed-2.0-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, output: 131072 }, - }, - "bytedance-seed/seed-1.6": { - id: "bytedance-seed/seed-1.6", - name: "ByteDance Seed: Seed 1.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 32768 }, - }, - "bytedance-seed/seed-1.6-flash": { - id: "bytedance-seed/seed-1.6-flash", - name: "ByteDance Seed: Seed 1.6 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 262144, output: 32768 }, - }, - "bytedance-seed/seed-2.0-lite": { - id: "bytedance-seed/seed-2.0-lite", - name: "ByteDance Seed: Seed-2.0-Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 131072 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Anthropic: Claude 3.5 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Anthropic: Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Anthropic: Claude Opus 4.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Anthropic: Claude 3 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-03-07", - last_updated: "2024-03-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Anthropic: Claude Sonnet 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Anthropic: Claude Haiku 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Anthropic: Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3.7-sonnet:thinking": { - id: "anthropic/claude-3.7-sonnet:thinking", - name: "Anthropic: Claude 3.7 Sonnet (thinking)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Anthropic: Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Anthropic: Claude Opus 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Anthropic: Claude Sonnet 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Anthropic: Claude Sonnet 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Anthropic: Claude Opus 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "ai21/jamba-large-1.7": { - id: "ai21/jamba-large-1.7", - name: "AI21: Jamba Large 1.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 256000, output: 4096 }, - }, - "kilo/auto": { - id: "kilo/auto", - name: "Kilo: Auto", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "kilo/auto-free": { - id: "kilo/auto-free", - name: "Deprecated Kilo Auto Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo/auto-small": { - id: "kilo/auto-small", - name: "Deprecated Kilo Auto Small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "inflection/inflection-3-productivity": { - id: "inflection/inflection-3-productivity", - name: "Inflection: Inflection 3 Productivity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 1024 }, - }, - "inflection/inflection-3-pi": { - id: "inflection/inflection-3-pi", - name: "Inflection: Inflection 3 Pi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 1024 }, - }, - "nousresearch/hermes-4-405b": { - id: "nousresearch/hermes-4-405b", - name: "Nous: Hermes 4 405B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 26215 }, - }, - "nousresearch/hermes-3-llama-3.1-70b": { - id: "nousresearch/hermes-3-llama-3.1-70b", - name: "Nous: Hermes 3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 131072, output: 32768 }, - }, - "nousresearch/hermes-4-70b": { - id: "nousresearch/hermes-4-70b", - name: "Nous: Hermes 4 70B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-08-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, cache_read: 0.055 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-3-llama-3.1-405b": { - id: "nousresearch/hermes-3-llama-3.1-405b", - name: "Nous: Hermes 3 405B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 1 }, - limit: { context: 131072, output: 16384 }, - }, - "nousresearch/hermes-2-pro-llama-3-8b": { - id: "nousresearch/hermes-2-pro-llama-3-8b", - name: "NousResearch: Hermes 2 Pro - Llama-3 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-05-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, - }, - }, - }, - "nano-gpt": { - id: "nano-gpt", - env: ["NANO_GPT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://nano-gpt.com/api/v1", - name: "NanoGPT", - doc: "https://docs.nano-gpt.com", - models: { - "exa-research-pro": { - id: "exa-research-pro", - name: "Exa (Research Pro)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "gemini-2.0-pro-exp-02-05": { - id: "gemini-2.0-pro-exp-02-05", - name: "Gemini 2.0 Pro 0205", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.956 }, - limit: { context: 2097152, input: 2097152, output: 8192 }, - }, - "qwen-image": { - id: "qwen-image", - name: "Qwen Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "Llama-3.3-70B-Shakudo": { - id: "Llama-3.3-70B-Shakudo", - name: "Llama 3.3 70B Shakudo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "ernie-4.5-8k-preview": { - id: "ernie-4.5-8k-preview", - name: "Ernie 4.5 8k Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 2.6 }, - limit: { context: 8000, input: 8000, output: 16384 }, - }, - "claude-3-7-sonnet-thinking:128000": { - id: "claude-3-7-sonnet-thinking:128000", - name: "Claude 3.7 Sonnet Thinking (128K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "phi-4-multimodal-instruct": { - id: "phi-4-multimodal-instruct", - name: "Phi 4 Multimodal", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.11 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "z-image-turbo": { - id: "z-image-turbo", - name: "Z Image Turbo", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-27", - last_updated: "2025-11-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter": { - id: "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter", - name: "Llama 3.3+ 70B TenyxChat DaybreakStorywriter", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "mistral-small-31-24b-instruct": { - id: "mistral-small-31-24b-instruct", - name: "Mistral Small 31 24b Instruct", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0": { - id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0", - name: "Llama 3.3 70B Omega Directive Unslop v2.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Baichuan-M2": { - id: "Baichuan-M2", - name: "Baichuan M2 32B Medical", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15.73, output: 15.73 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "doubao-1.5-vision-pro-32k": { - id: "doubao-1.5-vision-pro-32k", - name: "Doubao 1.5 Vision Pro 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-22", - last_updated: "2025-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.459, output: 1.377 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract", - name: "GLM 4.5 Air Derestricted Iceblink v2 ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 65536 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude 4.5 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v1.4": { - id: "Llama-3.3-70B-ArliAI-RPMax-v1.4", - name: "Llama 3.3 70B RPMax v1.4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "jamba-large-1.6": { - id: "jamba-large-1.6", - name: "Jamba Large 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "Llama-3.3-70B-Aurora-Borealis": { - id: "Llama-3.3-70B-Aurora-Borealis", - name: "Llama 3.3 70B Aurora Borealis", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "ernie-x1-32k": { - id: "ernie-x1-32k", - name: "Ernie X1 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "Llama-3.3-70B-Magnum-v4-SE": { - id: "Llama-3.3-70B-Magnum-v4-SE", - name: "Llama 3.3 70B Magnum v4 SE", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 64000, input: 64000, output: 65536 }, - }, - "KAT-Coder-Pro-V1": { - id: "KAT-Coder-Pro-V1", - name: "KAT Coder Pro V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "hunyuan-turbos-20250226": { - id: "hunyuan-turbos-20250226", - name: "Hunyuan Turbo S", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.187, output: 0.374 }, - limit: { context: 24000, input: 24000, output: 8192 }, - }, - "jamba-large-1.7": { - id: "jamba-large-1.7", - name: "Jamba Large 1.7", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "mercury-coder-small": { - id: "mercury-coder-small", - name: "Mercury Coder Small", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-26", - last_updated: "2025-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-1-5-thinking-pro-vision-250415": { - id: "doubao-1-5-thinking-pro-vision-250415", - name: "Doubao 1.5 Thinking Pro Vision", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "yi-medium-200k": { - id: "yi-medium-200k", - name: "Yi Medium 200k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-03-01", - last_updated: "2024-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 2.499 }, - limit: { context: 200000, input: 200000, output: 4096 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview (09/2025)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "deepseek-chat-cheaper": { - id: "deepseek-chat-cheaper", - name: "DeepSeek V3/Chat Cheaper", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "step-r1-v-mini": { - id: "step-r1-v-mini", - name: "Step R1 V Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-08", - last_updated: "2025-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 11 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 0605", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "yi-lightning": { - id: "yi-lightning", - name: "Yi Lightning", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-16", - last_updated: "2024-10-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 12000, input: 12000, output: 4096 }, - }, - "deepseek-reasoner-cheaper": { - id: "deepseek-reasoner-cheaper", - name: "Deepseek R1 Cheaper", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "ernie-4.5-turbo-vl-32k": { - id: "ernie-4.5-turbo-vl-32k", - name: "Ernie 4.5 Turbo VL 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.495, output: 1.43 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "v0-1.0-md": { - id: "v0-1.0-md", - name: "v0 1.0 MD", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "Llama-3.3-70B-Ignition-v0.1": { - id: "Llama-3.3-70B-Ignition-v0.1", - name: "Llama 3.3 70B Ignition v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-z1-air": { - id: "glm-z1-air", - name: "GLM Z1 Air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude 3.5 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "Llama-3.3-70B-RAWMAW": { - id: "Llama-3.3-70B-RAWMAW", - name: "Llama 3.3 70B RAWMAW", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Magistral-Small-2506": { - id: "Magistral-Small-2506", - name: "Magistral Small 2506", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.4 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "ernie-x1-turbo-32k": { - id: "ernie-x1-turbo-32k", - name: "Ernie X1 Turbo 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.165, output: 0.66 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Perplexity Reasoning Pro", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 7.9985 }, - limit: { context: 127000, input: 127000, output: 128000 }, - }, - "deepseek-r1-sambanova": { - id: "deepseek-r1-sambanova", - name: "DeepSeek R1 Fast", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 6.987 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "claude-3-7-sonnet-thinking:1024": { - id: "claude-3-7-sonnet-thinking:1024", - name: "Claude 3.7 Sonnet Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP": { - id: "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP", - name: "Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v3": { - id: "Llama-3.3-70B-ArliAI-RPMax-v3", - name: "Llama 3.3 70B ArliAI RPMax v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "qwen-long": { - id: "qwen-long", - name: "Qwen Long 10M", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 10000000, input: 10000000, output: 8192 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-Progenitor-V3.3": { - id: "Llama-3.3-70B-Progenitor-V3.3", - name: "Llama 3.3 70B Progenitor V3.3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-v2": { - id: "GLM-4.5-Air-Derestricted-Iceblink-v2", - name: "GLM 4.5 Air Derestricted Iceblink v2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 158600, input: 158600, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview (09/2025)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "study_gpt-chatgpt-4o-latest": { - id: "study_gpt-chatgpt-4o-latest", - name: "Study Mode", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16384 }, - }, - "qwq-32b": { - id: "qwq-32b", - name: "Qwen: QwQ 32B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25599999, output: 0.30499999 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 0506", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-MS-Nevoria": { - id: "Llama-3.3-70B-MS-Nevoria", - name: "Llama 3.3 70B MS Nevoria", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-1-6-250615": { - id: "doubao-seed-1-6-250615", - name: "Doubao Seed 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.204, output: 0.51 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash 0520", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048000, input: 1048000, output: 65536 }, - }, - "glm-4": { - id: "glm-4", - name: "GLM-4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-01-16", - last_updated: "2024-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 14.994 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "azure-gpt-4-turbo": { - id: "azure-gpt-4-turbo", - name: "Azure gpt-4-turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 30.005 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Llama-3.3-70B-Legion-V2.1": { - id: "Llama-3.3-70B-Legion-V2.1", - name: "Llama 3.3 70B Legion V2.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-3-7-sonnet-thinking:32768": { - id: "claude-3-7-sonnet-thinking:32768", - name: "Claude 3.7 Sonnet Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "asi1-mini": { - id: "asi1-mini", - name: "ASI1 Mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "gemini-exp-1206": { - id: "gemini-exp-1206", - name: "Gemini 2.0 Pro 1206", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.258, output: 4.998 }, - limit: { context: 2097152, input: 2097152, output: 8192 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen 2.5 Max", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-04-03", - last_updated: "2024-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5997, output: 6.392 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - brave: { - id: "brave", - name: "Brave (Answers)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "doubao-1-5-thinking-pro-250415": { - id: "doubao-1-5-thinking-pro-250415", - name: "Doubao 1.5 Thinking Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-sonnet-4-thinking:64000": { - id: "claude-sonnet-4-thinking:64000", - name: "Claude 4 Sonnet Thinking (64K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "GLM-4.5-Air-Derestricted-Steam-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Steam-ReExtract", - name: "GLM 4.5 Air Derestricted Steam ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 65536 }, - }, - "kimi-k2-instruct-fast": { - id: "kimi-k2-instruct-fast", - name: "Kimi K2 0711 Fast", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "Llama-3.3-70B-GeneticLemonade-Opus": { - id: "Llama-3.3-70B-GeneticLemonade-Opus", - name: "Llama 3.3 70B GeneticLemonade Opus", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-Big-Tiger-v3": { - id: "Gemma-3-27B-Big-Tiger-v3", - name: "Gemma 3 27B Big Tiger v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-2-0-mini-260215": { - id: "doubao-seed-2-0-mini-260215", - name: "Doubao Seed 2.0 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0493, output: 0.4845 }, - limit: { context: 256000, input: 256000, output: 32000 }, - }, - "claude-sonnet-4-5-20250929-thinking": { - id: "claude-sonnet-4-5-20250929-thinking", - name: "Claude Sonnet 4.5 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "glm-4-air": { - id: "glm-4-air", - name: "GLM-4 Air", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Iceblink-ReExtract", - name: "GLM 4.5 Air Derestricted Iceblink ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 98304 }, - }, - "gemini-2.0-pro-reasoner": { - id: "gemini-2.0-pro-reasoner", - name: "Gemini 2.0 Pro Reasoner", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.292, output: 4.998 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "gemini-2.0-flash-001": { - id: "gemini-2.0-flash-001", - name: "Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "glm-4-plus": { - id: "glm-4-plus", - name: "GLM-4 Plus", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.497, output: 7.497 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "gemini-2.0-flash-exp-image-generation": { - id: "gemini-2.0-flash-exp-image-generation", - name: "Gemini Text + Image", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "GLM-4.5-Air-Derestricted": { - id: "GLM-4.5-Air-Derestricted", - name: "GLM 4.5 Air Derestricted", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 202600, input: 202600, output: 98304 }, - }, - "gemini-2.0-flash-thinking-exp-1219": { - id: "gemini-2.0-flash-thinking-exp-1219", - name: "Gemini 2.0 Flash Thinking 1219", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-19", - last_updated: "2024-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "glm-4.1v-thinking-flashx": { - id: "glm-4.1v-thinking-flashx", - name: "GLM 4.1V Thinking FlashX", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "Llama-3.3-70B-StrawberryLemonade-v1.0": { - id: "Llama-3.3-70B-StrawberryLemonade-v1.0", - name: "Llama 3.3 70B StrawberryLemonade v1.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Fallen-v1": { - id: "Llama-3.3-70B-Fallen-v1", - name: "Llama 3.3 70B Fallen v1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-Nidum-Uncensored": { - id: "Gemma-3-27B-Nidum-Uncensored", - name: "Gemma 3 27B Nidum Uncensored", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 96000 }, - }, - "Llama-3.3-70B-Electranova-v1.0": { - id: "Llama-3.3-70B-Electranova-v1.0", - name: "Llama 3.3 70B Electranova v1.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "grok-3-fast-beta": { - id: "grok-3-fast-beta", - name: "Grok 3 Fast Beta", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04998, output: 0.2006 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "Llama-3.3-70B-Sapphira-0.1": { - id: "Llama-3.3-70B-Sapphira-0.1", - name: "Llama 3.3 70B Sapphira 0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-pro-preview-03-25": { - id: "gemini-2.5-pro-preview-03-25", - name: "Gemini 2.5 Pro Preview 0325", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "step-2-16k-exp": { - id: "step-2-16k-exp", - name: "Step-2 16k Exp", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-05", - last_updated: "2024-07-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.004, output: 19.992 }, - limit: { context: 16000, input: 16000, output: 8192 }, - }, - chroma: { - id: "chroma", - name: "Chroma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - sonar: { - id: "sonar", - name: "Perplexity Simple", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.003, output: 1.003 }, - limit: { context: 127000, input: 127000, output: 128000 }, - }, - fastgpt: { - id: "fastgpt", - name: "Web Answer", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-08-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.5, output: 7.5 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "claude-sonnet-4-thinking:8192": { - id: "claude-sonnet-4-thinking:8192", - name: "Claude 4 Sonnet Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Electra-R1": { - id: "Llama-3.3-70B-Electra-R1", - name: "Llama 3.3 70B Electra R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Fallen-R1-v1": { - id: "Llama-3.3-70B-Fallen-R1-v1", - name: "Llama 3.3 70B Fallen R1 v1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-it-Abliterated": { - id: "Gemma-3-27B-it-Abliterated", - name: "Gemma 3 27B IT Abliterated", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.42, output: 0.42 }, - limit: { context: 32768, input: 32768, output: 96000 }, - }, - "doubao-1.5-pro-256k": { - id: "doubao-1.5-pro-256k", - name: "Doubao 1.5 Pro 256k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.799, output: 1.445 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "claude-opus-4-thinking": { - id: "claude-opus-4-thinking", - name: "Claude 4 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek R1", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "doubao-1-5-thinking-vision-pro-250428": { - id: "doubao-1-5-thinking-vision-pro-250428", - name: "Doubao 1.5 Thinking Vision Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-15", - last_updated: "2025-05-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 1.43 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "doubao-seed-2-0-lite-260215": { - id: "doubao-seed-2-0-lite-260215", - name: "Doubao Seed 2.0 Lite", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1462, output: 0.8738 }, - limit: { context: 256000, input: 256000, output: 32000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude 4 Opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "qwen25-vl-72b-instruct": { - id: "qwen25-vl-72b-instruct", - name: "Qwen25 VL 72b", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.69989, output: 0.69989 }, - limit: { context: 32000, input: 32000, output: 32768 }, - }, - "azure-gpt-4o": { - id: "azure-gpt-4o", - name: "Azure gpt-4o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Deep Research", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-25", - last_updated: "2025-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.4, output: 13.6 }, - limit: { context: 60000, input: 60000, output: 128000 }, - }, - "ernie-4.5-turbo-128k": { - id: "ernie-4.5-turbo-128k", - name: "Ernie 4.5 Turbo 128k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.132, output: 0.55 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "azure-o1": { - id: "azure-o1", - name: "Azure o1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-17", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 59.993 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "gemini-3-pro-preview-thinking": { - id: "gemini-3-pro-preview-thinking", - name: "Gemini 3 Pro Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "grok-3-mini-beta": { - id: "grok-3-mini-beta", - name: "Grok 3 Mini Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "claude-opus-4-1-thinking": { - id: "claude-opus-4-1-thinking", - name: "Claude 4.1 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.5-flash-nothinking": { - id: "gemini-2.5-flash-nothinking", - name: "Gemini 2.5 Flash (No Thinking)", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "doubao-seed-1-8-251215": { - id: "doubao-seed-1-8-251215", - name: "Doubao Seed 1.8", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-15", - last_updated: "2025-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.612, output: 6.12 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-3-7-sonnet-thinking:8192": { - id: "claude-3-7-sonnet-thinking:8192", - name: "Claude 3.7 Sonnet Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "qvq-max": { - id: "qvq-max", - name: "Qwen: QvQ Max", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-28", - last_updated: "2025-03-28", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 5.3 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "auto-model-basic": { - id: "auto-model-basic", - name: "Auto model (Basic)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1": { - id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1", - name: "Llama 3.3 70B Omega Directive Unslop v2.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-3-5-haiku-20241022": { - id: "claude-3-5-haiku-20241022", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "glm-4-plus-0111": { - id: "glm-4-plus-0111", - name: "GLM 4 Plus 0111", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Llama-3.3-70B-Bigger-Body": { - id: "Llama-3.3-70B-Bigger-Body", - name: "Llama 3.3 70B Bigger Body", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "KAT-Coder-Air-V1": { - id: "KAT-Coder-Air-V1", - name: "KAT Coder Air V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax M2", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-10-25", - last_updated: "2025-10-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.53 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "doubao-seed-1-6-flash-250615": { - id: "doubao-seed-1-6-flash-250615", - name: "Doubao Seed 1.6 Flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0374, output: 0.374 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "glm-4-air-0111": { - id: "glm-4-air-0111", - name: "GLM 4 Air 0111", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-11", - last_updated: "2025-01-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 0.1394 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "phi-4-mini-instruct": { - id: "phi-4-mini-instruct", - name: "Phi 4 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "jamba-mini-1.6": { - id: "jamba-mini-1.6", - name: "Jamba Mini 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "v0-1.5-md": { - id: "v0-1.5-md", - name: "v0 1.5 MD", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "command-a-reasoning-08-2025": { - id: "command-a-reasoning-08-2025", - name: "Cohere Command A (08/2025)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-22", - last_updated: "2025-08-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "kimi-thinking-preview": { - id: "kimi-thinking-preview", - name: "Kimi Thinking Preview", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 31.46, output: 31.46 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-3-5-sonnet-20240620": { - id: "claude-3-5-sonnet-20240620", - name: "Claude 3.5 Sonnet Old", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek Chat 0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-sonnet-4-thinking:1024": { - id: "claude-sonnet-4-thinking:1024", - name: "Claude 4 Sonnet Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Incandescent-Malevolence": { - id: "Llama-3.3-70B-Incandescent-Malevolence", - name: "Llama 3.3 70B Incandescent Malevolence", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-1.5-pro-32k": { - id: "doubao-1.5-pro-32k", - name: "Doubao 1.5 Pro 32k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-22", - last_updated: "2025-01-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1343, output: 0.3349 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "Llama-3.3-70B-Forgotten-Safeword-3.6": { - id: "Llama-3.3-70B-Forgotten-Safeword-3.6", - name: "Llama 3.3 70B Forgotten Safeword 3.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "step-2-mini": { - id: "step-2-mini", - name: "Step-2 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-05", - last_updated: "2024-07-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.408 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "Mistral-Nemo-12B-Instruct-2407": { - id: "Mistral-Nemo-12B-Instruct-2407", - name: "Mistral Nemo 12B Instruct 2407", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Baichuan4-Turbo": { - id: "Baichuan4-Turbo", - name: "Baichuan 4 Turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.42, output: 2.42 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "ernie-5.0-thinking-latest": { - id: "ernie-5.0-thinking-latest", - name: "Ernie 5.0 Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "Gemma-3-27B-Glitter": { - id: "Gemma-3-27B-Glitter", - name: "Gemma 3 27B Glitter", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-thinking:32000": { - id: "claude-opus-4-thinking:32000", - name: "Claude 4 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "auto-model-premium": { - id: "auto-model-premium", - name: "Auto model (Premium)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16000 }, - }, - "gemini-2.0-flash-thinking-exp-01-21": { - id: "gemini-2.0-flash-thinking-exp-01-21", - name: "Gemini 2.0 Flash Thinking 0121", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-21", - last_updated: "2025-01-21", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 1.003 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "claude-sonnet-4-thinking:32768": { - id: "claude-sonnet-4-thinking:32768", - name: "Claude 4 Sonnet Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "claude-opus-4-1-thinking:32768": { - id: "claude-opus-4-1-thinking:32768", - name: "Claude 4.1 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "jamba-large": { - id: "jamba-large", - name: "Jamba Large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "Llama-3.3-70B-MiraiFanfare": { - id: "Llama-3.3-70B-MiraiFanfare", - name: "Llama 3.3 70b Mirai Fanfare", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.493, output: 0.493 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "venice-uncensored:web": { - id: "venice-uncensored:web", - name: "Venice Uncensored Web", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-01", - last_updated: "2024-05-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 80000, input: 80000, output: 16384 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max 2026-01-23", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2002, output: 6.001 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "gemini-2.5-flash-lite-preview-09-2025-thinking": { - id: "gemini-2.5-flash-lite-preview-09-2025-thinking", - name: "Gemini 2.5 Flash Lite Preview (09/2025) – Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "ernie-x1-32k-preview": { - id: "ernie-x1-32k-preview", - name: "Ernie X1 32k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "glm-z1-airx": { - id: "glm-z1-airx", - name: "GLM Z1 AirX", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "ernie-x1.1-preview": { - id: "ernie-x1.1-preview", - name: "ERNIE X1.1", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "exa-research": { - id: "exa-research", - name: "Exa (Research)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "Llama-3.3-70B-Mokume-Gane-R1": { - id: "Llama-3.3-70B-Mokume-Gane-R1", - name: "Llama 3.3 70B Mokume Gane R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-4.1v-thinking-flash": { - id: "glm-4.1v-thinking-flash", - name: "GLM 4.1V Thinking Flash", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "Llama-3.3-70B-GeneticLemonade-Unleashed-v3": { - id: "Llama-3.3-70B-GeneticLemonade-Unleashed-v3", - name: "Llama 3.3 70B GeneticLemonade Unleashed v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Predatorial-Extasy": { - id: "Llama-3.3-70B-Predatorial-Extasy", - name: "Llama 3.3 70B Predatorial Extasy", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "DeepSeek V3/Deepseek Chat", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "glm-4-airx": { - id: "glm-4-airx", - name: "GLM-4 AirX", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "doubao-seed-1-6-thinking-250615": { - id: "doubao-seed-1-6-thinking-250615", - name: "Doubao Seed 1.6 Thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.204, output: 2.04 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "claude-3-7-sonnet-thinking": { - id: "claude-3-7-sonnet-thinking", - name: "Claude 3.7 Sonnet Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16000 }, - }, - "GLM-4.5-Air-Derestricted-Steam": { - id: "GLM-4.5-Air-Derestricted-Steam", - name: "GLM 4.5 Air Derestricted Steam", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 220600, input: 220600, output: 65536 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "Gemini 3 Pro Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax M1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 1.3328 }, - limit: { context: 1000000, input: 1000000, output: 131072 }, - }, - "ernie-5.0-thinking-preview": { - id: "ernie-5.0-thinking-preview", - name: "Ernie 5.0 Thinking Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-opus-4-thinking:1024": { - id: "claude-opus-4-thinking:1024", - name: "Claude 4 Opus Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Strawberrylemonade-v1.2": { - id: "Llama-3.3-70B-Strawberrylemonade-v1.2", - name: "Llama 3.3 70B StrawberryLemonade v1.2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Vulpecula-R1": { - id: "Llama-3.3-70B-Vulpecula-R1", - name: "Llama 3.3 70B Vulpecula R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.6-Derestricted-v5": { - id: "GLM-4.6-Derestricted-v5", - name: "GLM 4.6 Derestricted v5", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "Llama-3.3-70B-Cirrus-x1": { - id: "Llama-3.3-70B-Cirrus-x1", - name: "Llama 3.3 70B Cirrus x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v2": { - id: "Llama-3.3-70B-ArliAI-RPMax-v2", - name: "Llama 3.3 70B ArliAI RPMax v2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-code-preview-latest": { - id: "doubao-seed-code-preview-latest", - name: "Doubao Seed Code Preview", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Perplexity Pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1": { - id: "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1", - name: "Llama 3.3+ 70B New Dawn v1.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "qwen3-vl-235b-a22b-thinking": { - id: "qwen3-vl-235b-a22b-thinking", - name: "Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 6 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "claude-sonnet-4-thinking": { - id: "claude-sonnet-4-thinking", - name: "Claude 4 Sonnet Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Qwen2.5-32B-EVA-v0.2": { - id: "Qwen2.5-32B-EVA-v0.2", - name: "Qwen 2.5 32b EVA", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.493, output: 0.493 }, - limit: { context: 24576, input: 24576, output: 8192 }, - }, - "v0-1.5-lg": { - id: "v0-1.5-lg", - name: "v0 1.5 LG", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Cu-Mai-R1": { - id: "Llama-3.3-70B-Cu-Mai-R1", - name: "Llama 3.3 70B Cu Mai R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - hidream: { - id: "hidream", - name: "Hidream", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "auto-model": { - id: "auto-model", - name: "Auto model", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "jamba-mini-1.7": { - id: "jamba-mini-1.7", - name: "Jamba Mini 1.7", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "doubao-seed-2-0-pro-260215": { - id: "doubao-seed-2-0-pro-260215", - name: "Doubao Seed 2.0 Pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.782, output: 3.876 }, - limit: { context: 256000, input: 256000, output: 128000 }, - }, - "Llama-3.3-70B-Nova": { - id: "Llama-3.3-70B-Nova", - name: "Llama 3.3 70B Nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-flash-preview-09-2025-thinking": { - id: "gemini-2.5-flash-preview-09-2025-thinking", - name: "Gemini 2.5 Flash Preview (09/2025) – Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-Sapphira-0.2": { - id: "Llama-3.3-70B-Sapphira-0.2", - name: "Llama 3.3 70B Sapphira 0.2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "auto-model-standard": { - id: "auto-model-standard", - name: "Auto model (Standard)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "grok-3-mini-fast-beta": { - id: "grok-3-mini-fast-beta", - name: "Grok 3 Mini Fast Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3995, output: 1.2002 }, - limit: { context: 995904, input: 995904, output: 32768 }, - }, - "Meta-Llama-3-1-8B-Instruct-FP8": { - id: "Meta-Llama-3-1-8B-Instruct-FP8", - name: "Llama 3.1 8B (decentralized)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "step-3": { - id: "step-3", - name: "Step-3", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2499, output: 0.6494 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "Gemma-3-27B-it": { - id: "Gemma-3-27B-it", - name: "Gemma 3 27B IT", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "universal-summarizer": { - id: "universal-summarizer", - name: "Universal Summarizer", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-05-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 30 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - deepclaude: { - id: "deepclaude", - name: "DeepClaude", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "brave-pro": { - id: "brave-pro", - name: "Brave (Pro)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "claude-3-7-sonnet-reasoner": { - id: "claude-3-7-sonnet-reasoner", - name: "Claude 3.7 Sonnet Reasoner", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-29", - last_updated: "2025-03-29", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0748, output: 0.306 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "claude-opus-4-thinking:8192": { - id: "claude-opus-4-thinking:8192", - name: "Claude 4 Opus Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "claude-opus-4-thinking:32768": { - id: "claude-opus-4-thinking:32768", - name: "Claude 4 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "glm-zero-preview": { - id: "glm-zero-preview", - name: "GLM Zero Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.802, output: 1.802 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "azure-gpt-4o-mini": { - id: "azure-gpt-4o-mini", - name: "Azure gpt-4o-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1496, output: 0.595 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "deepseek-math-v2": { - id: "deepseek-math-v2", - name: "DeepSeek Math V2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "glm-4-long": { - id: "glm-4-long", - name: "GLM-4 Long", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 1000000, input: 1000000, output: 4096 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink": { - id: "GLM-4.5-Air-Derestricted-Iceblink", - name: "GLM 4.5 Air Derestricted Iceblink", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 98304 }, - }, - "claude-opus-4-1-thinking:1024": { - id: "claude-opus-4-1-thinking:1024", - name: "Claude 4.1 Opus Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "qwen3-vl-235b-a22b-instruct-original": { - id: "qwen3-vl-235b-a22b-instruct-original", - name: "Qwen3 VL 235B A22B Instruct Original", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "Llama-3.3+(3.1v3.3)-70B-Hanami-x1": { - id: "Llama-3.3+(3.1v3.3)-70B-Hanami-x1", - name: "Llama 3.3+ 70B Hanami x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-1-thinking:8192": { - id: "claude-opus-4-1-thinking:8192", - name: "Claude 4.1 Opus Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Damascus-R1": { - id: "Llama-3.3-70B-Damascus-R1", - name: "Damascus R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-ArliAI-RPMax-v3": { - id: "Gemma-3-27B-ArliAI-RPMax-v3", - name: "Gemma 3 27B RPMax v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-flash-preview-05-20:thinking": { - id: "gemini-2.5-flash-preview-05-20:thinking", - name: "Gemini 2.5 Flash 0520 Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 3.5 }, - limit: { context: 1048000, input: 1048000, output: 65536 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude 4 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "claude-opus-4-1-thinking:32000": { - id: "claude-opus-4-1-thinking:32000", - name: "Claude 4.1 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "sarvan-medium": { - id: "sarvan-medium", - name: "Sarvam Medium", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Llama-3.3-70B-Anthrobomination": { - id: "Llama-3.3-70B-Anthrobomination", - name: "Llama 3.3 70B Anthrobomination", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "venice-uncensored": { - id: "venice-uncensored", - name: "Venice Uncensored", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Baichuan4-Air": { - id: "Baichuan4-Air", - name: "Baichuan 4 Air", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.157, output: 0.157 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "jamba-mini": { - id: "jamba-mini", - name: "Jamba Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "KAT-Coder-Exp-72B-1010": { - id: "KAT-Coder-Exp-72B-1010", - name: "KAT Coder Exp 72B 1010", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "gemini-2.5-flash-preview-04-17:thinking": { - id: "gemini-2.5-flash-preview-04-17:thinking", - name: "Gemini 2.5 Flash Preview Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 3.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "brave-research": { - id: "brave-research", - name: "Brave (Research)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude 4.1 Opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Argunaut-1-SFT": { - id: "Llama-3.3-70B-Argunaut-1-SFT", - name: "Llama 3.3 70B Argunaut 1 SFT", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-5-20251101:thinking": { - id: "claude-opus-4-5-20251101:thinking", - name: "Claude 4.5 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "grok-3-beta": { - id: "grok-3-beta", - name: "Grok 3 Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "azure-o3-mini": { - id: "azure-o3-mini", - name: "Azure o3-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.088, output: 4.3996 }, - limit: { context: 200000, input: 200000, output: 65536 }, - }, - "QwQ-32B-ArliAI-RpR-v1": { - id: "QwQ-32B-ArliAI-RpR-v1", - name: "QwQ 32b Arli V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "Llama-3.3-70B-Forgotten-Abomination-v5.0": { - id: "Llama-3.3-70B-Forgotten-Abomination-v5.0", - name: "Llama 3.3 70B Forgotten Abomination v5.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-2-0-code-preview-260215": { - id: "doubao-seed-2-0-code-preview-260215", - name: "Doubao Seed 2.0 Code Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.782, output: 3.893 }, - limit: { context: 256000, input: 256000, output: 128000 }, - }, - "Llama-3.3-70B-Mhnnn-x1": { - id: "Llama-3.3-70B-Mhnnn-x1", - name: "Llama 3.3 70B Mhnnn x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "hunyuan-t1-latest": { - id: "hunyuan-t1-latest", - name: "Hunyuan T1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-22", - last_updated: "2025-03-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "Gemma-3-27B-CardProjector-v4": { - id: "Gemma-3-27B-CardProjector-v4", - name: "Gemma 3 27B CardProjector v4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-4-flash": { - id: "glm-4-flash", - name: "GLM-4 Flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "learnlm-1.5-pro-experimental": { - id: "learnlm-1.5-pro-experimental", - name: "Gemini LearnLM Experimental", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.502, output: 10.506 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "Llama-3.3-70B-Dark-Ages-v0.1": { - id: "Llama-3.3-70B-Dark-Ages-v0.1", - name: "Llama 3.3 70B Dark Ages v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "yi-large": { - id: "yi-large", - name: "Yi Large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.196, output: 3.196 }, - limit: { context: 32000, input: 32000, output: 4096 }, - }, - "exa-answer": { - id: "exa-answer", - name: "Exa (Answer)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 4096, input: 4096, output: 4096 }, - }, - "gemini-2.5-pro-exp-03-25": { - id: "gemini-2.5-pro-exp-03-25", - name: "Gemini 2.5 Pro Experimental 0325", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "LLM360/K2-Think": { - id: "LLM360/K2-Think", - name: "K2-Think", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "abacusai/Dracarys-72B-Instruct": { - id: "abacusai/Dracarys-72B-Instruct", - name: "Llama 3.1 70B Dracarys 2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B": { - id: "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B", - name: "Nemotron Tenyxchat Storybreaker 70b", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B": { - id: "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", - name: "Llama 3.05 Storybreaker Ministral 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "allenai/olmo-3-32b-think": { - id: "allenai/olmo-3-32b-think", - name: "Olmo 3 32B Think", - family: "allenai", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.44999999999999996 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "allenai/molmo-2-8b": { - id: "allenai/molmo-2-8b", - name: "Molmo 2 8B", - family: "allenai", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 36864, input: 36864, output: 36864 }, - }, - "allenai/olmo-3.1-32b-instruct": { - id: "allenai/olmo-3.1-32b-instruct", - name: "Olmo 3.1 32B Instruct", - family: "allenai", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-25", - last_updated: "2026-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "allenai/olmo-3.1-32b-think": { - id: "allenai/olmo-3.1-32b-think", - name: "Olmo 3.1 32B Think", - family: "allenai", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-25", - last_updated: "2026-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "nex-agi/deepseek-v3.1-nex-n1": { - id: "nex-agi/deepseek-v3.1-nex-n1", - name: "DeepSeek V3.1 Nex N1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-10", - last_updated: "2025-12-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.8 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-5:thinking": { - id: "zai-org/glm-5:thinking", - name: "GLM 5 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": { - id: "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", - name: "Nvidia Nemotron 70b", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.357, output: 0.408 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "nvidia/Llama-3.3-Nemotron-Super-49B-v1": { - id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1", - name: "Nvidia Nemotron Super 49B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "nvidia/nvidia-nemotron-nano-9b-v2": { - id: "nvidia/nvidia-nemotron-nano-9b-v2", - name: "Nvidia Nemotron Nano 9B v2", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1": { - id: "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", - name: "Nvidia Nemotron Ultra 253B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.8 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "Nvidia Nemotron 3 Nano 30B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-15", - last_updated: "2025-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, - "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5": { - id: "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5", - name: "Nvidia Nemotron Super 49B v1.5", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond": { - id: "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond", - name: "MS3.2 24B Magnum Diamond", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045000000000000005, output: 0.15 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "arcee-ai/trinity-large": { - id: "arcee-ai/trinity-large", - name: "Trinity Large", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "meganova-ai/manta-flash-1.0": { - id: "meganova-ai/manta-flash-1.0", - name: "Manta Flash 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.16 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "meganova-ai/manta-pro-1.0": { - id: "meganova-ai/manta-pro-1.0", - name: "Manta Pro 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.060000000000000005, output: 0.5 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "meganova-ai/manta-mini-1.0": { - id: "meganova-ai/manta-mini-1.0", - name: "Manta Mini 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.16 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "xiaomi/mimo-v2-flash-original": { - id: "xiaomi/mimo-v2-flash-original", - name: "MiMo V2 Flash Original", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash-thinking": { - id: "xiaomi/mimo-v2-flash-thinking", - name: "MiMo V2 Flash (Thinking)", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash-thinking-original": { - id: "xiaomi/mimo-v2-flash-thinking-original", - name: "MiMo V2 Flash (Thinking) Original", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "microsoft/MAI-DS-R1-FP8": { - id: "microsoft/MAI-DS-R1-FP8", - name: "Microsoft DeepSeek R1", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "WizardLM-2 8x22B", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5": { - id: "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", - name: "Llama 3 70B abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "featherless-ai/Qwerky-72B": { - id: "featherless-ai/Qwerky-72B", - name: "Qwerky 72B", - family: "qwerky", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "TEE/glm-5": { - id: "TEE/glm-5", - name: "GLM 5 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 3.5 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/deepseek-v3.1": { - id: "TEE/deepseek-v3.1", - name: "DeepSeek V3.1 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2.5 }, - limit: { context: 164000, input: 164000, output: 8192 }, - }, - "TEE/glm-4.7-flash": { - id: "TEE/glm-4.7-flash", - name: "GLM 4.7 Flash TEE", - family: "glm-flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/qwen3-coder": { - id: "TEE/qwen3-coder", - name: "Qwen3 Coder 480B TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "TEE/glm-4.6": { - id: "TEE/glm-4.6", - name: "GLM 4.6 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 2 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/deepseek-r1-0528": { - id: "TEE/deepseek-r1-0528", - name: "DeepSeek R1 0528 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "TEE/minimax-m2.1": { - id: "TEE/minimax-m2.1", - name: "MiniMax M2.1 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "TEE/qwen3.5-397b-a17b": { - id: "TEE/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-28", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 258048, input: 258048, output: 65536 }, - }, - "TEE/gpt-oss-120b": { - id: "TEE/gpt-oss-120b", - name: "GPT-OSS 120B TEE", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "TEE/kimi-k2.5": { - id: "TEE/kimi-k2.5", - name: "Kimi K2.5 TEE", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/qwen3-30b-a3b-instruct-2507": { - id: "TEE/qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.44999999999999996 }, - limit: { context: 262000, input: 262000, output: 32768 }, - }, - "TEE/kimi-k2.5-thinking": { - id: "TEE/kimi-k2.5-thinking", - name: "Kimi K2.5 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/qwen2.5-vl-72b-instruct": { - id: "TEE/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B TEE", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "TEE/deepseek-v3.2": { - id: "TEE/deepseek-v3.2", - name: "DeepSeek V3.2 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1 }, - limit: { context: 164000, input: 164000, output: 65536 }, - }, - "TEE/glm-4.7": { - id: "TEE/glm-4.7", - name: "GLM 4.7 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 3.3 }, - limit: { context: 131000, input: 131000, output: 65535 }, - }, - "TEE/kimi-k2-thinking": { - id: "TEE/kimi-k2-thinking", - name: "Kimi K2 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/llama3-3-70b": { - id: "TEE/llama3-3-70b", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "TEE/gemma-3-27b-it": { - id: "TEE/gemma-3-27b-it", - name: "Gemma 3 27B TEE", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "TEE/gpt-oss-20b": { - id: "TEE/gpt-oss-20b", - name: "GPT-OSS 20B TEE", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "amazon/nova-micro-v1": { - id: "amazon/nova-micro-v1", - name: "Amazon Nova Micro 1.0", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0357, output: 0.1394 }, - limit: { context: 128000, input: 128000, output: 5120 }, - }, - "amazon/nova-lite-v1": { - id: "amazon/nova-lite-v1", - name: "Amazon Nova Lite 1.0", - family: "nova-lite", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0595, output: 0.238 }, - limit: { context: 300000, input: 300000, output: 5120 }, - }, - "amazon/nova-2-lite-v1": { - id: "amazon/nova-2-lite-v1", - name: "Amazon Nova 2 Lite", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5099999999999999, output: 4.25 }, - limit: { context: 1000000, input: 1000000, output: 65535 }, - }, - "amazon/nova-pro-v1": { - id: "amazon/nova-pro-v1", - name: "Amazon Nova Pro 1.0", - family: "nova-pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 3.1959999999999997 }, - limit: { context: 300000, input: 300000, output: 32000 }, - }, - "anthracite-org/magnum-v2-72b": { - id: "anthracite-org/magnum-v2-72b", - name: "Magnum V2 72B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.992 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "anthracite-org/magnum-v4-72b": { - id: "anthracite-org/magnum-v4-72b", - name: "Magnum v4 72B", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.992 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "essentialai/rnj-1-instruct": { - id: "essentialai/rnj-1-instruct", - name: "RNJ-1 Instruct 8B", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-13", - last_updated: "2025-12-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-4-405b": { - id: "NousResearch 2/hermes-4-405b", - name: "Hermes 4 Large", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-3-llama-3.1-70b": { - id: "NousResearch 2/hermes-3-llama-3.1-70b", - name: "Hermes 3 70B", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-07", - last_updated: "2026-01-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.408, output: 0.408 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "NousResearch 2/DeepHermes-3-Mistral-24B-Preview": { - id: "NousResearch 2/DeepHermes-3-Mistral-24B-Preview", - name: "DeepHermes-3 Mistral 24B (Preview)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "NousResearch 2/hermes-4-70b": { - id: "NousResearch 2/hermes-4-70b", - name: "Hermes 4 Medium", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.39949999999999997 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-4-405b:thinking": { - id: "NousResearch 2/hermes-4-405b:thinking", - name: "Hermes 4 Large (Thinking)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/Hermes-4-70B:thinking": { - id: "NousResearch 2/Hermes-4-70B:thinking", - name: "Hermes 4 (Thinking)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-17", - last_updated: "2025-09-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.39949999999999997 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "pamanseau/OpenReasoning-Nemotron-32B": { - id: "pamanseau/OpenReasoning-Nemotron-32B", - name: "OpenReasoning Nemotron 32B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 32768, input: 32768, output: 65536 }, - }, - "MiniMaxAI/MiniMax-M1-80k": { - id: "MiniMaxAI/MiniMax-M1-80k", - name: "MiniMax M1 80K", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6052, output: 2.4225000000000003 }, - limit: { context: 1000000, input: 1000000, output: 131072 }, - }, - "deepseek-ai/deepseek-v3.2-exp-thinking": { - id: "deepseek-ai/deepseek-v3.2-exp-thinking", - name: "DeepSeek V3.2 Exp Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163840, input: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.1:thinking": { - id: "deepseek-ai/DeepSeek-V3.1:thinking", - name: "DeepSeek V3.1 Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "deepseek-ai/deepseek-v3.2-exp": { - id: "deepseek-ai/deepseek-v3.2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163840, input: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus:thinking": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus:thinking", - name: "DeepSeek V3.1 Terminus (Thinking)", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "raifle/sorcererlm-8x22b": { - id: "raifle/sorcererlm-8x22b", - name: "SorcererLM 8x22B", - family: "mixtral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.505, output: 4.505 }, - limit: { context: 16000, input: 16000, output: 8192 }, - }, - "aion-labs/aion-1.0-mini": { - id: "aion-labs/aion-1.0-mini", - name: "Aion 1.0 mini (DeepSeek)", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 1.394 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "aion-labs/aion-rp-llama-3.1-8b": { - id: "aion-labs/aion-rp-llama-3.1-8b", - name: "Llama 3.1 8b (uncensored)", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "aion-labs/aion-1.0": { - id: "aion-labs/aion-1.0", - name: "Aion 1.0", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.995, output: 7.99 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "mlabonne/NeuralDaredevil-8B-abliterated": { - id: "mlabonne/NeuralDaredevil-8B-abliterated", - name: "Neural Daredevil 8B abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.44, output: 0.44 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "unsloth/gemma-3-1b-it": { - id: "unsloth/gemma-3-1b-it", - name: "Gemma 3 1B IT", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "unsloth/gemma-3-12b-it": { - id: "unsloth/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "unsloth", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.272, output: 0.272 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "unsloth/gemma-3-4b-it": { - id: "unsloth/gemma-3-4b-it", - name: "Gemma 3 4B IT", - family: "unsloth", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "unsloth/gemma-3-27b-it": { - id: "unsloth/gemma-3-27b-it", - name: "Gemma 3 27B IT", - family: "unsloth", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2992, output: 0.2992 }, - limit: { context: 128000, input: 128000, output: 96000 }, - }, - "meituan-longcat/LongCat-Flash-Chat-FP8": { - id: "meituan-longcat/LongCat-Flash-Chat-FP8", - name: "LongCat Flash", - family: "longcat", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-31", - last_updated: "2025-08-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "cognitivecomputations/dolphin-2.9.2-qwen2-72b": { - id: "cognitivecomputations/dolphin-2.9.2-qwen2-72b", - name: "Dolphin 72b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 8192, input: 8192, output: 4096 }, - }, - "Infermatic/MN-12B-Inferor-v0.0": { - id: "Infermatic/MN-12B-Inferor-v0.0", - name: "Mistral Nemo Inferor 12B", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25499999999999995, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "Hunyuan MT 7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 20 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "Gryphe/MythoMax-L2-13b": { - id: "Gryphe/MythoMax-L2-13b", - name: "MythoMax 13B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 4000, input: 4000, output: 4096 }, - }, - "CrucibleLab/L3.3-70B-Loki-V2.0": { - id: "CrucibleLab/L3.3-70B-Loki-V2.0", - name: "L3.3 70B Loki v2.0", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "soob3123/Veiled-Calla-12B": { - id: "soob3123/Veiled-Calla-12B", - name: "Veiled Calla 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-13", - last_updated: "2025-04-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "soob3123/amoral-gemma3-27B-v2": { - id: "soob3123/amoral-gemma3-27B-v2", - name: "Amoral Gemma3 27B v2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-23", - last_updated: "2025-05-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "soob3123/GrayLine-Qwen3-8B": { - id: "soob3123/GrayLine-Qwen3-8B", - name: "Grayline Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "NeverSleep/Llama-3-Lumimaid-70B-v0.1": { - id: "NeverSleep/Llama-3-Lumimaid-70B-v0.1", - name: "Lumimaid 70b", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "NeverSleep/Lumimaid-v0.2-70B": { - id: "NeverSleep/Lumimaid-v0.2-70B", - name: "Lumimaid v0.2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1.5 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "deepseek/deepseek-prover-v2-671b": { - id: "deepseek/deepseek-prover-v2-671b", - name: "DeepSeek Prover v2 671B", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2.5 }, - limit: { context: 160000, input: 160000, output: 16384 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek V3.2 Speciale", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "deepseek/deepseek-v3.2:thinking": { - id: "deepseek/deepseek-v3.2:thinking", - name: "DeepSeek V3.2 Thinking", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "MarinaraSpaghetti/NemoMix-Unleashed-12B": { - id: "MarinaraSpaghetti/NemoMix-Unleashed-12B", - name: "NemoMix 12B Unleashed", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/kimi-k2.5:thinking": { - id: "moonshotai/kimi-k2.5:thinking", - name: "Kimi K2.5 Thinking", - family: "kimi-thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 256000, input: 256000, output: 65536 }, - }, - "moonshotai/kimi-k2-thinking-turbo-original": { - id: "moonshotai/kimi-k2-thinking-turbo-original", - name: "Kimi K2 Thinking Turbo Original", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, - "moonshotai/kimi-k2-instruct-0711": { - id: "moonshotai/kimi-k2-instruct-0711", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "moonshotai/Kimi-Dev-72B": { - id: "moonshotai/Kimi-Dev-72B", - name: "Kimi Dev 72B", - family: "kimi", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 256000, input: 256000, output: 65536 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking-original": { - id: "moonshotai/kimi-k2-thinking-original", - name: "Kimi K2 Thinking Original", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "ERNIE 4.5 VL 28B", - family: "ernie", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13999999999999999, output: 0.5599999999999999 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "baidu/ernie-4.5-300b-a47b": { - id: "baidu/ernie-4.5-300b-a47b", - name: "ERNIE 4.5 300B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.15 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "google/gemini-flash-1.5": { - id: "google/gemini-flash-1.5", - name: "Gemini 1.5 Flash", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0748, output: 0.306 }, - limit: { context: 2000000, input: 2000000, output: 8192 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "google/gemini-3-flash-preview-thinking": { - id: "google/gemini-3-flash-preview-thinking", - name: "Gemini 3 Flash Thinking", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "z-ai/glm-4.6:thinking": { - id: "z-ai/glm-4.6:thinking", - name: "GLM 4.6 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 200000, input: 200000, output: 65535 }, - }, - "z-ai/glm-4.5v:thinking": { - id: "z-ai/glm-4.5v:thinking", - name: "GLM 4.5V Thinking", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-22", - last_updated: "2025-11-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.7999999999999998 }, - limit: { context: 64000, input: 64000, output: 96000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 200000, input: 200000, output: 65535 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-22", - last_updated: "2025-11-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.7999999999999998 }, - limit: { context: 64000, input: 64000, output: 96000 }, - }, - "stepfun-ai/step-3.5-flash:thinking": { - id: "stepfun-ai/step-3.5-flash:thinking", - name: "Step 3.5 Flash Thinking", - family: "step", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "stepfun-ai/step-3.5-flash": { - id: "stepfun-ai/step-3.5-flash", - name: "Step 3.5 Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "deepcogito/cogito-v2.1-671b": { - id: "deepcogito/cogito-v2.1-671b", - name: "Cogito v2.1 671B MoE", - family: "cogito", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "deepcogito/cogito-v1-preview-qwen-32B": { - id: "deepcogito/cogito-v1-preview-qwen-32B", - name: "Cogito v1 Preview Qwen 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.7999999999999998, output: 1.7999999999999998 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "undi95/remm-slerp-l2-13b": { - id: "undi95/remm-slerp-l2-13b", - name: "ReMM SLERP 13B", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 1.2069999999999999 }, - limit: { context: 6144, input: 6144, output: 4096 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 258048, input: 258048, output: 65536 }, - }, - "inflatebot/MN-12B-Mag-Mell-R1": { - id: "inflatebot/MN-12B-Mag-Mell-R1", - name: "Mag Mell R1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16": { - id: "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", - name: "Llama 3.1 70B Celeste v0.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "x-ai/grok-4-fast:thinking": { - id: "x-ai/grok-4-fast:thinking", - name: "Grok 4 Fast Thinking", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, input: 256000, output: 131072 }, - }, - "x-ai/grok-4.1-fast-reasoning": { - id: "x-ai/grok-4.1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-20", - last_updated: "2025-09-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4-07-09": { - id: "x-ai/grok-4-07-09", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, input: 256000, output: 131072 }, - }, - "meta-llama/llama-4-scout": { - id: "meta-llama/llama-4-scout", - name: "Llama 4 Scout", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.085, output: 0.46 }, - limit: { context: 328000, input: 328000, output: 65536 }, - }, - "meta-llama/llama-3.2-90b-vision-instruct": { - id: "meta-llama/llama-3.2-90b-vision-instruct", - name: "Llama 3.2 Medium", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9009999999999999, output: 0.9009999999999999 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Llama 3.3 70b Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.23 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "meta-llama/llama-3.2-3b-instruct": { - id: "meta-llama/llama-3.2-3b-instruct", - name: "Llama 3.2 3b Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0306, output: 0.0493 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "meta-llama/llama-4-maverick": { - id: "meta-llama/llama-4-maverick", - name: "Llama 4 Maverick", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18000000000000002, output: 0.8 }, - limit: { context: 1048576, input: 1048576, output: 65536 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Llama 3.1 8b Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0544, output: 0.0544 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "tngtech/DeepSeek-TNG-R1T2-Chimera": { - id: "tngtech/DeepSeek-TNG-R1T2-Chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "tngtech", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "tngtech/tng-r1t-chimera": { - id: "tngtech/tng-r1t-chimera", - name: "TNG R1T Chimera", - family: "tngtech", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "mistralai/ministral-3b-2512": { - id: "mistralai/ministral-3b-2512", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/mistral-saba": { - id: "mistralai/mistral-saba", - name: "Mistral Saba", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.595 }, - limit: { context: 32000, input: 32000, output: 32768 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Codestral 2508", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.8999999999999999 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "mistralai/mistral-large-3-675b-instruct-2512": { - id: "mistralai/mistral-large-3-675b-instruct-2512", - name: "Mistral Large 3 675B", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3 }, - limit: { context: 262144, input: 262144, output: 256000 }, - }, - "mistralai/mistral-small-creative": { - id: "mistralai/mistral-small-creative", - name: "Mistral Small Creative", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "mistralai/ministral-8b-2512": { - id: "mistralai/ministral-8b-2512", - name: "Ministral 8B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/mixtral-8x22b-instruct-v0.1": { - id: "mistralai/mixtral-8x22b-instruct-v0.1", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8999999999999999, output: 0.8999999999999999 }, - limit: { context: 65536, input: 65536, output: 32768 }, - }, - "mistralai/ministral-14b-2512": { - id: "mistralai/ministral-14b-2512", - name: "Ministral 14B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/ministral-14b-instruct-2512": { - id: "mistralai/ministral-14b-instruct-2512", - name: "Ministral 3 14B", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/Devstral-Small-2505": { - id: "mistralai/Devstral-Small-2505", - name: "Mistral Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.060000000000000005, output: 0.060000000000000005 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "mistralai/mistral-tiny": { - id: "mistralai/mistral-tiny", - name: "Mistral Tiny", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-12-11", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25499999999999995, output: 0.25499999999999995 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "mistralai/mistral-7b-instruct": { - id: "mistralai/mistral-7b-instruct", - name: "Mistral 7B Instruct", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0544, output: 0.0544 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "mistralai/devstral-2-123b-instruct-2512": { - id: "mistralai/devstral-2-123b-instruct-2512", - name: "Devstral 2 123B", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.4 }, - limit: { context: 262144, input: 262144, output: 65536 }, - }, - "mistralai/mistral-large": { - id: "mistralai/mistral-large", - name: "Mistral Large 2411", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-02-26", - last_updated: "2024-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 6.001 }, - limit: { context: 128000, input: 128000, output: 256000 }, - }, - "mistralai/mixtral-8x7b-instruct-v0.1": { - id: "mistralai/mixtral-8x7b-instruct-v0.1", - name: "Mixtral 8x7B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "Tongyi-Zhiwen/QwenLong-L1-32B": { - id: "Tongyi-Zhiwen/QwenLong-L1-32B", - name: "QwenLong L1 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13999999999999999, output: 0.6 }, - limit: { context: 128000, input: 128000, output: 40960 }, - }, - "ReadyArt/The-Omega-Abomination-L-70B-v1.0": { - id: "ReadyArt/The-Omega-Abomination-L-70B-v1.0", - name: "The Omega Abomination V1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.95 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0": { - id: "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0", - name: "Omega Directive 24B Unslop v2.0", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "openai/gpt-4o-2024-11-20": { - id: "openai/gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-2025-11-13": { - id: "openai/gpt-5.1-2025-11-13", - name: "GPT-5.1 (2025-11-13)", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1000000, input: 1000000, output: 32768 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT 5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1496, output: 0.595 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5-chat-latest": { - id: "openai/gpt-5-chat-latest", - name: "GPT 5 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "GPT-4o mini Search Preview", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.088, output: 0.35 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 20 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT 5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "OpenAI o3 Deep Research", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-12-17", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.993999999999998, output: 59.993 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT 5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT 5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 16384 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "OpenAI o4-mini Deep Research", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT 5.1 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo-preview": { - id: "openai/gpt-4-turbo-preview", - name: "GPT-4 Turbo Preview", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 30.004999999999995 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT 4.1 Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2022-11-30", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, input: 16385, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT 5.1 Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT 5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT 4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/o3-mini-low": { - id: "openai/o3-mini-low", - name: "OpenAI o3-mini (Low)", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT 5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT 4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/o1-preview": { - id: "openai/o1-preview", - name: "OpenAI o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.993999999999998, output: 59.993 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "OpenAI o1 Pro", - family: "o-pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT 5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/chatgpt-4o-latest": { - id: "openai/chatgpt-4o-latest", - name: "ChatGPT 4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 14.993999999999998 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT 5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4o-2024-08-06": { - id: "openai/gpt-4o-2024-08-06", - name: "GPT-4o (2024-08-06)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-06", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT 5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-pro-2025-06-10": { - id: "openai/o3-pro-2025-06-10", - name: "OpenAI o3-pro (2025-06-10)", - family: "o-pro", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-chat-latest": { - id: "openai/gpt-5.1-chat-latest", - name: "GPT 5.1 Chat (Latest)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 16384 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT 5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "OpenAI o3-mini (High)", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.64, output: 2.588 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/o4-mini-high": { - id: "openai/o4-mini-high", - name: "OpenAI o4-mini high", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-4o-search-preview": { - id: "openai/gpt-4o-search-preview", - name: "GPT-4o Search Preview", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.47, output: 5.88 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "VongolaChouko/Starcannon-Unleashed-12B-v1.0": { - id: "VongolaChouko/Starcannon-Unleashed-12B-v1.0", - name: "Mistral Nemo Starcannon 12b v1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "cohere/command-r-plus-08-2024": { - id: "cohere/command-r-plus-08-2024", - name: "Cohere: Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.856, output: 14.246 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "cohere/command-r": { - id: "cohere/command-r", - name: "Cohere: Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-03-11", - last_updated: "2024-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.476, output: 1.428 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "GLM 4 32B 0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "GLM 4 9B 0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 8000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "GLM Z1 32B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "GLM Z1 9B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 8000 }, - }, - "THUDM/GLM-Z1-Rumination-32B-0414": { - id: "THUDM/GLM-Z1-Rumination-32B-0414", - name: "GLM Z1 Rumination 32B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 65536 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax 01", - family: "minimax", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 1.1219999999999999 }, - limit: { context: 1000192, input: 1000192, output: 16384 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, input: 204800, output: 131072 }, - }, - "minimax/minimax-m2-her": { - id: "minimax/minimax-m2-her", - name: "MiniMax M2-her", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-24", - last_updated: "2026-01-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.30200000000000005, output: 1.2069999999999999 }, - limit: { context: 65532, input: 65532, output: 2048 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, input: 204800, output: 131072 }, - }, - "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24b Instruct", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "baseten/Kimi-K2-Instruct-FP4": { - id: "baseten/Kimi-K2-Instruct-FP4", - name: "Kimi K2 0711 Instruct FP4", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "GalrionSoftworks/MN-LooseCannon-12B-v1": { - id: "GalrionSoftworks/MN-LooseCannon-12B-v1", - name: "MN-LooseCannon-12B-v1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B": { - id: "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B", - name: "Tongyi DeepResearch 30B A3B", - family: "yi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.24000000000000002 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "Steelskull/L3.3-Electra-R1-70b": { - id: "Steelskull/L3.3-Electra-R1-70b", - name: "Steelskull Electra R1 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.69989, output: 0.69989 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Evalebis-70b": { - id: "Steelskull/L3.3-MS-Evalebis-70b", - name: "MS Evalebis 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-Cu-Mai-R1-70b": { - id: "Steelskull/L3.3-Cu-Mai-R1-70b", - name: "Llama 3.3 70B Cu Mai", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-Nevoria-R1-70b": { - id: "Steelskull/L3.3-Nevoria-R1-70b", - name: "Steelskull Nevoria R1 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Nevoria-70b": { - id: "Steelskull/L3.3-MS-Nevoria-70b", - name: "Steelskull Nevoria 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Evayale-70B": { - id: "Steelskull/L3.3-MS-Evayale-70B", - name: "Evayale 70b ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Salesforce/Llama-xLAM-2-70b-fc-r": { - id: "Salesforce/Llama-xLAM-2-70b-fc-r", - name: "Llama-xLAM-2 70B fc-r", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-13", - last_updated: "2025-04-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "LatitudeGames/Wayfarer-Large-70B-Llama-3.3": { - id: "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", - name: "Llama 3.3 70B Wayfarer", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.700000007, output: 0.700000007 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "TheDrummer 2/Cydonia-24B-v4.3": { - id: "TheDrummer 2/Cydonia-24B-v4.3", - name: "The Drummer Cydonia 24B v4.3", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-25", - last_updated: "2025-12-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "TheDrummer 2/Anubis-70B-v1": { - id: "TheDrummer 2/Anubis-70B-v1", - name: "Anubis 70B v1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 65536, input: 65536, output: 16384 }, - }, - "TheDrummer 2/Cydonia-24B-v4": { - id: "TheDrummer 2/Cydonia-24B-v4", - name: "The Drummer Cydonia 24B v4", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2414 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/Magidonia-24B-v4.3": { - id: "TheDrummer 2/Magidonia-24B-v4.3", - name: "The Drummer Magidonia 24B v4.3", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-25", - last_updated: "2025-12-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "TheDrummer 2/Anubis-70B-v1.1": { - id: "TheDrummer 2/Anubis-70B-v1.1", - name: "Anubis 70B v1.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "TheDrummer 2/Rocinante-12B-v1.1": { - id: "TheDrummer 2/Rocinante-12B-v1.1", - name: "Rocinante 12b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.408, output: 0.595 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "TheDrummer 2/Cydonia-24B-v2": { - id: "TheDrummer 2/Cydonia-24B-v2", - name: "The Drummer Cydonia 24B v2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/skyfall-36b-v2": { - id: "TheDrummer 2/skyfall-36b-v2", - name: "TheDrummer Skyfall 36B V2", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 64000, input: 64000, output: 32768 }, - }, - "TheDrummer 2/UnslopNemo-12B-v4.1": { - id: "TheDrummer 2/UnslopNemo-12B-v4.1", - name: "UnslopNemo 12b v4", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "TheDrummer 2/Cydonia-24B-v4.1": { - id: "TheDrummer 2/Cydonia-24B-v4.1", - name: "The Drummer Cydonia 24B v4.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "shisa-ai/shisa-v2.1-llama3.3-70b": { - id: "shisa-ai/shisa-v2.1-llama3.3-70b", - name: "Shisa V2.1 Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 32768, input: 32768, output: 4096 }, - }, - "shisa-ai/shisa-v2-llama3.3-70b": { - id: "shisa-ai/shisa-v2-llama3.3-70b", - name: "Shisa V2 Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "anthropic/claude-sonnet-4.6:thinking": { - id: "anthropic/claude-sonnet-4.6:thinking", - name: "Claude Sonnet 4.6 Thinking", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.993999999999998 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:low": { - id: "anthropic/claude-opus-4.6:thinking:low", - name: "Claude 4.6 Opus Thinking Low", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking": { - id: "anthropic/claude-opus-4.6:thinking", - name: "Claude 4.6 Opus Thinking", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.993999999999998 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:medium": { - id: "anthropic/claude-opus-4.6:thinking:medium", - name: "Claude 4.6 Opus Thinking Medium", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:max": { - id: "anthropic/claude-opus-4.6:thinking:max", - name: "Claude 4.6 Opus Thinking Max", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude 4.6 Opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "miromind-ai/mirothinker-v1.5-235b": { - id: "miromind-ai/mirothinker-v1.5-235b", - name: "MiroThinker v1.5 235B", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-07", - last_updated: "2026-01-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 32768, input: 32768, output: 4000 }, - }, - "Sao10K/L3.1-70B-Hanami-x1": { - id: "Sao10K/L3.1-70B-Hanami-x1", - name: "Llama 3.1 70B Hanami", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Sao10K/L3.3-70B-Euryale-v2.3": { - id: "Sao10K/L3.3-70B-Euryale-v2.3", - name: "Llama 3.3 70B Euryale", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 20480, input: 20480, output: 16384 }, - }, - "Sao10K/L3.1-70B-Euryale-v2.2": { - id: "Sao10K/L3.1-70B-Euryale-v2.2", - name: "Llama 3.1 70B Euryale", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.357 }, - limit: { context: 20480, input: 20480, output: 16384 }, - }, - "Sao10K/L3-8B-Stheno-v3.2": { - id: "Sao10K/L3-8B-Stheno-v3.2", - name: "Sao10K Stheno 8b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated": { - id: "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", - name: "DeepSeek R1 Llama 70B Abliterated", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { - id: "huihui-ai/Qwen2.5-32B-Instruct-abliterated", - name: "Qwen 2.5 32B Abliterated", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-06", - last_updated: "2025-01-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated": { - id: "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", - name: "DeepSeek R1 Qwen Abliterated", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 1.4 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/Llama-3.3-70B-Instruct-abliterated": { - id: "huihui-ai/Llama-3.3-70B-Instruct-abliterated", - name: "Llama 3.3 70B Instruct abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated": { - id: "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", - name: "Nemotron 3.1 70B abliterated", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "inflection/inflection-3-productivity": { - id: "inflection/inflection-3-productivity", - name: "Inflection 3 Productivity", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "inflection/inflection-3-pi": { - id: "inflection/inflection-3-pi", - name: "Inflection 3 Pi", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "dmind/dmind-1-mini": { - id: "dmind/dmind-1-mini", - name: "DMind-1-Mini", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.4 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "dmind/dmind-1": { - id: "dmind/dmind-1", - name: "DMind-1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.6 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2": { - id: "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", - name: "EVA-Qwen2.5-72B-v0.2", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0": { - id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0", - name: "EVA Llama 3.33 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1": { - id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1", - name: "EVA-LLaMA-3.33-70B-v0.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2": { - id: "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2", - name: "EVA-Qwen2.5-32B-v0.2", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - }, - }, - cerebras: { - id: "cerebras", - env: ["CEREBRAS_API_KEY"], - npm: "@ai-sdk/cerebras", - name: "Cerebras", - doc: "https://inference-docs.cerebras.ai/models/overview", - models: { - "qwen-3-235b-a22b-instruct-2507": { - id: "qwen-3-235b-a22b-instruct-2507", - name: "Qwen 3 235B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.2 }, - limit: { context: 131000, output: 32000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.69 }, - limit: { context: 131072, output: 32768 }, - }, - "llama3.1-8b": { - id: "llama3.1-8b", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 32000, output: 8000 }, - }, - "zai-glm-4.7": { - id: "zai-glm-4.7", - name: "Z.AI GLM-4.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.25, output: 2.75, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 40000 }, - }, - }, - }, - azure: { - id: "azure", - env: ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], - npm: "@ai-sdk/azure", - name: "Azure", - doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - models: { - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "phi-3-small-128k-instruct": { - id: "phi-3-small-128k-instruct", - name: "Phi-3-small-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "Grok 4 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "phi-3-medium-128k-instruct": { - id: "phi-3-medium-128k-instruct", - name: "Phi-3-medium-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-4-multimodal": { - id: "phi-4-multimodal", - name: "Phi-4-multimodal", - family: "phi", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.32, input_audio: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "mai-ds-r1": { - id: "mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "phi-3.5-moe-instruct": { - id: "phi-3.5-moe-instruct", - name: "Phi-3.5-MoE-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.64 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4-turbo-vision": { - id: "gpt-4-turbo-vision", - name: "GPT-4 Turbo Vision", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "ministral-3b": { - id: "ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "llama-3.2-90b-vision-instruct": { - id: "llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.04, output: 2.04 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 32768 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 128000, input: 128000, output: 8192 }, - status: "beta", - }, - "phi-3.5-mini-instruct": { - id: "phi-3.5-mini-instruct", - name: "Phi-3.5-mini-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere-command-a": { - id: "cohere-command-a", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 131072, output: 131072 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 128000, input: 128000, output: 8192 }, - status: "beta", - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 272000, output: 128000 }, - }, - "llama-4-scout-17b-16e-instruct": { - id: "llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.78 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama-3.1-405b-instruct": { - id: "meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 5.33, output: 16 }, - limit: { context: 128000, output: 32768 }, - }, - "cohere-command-r-plus-08-2024": { - id: "cohere-command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-5.2-chat": { - id: "gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5-chat": { - id: "gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-10-24", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "gpt-5.1-chat": { - id: "gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "meta-llama-3-8b-instruct": { - id: "meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 8192, output: 2048 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "llama-3.2-11b-vision-instruct": { - id: "llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.37, output: 0.37 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama-3-70b-instruct": { - id: "meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 8192, output: 2048 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "gpt-3.5-turbo-0301": { - id: "gpt-3.5-turbo-0301", - name: "GPT-3.5 Turbo 0301", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "phi-4-mini": { - id: "phi-4-mini", - name: "Phi-4-mini", - family: "phi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3.2-speciale": { - id: "deepseek-v3.2-speciale", - name: "DeepSeek-V3.2-Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "cohere-command-r-08-2024": { - id: "cohere-command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-3.5-turbo-0613": { - id: "gpt-3.5-turbo-0613", - name: "GPT-3.5 Turbo 0613", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16384, output: 16384 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", - shape: "completions", - }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.14, output: 4.56 }, - limit: { context: 131072, output: 131072 }, - }, - "model-router": { - id: "model-router", - name: "Model Router", - family: "model-router", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-05-19", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "cohere-embed-v-4-0": { - id: "cohere-embed-v-4-0", - name: "Embed v4", - family: "cohere-embed", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0 }, - limit: { context: 128000, output: 1536 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "gpt-4-32k": { - id: "gpt-4-32k", - name: "GPT-4 32K", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 32768, output: 32768 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 272000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "phi-4": { - id: "phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "phi-4-reasoning-plus": { - id: "phi-4-reasoning-plus", - name: "Phi-4-reasoning-plus", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "codex-mini": { - id: "codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "phi-3-mini-4k-instruct": { - id: "phi-3-mini-4k-instruct", - name: "Phi-3-mini-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 4096, output: 1024 }, - }, - "meta-llama-3.1-70b-instruct": { - id: "meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 128000, output: 32768 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 66, cache_read: 8.25 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.3-chat": { - id: "gpt-5.3-chat", - name: "GPT-5.3 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "meta-llama-3.1-8b-instruct": { - id: "meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "phi-4-mini-reasoning": { - id: "phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-3.5-turbo-0125": { - id: "gpt-3.5-turbo-0125", - name: "GPT-3.5 Turbo 0125", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16384, output: 16384 }, - }, - "cohere-embed-v3-multilingual": { - id: "cohere-embed-v3-multilingual", - name: "Embed v3 Multilingual", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "phi-3-medium-4k-instruct": { - id: "phi-3-medium-4k-instruct", - name: "Phi-3-medium-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 4096, output: 1024 }, - }, - "cohere-embed-v3-english": { - id: "cohere-embed-v3-english", - name: "Embed v3 English", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - }, - "phi-3-mini-128k-instruct": { - id: "phi-3-mini-128k-instruct", - name: "Phi-3-mini-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "phi-4-reasoning": { - id: "phi-4-reasoning", - name: "Phi-4-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "gpt-3.5-turbo-1106": { - id: "gpt-3.5-turbo-1106", - name: "GPT-3.5 Turbo 1106", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 16384, output: 16384 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-3.5-turbo-instruct": { - id: "gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-09-21", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "mistral-small-2503": { - id: "mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 32768 }, - }, - "codestral-2501": { - id: "codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "phi-3-small-8k-instruct": { - id: "phi-3-small-8k-instruct", - name: "Phi-3-small-instruct (8k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - cortecs: { - id: "cortecs", - env: ["CORTECS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.cortecs.ai/v1", - name: "Cortecs", - doc: "https://api.cortecs.ai/v1/models", - models: { - "kimi-k2-instruct": { - id: "kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-07-11", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.551, output: 2.646 }, - limit: { context: 131000, output: 131000 }, - }, - "claude-opus4-6": { - id: "claude-opus4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5.98, output: 29.89 }, - limit: { context: 1000000, output: 1000000 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.164, output: 1.311 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.441, output: 1.984 }, - limit: { context: 262000, output: 262000 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.34 }, - limit: { context: 131072, output: 131072 }, - }, - "claude-4-6-sonnet": { - id: "claude-4-6-sonnet", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.59, output: 17.92 }, - limit: { context: 1000000, output: 1000000 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 2.46 }, - limit: { context: 131072, output: 131072 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.53 }, - limit: { context: 203000, output: 203000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.099, output: 0.33 }, - limit: { context: 16384, output: 16384 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.34, output: 1.34 }, - limit: { context: 196000, output: 196000 }, - }, - "devstral-small-2512": { - id: "devstral-small-2512", - name: "Devstral Small 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 262000 }, - }, - "intellect-3": { - id: "intellect-3", - name: "INTELLECT 3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.219, output: 1.202 }, - limit: { context: 128000, output: 128000 }, - }, - "nova-pro-v1": { - id: "nova-pro-v1", - name: "Nova Pro 1.0", - family: "nova-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.016, output: 4.061 }, - limit: { context: 300000, output: 5000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT Oss 120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.76 }, - limit: { context: 256000, output: 256000 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.551, output: 1.654 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT 4.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.354, output: 9.417 }, - limit: { context: 1047576, output: 32768 }, - }, - "llama-3.1-405b-instruct": { - id: "llama-3.1-405b-instruct", - name: "Llama 3.1 405B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 262000 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.23 }, - limit: { context: 198000, output: 198000 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.656, output: 2.731 }, - limit: { context: 262000, output: 262000 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.09, output: 5.43 }, - limit: { context: 200000, output: 200000 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-11", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.57 }, - limit: { context: 400000, output: 400000 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.32, output: 1.18 }, - limit: { context: 196608, output: 196608 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.307, output: 16.536 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus4-5": { - id: "claude-opus4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5.98, output: 29.89 }, - limit: { context: 200000, output: 200000 }, - }, - "claude-4-5-sonnet": { - id: "claude-4-5-sonnet", - name: "Claude 4.5 Sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.259, output: 16.296 }, - limit: { context: 200000, output: 200000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.654, output: 11.024 }, - limit: { context: 1048576, output: 65535 }, - }, - }, - }, - xai: { - id: "xai", - env: ["XAI_API_KEY"], - npm: "@ai-sdk/xai", - name: "xAI", - doc: "https://docs.x.ai/docs/models", - models: { - "grok-2-1212": { - id: "grok-2-1212", - name: "Grok 2 (1212)", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-12-12", - last_updated: "2024-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4.20-multi-agent-0309": { - id: "grok-4.20-multi-agent-0309", - name: "Grok 4.20 Multi-Agent", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-2": { - id: "grok-2", - name: "Grok 2", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-fast-latest": { - id: "grok-3-fast-latest", - name: "Grok 3 Fast Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-2-vision": { - id: "grok-2-vision", - name: "Grok 2 Vision", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "grok-2-vision-1212": { - id: "grok-2-vision-1212", - name: "Grok 2 Vision (1212)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-beta": { - id: "grok-beta", - name: "Grok Beta", - family: "grok-beta", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15, cache_read: 5 }, - limit: { context: 131072, output: 4096 }, - }, - "grok-3-mini-fast": { - id: "grok-3-mini-fast", - name: "Grok 3 Mini Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast": { - id: "grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "grok-3-latest": { - id: "grok-3-latest", - name: "Grok 3 Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-1-fast": { - id: "grok-4-1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-2-vision-latest": { - id: "grok-2-vision-latest", - name: "Grok 2 Vision Latest", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-3-mini-latest": { - id: "grok-3-mini-latest", - name: "Grok 3 Mini Latest", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-mini-fast-latest": { - id: "grok-3-mini-fast-latest", - name: "Grok 3 Mini Fast Latest", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4.20-0309-reasoning": { - id: "grok-4.20-0309-reasoning", - name: "Grok 4.20 (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-2-latest": { - id: "grok-2-latest", - name: "Grok 2 Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-vision-beta": { - id: "grok-vision-beta", - name: "Grok Vision Beta", - family: "grok-vision", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15, cache_read: 5 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-4.20-0309-non-reasoning": { - id: "grok-4.20-0309-non-reasoning", - name: "Grok 4.20 (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3-fast": { - id: "grok-3-fast", - name: "Grok 3 Fast", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - }, - }, - "alibaba-cn": { - id: "alibaba-cn", - env: ["DASHSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://dashscope.aliyuncs.com/compatible-mode/v1", - name: "Alibaba (China)", - doc: "https://www.alibabacloud.com/help/en/model-studio/models", - models: { - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen-VL Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-08-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen-VL Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.574 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-math-plus": { - id: "qwen-math-plus", - name: "Qwen Math Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-08-16", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 4096, output: 3072 }, - }, - "deepseek-v3-1": { - id: "deepseek-v3-1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 131072, output: 65536 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.15 }, - limit: { context: 202752, output: 16384 }, - }, - "qwen2-5-coder-7b-instruct": { - id: "qwen2-5-coder-7b-instruct", - name: "Qwen2.5-Coder 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.287 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next 80B-A3B (Thinking)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 1.434 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 1.147 }, - limit: { context: 65536, output: 8192 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3-Coder 480B-A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.861, output: 3.441 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-long": { - id: "qwen-long", - name: "Qwen Long", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.072, output: 0.287 }, - limit: { context: 10000000, output: 8192 }, - }, - "qwen3-14b": { - id: "qwen3-14b", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.574, reasoning: 1.434 }, - limit: { context: 131072, output: 8192 }, - }, - "qwq-32b": { - id: "qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.144, output: 0.574 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-vl-30b-a3b": { - id: "qwen3-vl-30b-a3b", - name: "Qwen3-VL 30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.108, output: 0.431, reasoning: 1.076 }, - limit: { context: 131072, output: 32768 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen3-asr-flash": { - id: "qwen3-asr-flash", - name: "Qwen3-ASR Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.032, output: 0.032 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.345, output: 1.377 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1-distill-qwen-14b": { - id: "deepseek-r1-distill-qwen-14b", - name: "DeepSeek R1 Distill Qwen 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.144, output: 0.431 }, - limit: { context: 32768, output: 16384 }, - }, - "moonshot-kimi-k2-instruct": { - id: "moonshot-kimi-k2-instruct", - name: "Moonshot Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-doc-turbo": { - id: "qwen-doc-turbo", - name: "Qwen Doc Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.087, output: 0.144 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11-01", - last_updated: "2025-07-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.044, output: 0.087, reasoning: 0.431 }, - limit: { context: 1000000, output: 16384 }, - }, - "qwen2-5-7b-instruct": { - id: "qwen2-5-7b-instruct", - name: "Qwen2.5 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.144 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5-VL 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.294, output: 6.881 }, - limit: { context: 131072, output: 8192 }, - }, - "tongyi-intent-detect-v3": { - id: "tongyi-intent-detect-v3", - name: "Tongyi Intent Detect V3", - family: "yi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.058, output: 0.144 }, - limit: { context: 8192, output: 1024 }, - }, - "qwen2-5-14b-instruct": { - id: "qwen2-5-14b-instruct", - name: "Qwen2.5 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.431 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-8b": { - id: "qwen3-8b", - name: "Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.287, reasoning: 0.717 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 2.58, reasoning: 2.58 }, - limit: { context: 262144, output: 65536 }, - }, - "qvq-max": { - id: "qvq-max", - name: "QVQ Max", - family: "qvq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.147, output: 4.588 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-omni-7b": { - id: "qwen2-5-omni-7b", - name: "Qwen2.5-Omni 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.087, output: 0.345, input_audio: 5.448 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen-plus-character": { - id: "qwen-plus-character", - name: "Qwen Plus Character", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287 }, - limit: { context: 32768, output: 4096 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen2-5-vl-7b-instruct": { - id: "qwen2-5-vl-7b-instruct", - name: "Qwen2.5-VL 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.717 }, - limit: { context: 131072, output: 8192 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Moonshot Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: false, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.411 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen-omni-turbo-realtime": { - id: "qwen-omni-turbo-realtime", - name: "Qwen-Omni Turbo Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 32768, output: 2048 }, - }, - "deepseek-v3-2-exp": { - id: "deepseek-v3-2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.431 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek-r1-distill-llama-8b": { - id: "deepseek-r1-distill-llama-8b", - name: "DeepSeek R1 Distill Llama 8B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.216, output: 0.861 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-omni-turbo": { - id: "qwen-omni-turbo", - name: "Qwen-Omni Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-19", - last_updated: "2025-03-26", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen-mt-plus": { - id: "qwen-mt-plus", - name: "Qwen-MT Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.259, output: 0.775 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen3.5-flash": { - id: "qwen3.5-flash", - name: "Qwen3.5 Flash", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-23", - last_updated: "2026-02-23", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.172, output: 1.72, reasoning: 1.72 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen2-5-math-7b-instruct": { - id: "qwen2-5-math-7b-instruct", - name: "Qwen2.5-Math 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.287 }, - limit: { context: 4096, output: 3072 }, - }, - "deepseek-r1-distill-qwen-1-5b": { - id: "deepseek-r1-distill-qwen-1-5b", - name: "DeepSeek R1 Distill Qwen 1.5B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 16384 }, - }, - "deepseek-r1-distill-qwen-7b": { - id: "deepseek-r1-distill-qwen-7b", - name: "DeepSeek R1 Distill Qwen 7B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.072, output: 0.144 }, - limit: { context: 32768, output: 16384 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Moonshot Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 262144, output: 16384 }, - }, - "deepseek-r1-distill-qwen-32b": { - id: "deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen-deep-research": { - id: "qwen-deep-research", - name: "Qwen Deep Research", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.742, output: 23.367 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.143353, output: 1.433525, reasoning: 4.300576 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen2-5-math-72b-instruct": { - id: "qwen2-5-math-72b-instruct", - name: "Qwen2.5-Math 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 4096, output: 3072 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287, reasoning: 1.147 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-32b-instruct": { - id: "qwen2-5-32b-instruct", - name: "Qwen2.5 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next 80B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.574 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.573, output: 3.44, reasoning: 3.44 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.861, output: 3.441 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-omni-flash": { - id: "qwen3-omni-flash", - name: "Qwen3-Omni Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen-math-turbo": { - id: "qwen-math-turbo", - name: "Qwen Math Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 4096, output: 3072 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.022, output: 0.216 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-72b-instruct": { - id: "qwen2-5-72b-instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-omni-flash-realtime": { - id: "qwen3-omni-flash-realtime", - name: "Qwen3-Omni Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen-vl-ocr": { - id: "qwen-vl-ocr", - name: "Qwen-VL OCR", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-28", - last_updated: "2025-04-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.717, output: 0.717 }, - limit: { context: 34096, output: 4096 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.574 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3-VL 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.286705, output: 1.14682, reasoning: 2.867051 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-mt-turbo": { - id: "qwen-mt-turbo", - name: "Qwen-MT Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.101, output: 0.28 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen2-5-coder-32b-instruct": { - id: "qwen2-5-coder-32b-instruct", - name: "Qwen2.5-Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1048576, output: 65536 }, - }, - "kimi/kimi-k2.5": { - id: "kimi/kimi-k2.5", - name: "kimi/kimi-k2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "siliconflow/deepseek-r1-0528": { - id: "siliconflow/deepseek-r1-0528", - name: "siliconflow/deepseek-r1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 163840, output: 32768 }, - }, - "siliconflow/deepseek-v3-0324": { - id: "siliconflow/deepseek-v3-0324", - name: "siliconflow/deepseek-v3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 163840, output: 163840 }, - }, - "siliconflow/deepseek-v3.1-terminus": { - id: "siliconflow/deepseek-v3.1-terminus", - name: "siliconflow/deepseek-v3.1-terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 163840, output: 65536 }, - }, - "siliconflow/deepseek-v3.2": { - id: "siliconflow/deepseek-v3.2", - name: "siliconflow/deepseek-v3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 163840, output: 65536 }, - }, - "MiniMax/MiniMax-M2.5": { - id: "MiniMax/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.301, output: 1.205 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - chutes: { - id: "chutes", - env: ["CHUTES_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://llm.chutes.ai/v1", - name: "Chutes", - doc: "https://llm.chutes.ai/v1/models", - models: { - "zai-org/GLM-4.7-FP8": { - id: "zai-org/GLM-4.7-FP8", - name: "GLM 4.7 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM 4.5 Air", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 131072, output: 131072 }, - }, - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM 4.7 Flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.35 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.7-TEE": { - id: "zai-org/GLM-4.7-TEE", - name: "GLM 4.7 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.6-TEE": { - id: "zai-org/GLM-4.6-TEE", - name: "GLM 4.6 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.7, cache_read: 0.2 }, - limit: { context: 202752, output: 65536 }, - }, - "zai-org/GLM-4.5-FP8": { - id: "zai-org/GLM-4.5-FP8", - name: "GLM 4.5 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 131072, output: 65536 }, - }, - "zai-org/GLM-5-TEE": { - id: "zai-org/GLM-5-TEE", - name: "GLM 5 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "GLM 4.6V", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9, cache_read: 0.15 }, - limit: { context: 131072, output: 65536 }, - }, - "zai-org/GLM-4.6-FP8": { - id: "zai-org/GLM-4.6-FP8", - name: "GLM 4.6 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.5-TEE": { - id: "zai-org/GLM-4.5-TEE", - name: "GLM 4.5 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.55 }, - limit: { context: 131072, output: 65536 }, - }, - "zai-org/GLM-5-Turbo": { - id: "zai-org/GLM-5-Turbo", - name: "GLM 5 Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 1.96, cache_read: 0.245 }, - limit: { context: 202752, output: 65535 }, - }, - "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { - id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", - name: "NVIDIA Nemotron 3 Nano 30B A3B BF16", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 262144, output: 262144 }, - }, - "NousResearch/Hermes-4.3-36B": { - id: "NousResearch/Hermes-4.3-36B", - name: "Hermes 4.3 36B", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.39 }, - limit: { context: 32768, output: 8192 }, - }, - "NousResearch/DeepHermes-3-Mistral-24B-Preview": { - id: "NousResearch/DeepHermes-3-Mistral-24B-Preview", - name: "DeepHermes 3 Mistral 24B Preview", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.1 }, - limit: { context: 32768, output: 32768 }, - }, - "NousResearch/Hermes-4-14B": { - id: "NousResearch/Hermes-4-14B", - name: "Hermes 4 14B", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.05 }, - limit: { context: 40960, output: 40960 }, - }, - "NousResearch/Hermes-4-405B-FP8-TEE": { - id: "NousResearch/Hermes-4-405B-FP8-TEE", - name: "Hermes 4 405B FP8 TEE", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 131072, output: 65536 }, - }, - "NousResearch/Hermes-4-70B": { - id: "NousResearch/Hermes-4-70B", - name: "Hermes 4 70B", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.38 }, - limit: { context: 131072, output: 131072 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29 }, - limit: { context: 262144, output: 32000 }, - }, - "MiniMaxAI/MiniMax-M2.5-TEE": { - id: "MiniMaxAI/MiniMax-M2.5-TEE", - name: "MiniMax M2.5 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.1, cache_read: 0.15 }, - limit: { context: 196608, output: 65536 }, - }, - "MiniMaxAI/MiniMax-M2.1-TEE": { - id: "MiniMaxAI/MiniMax-M2.1-TEE", - name: "MiniMax M2.1 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.12 }, - limit: { context: 196608, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus-TEE": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus-TEE", - name: "DeepSeek V3.1 Terminus TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.23, output: 0.9 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.2-TEE": { - id: "deepseek-ai/DeepSeek-V3.2-TEE", - name: "DeepSeek V3.2 TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.14 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3-0324-TEE": { - id: "deepseek-ai/DeepSeek-V3-0324-TEE", - name: "DeepSeek V3 0324 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.19, output: 0.87, cache_read: 0.095 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.2-Speciale-TEE": { - id: "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", - name: "DeepSeek V3.2 Speciale TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-R1-TEE": { - id: "deepseek-ai/DeepSeek-R1-TEE", - name: "DeepSeek R1 TEE", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Llama-70B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3.1-TEE": { - id: "deepseek-ai/DeepSeek-V3.1-TEE", - name: "DeepSeek V3.1 TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-R1-0528-TEE": { - id: "deepseek-ai/DeepSeek-R1-0528-TEE", - name: "DeepSeek R1 0528 TEE", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.75 }, - limit: { context: 163840, output: 65536 }, - }, - "rednote-hilab/dots.ocr": { - id: "rednote-hilab/dots.ocr", - name: "dots.ocr", - family: "rednote", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 131072, output: 131072 }, - }, - "unsloth/Mistral-Nemo-Instruct-2407": { - id: "unsloth/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04, cache_read: 0.01 }, - limit: { context: 131072, output: 131072 }, - }, - "unsloth/Mistral-Small-24B-Instruct-2501": { - id: "unsloth/Mistral-Small-24B-Instruct-2501", - name: "Mistral Small 24B Instruct 2501", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 32768, output: 32768 }, - }, - "unsloth/gemma-3-12b-it": { - id: "unsloth/gemma-3-12b-it", - name: "gemma 3 12b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "unsloth/gemma-3-4b-it": { - id: "unsloth/gemma-3-4b-it", - name: "gemma 3 4b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 96000, output: 96000 }, - }, - "unsloth/gemma-3-27b-it": { - id: "unsloth/gemma-3-27b-it", - name: "gemma 3 27b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15, cache_read: 0.02 }, - limit: { context: 128000, output: 65536 }, - }, - "unsloth/Llama-3.2-1B-Instruct": { - id: "unsloth/Llama-3.2-1B-Instruct", - name: "Llama 3.2 1B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 32768, output: 8192 }, - }, - "unsloth/Llama-3.2-3B-Instruct": { - id: "unsloth/Llama-3.2-3B-Instruct", - name: "Llama 3.2 3B Instruct", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-02-12", - last_updated: "2025-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 16384, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.9, cache_read: 0.195 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2.5-TEE": { - id: "moonshotai/Kimi-K2.5-TEE", - name: "Kimi K2.5 TEE", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 65535 }, - }, - "moonshotai/Kimi-K2-Thinking-TEE": { - id: "moonshotai/Kimi-K2-Thinking-TEE", - name: "Kimi K2 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.75 }, - limit: { context: 262144, output: 65535 }, - }, - "Qwen/Qwen3-30B-A3B": { - id: "Qwen/Qwen3-30B-A3B", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.22 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.33 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3.5-397B-A17B-TEE": { - id: "Qwen/Qwen3.5-397B-A17B-TEE", - name: "Qwen3.5 397B A17B TEE", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 2.34, cache_read: 0.195 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-Next": { - id: "Qwen/Qwen3-Coder-Next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE", - name: "Qwen3 Coder 480B A35B Instruct FP8 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.95, cache_read: 0.11 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE", - name: "Qwen3 235B A22B Instruct 2507 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.55, cache_read: 0.04 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B": { - id: "Qwen/Qwen3-235B-A22B", - name: "Qwen3 235B A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct-TEE": { - id: "Qwen/Qwen2.5-VL-72B-Instruct-TEE", - name: "Qwen2.5 VL 72B Instruct TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3Guard-Gen-0.6B": { - id: "Qwen/Qwen3Guard-Gen-0.6B", - name: "Qwen3Guard Gen 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 32768, output: 8192 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 16384, output: 16384 }, - }, - "tngtech/DeepSeek-R1T-Chimera": { - id: "tngtech/DeepSeek-R1T-Chimera", - name: "DeepSeek R1T Chimera", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, - }, - "tngtech/DeepSeek-TNG-R1T2-Chimera": { - id: "tngtech/DeepSeek-TNG-R1T2-Chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85 }, - limit: { context: 163840, output: 163840 }, - }, - "tngtech/TNG-R1T-Chimera-Turbo": { - id: "tngtech/TNG-R1T-Chimera-Turbo", - name: "TNG R1T Chimera Turbo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.6 }, - limit: { context: 163840, output: 65536 }, - }, - "tngtech/TNG-R1T-Chimera-TEE": { - id: "tngtech/TNG-R1T-Chimera-TEE", - name: "TNG R1T Chimera TEE", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85 }, - limit: { context: 163840, output: 65536 }, - }, - "mistralai/Devstral-2-123B-Instruct-2512-TEE": { - id: "mistralai/Devstral-2-123B-Instruct-2512-TEE", - name: "Devstral 2 123B Instruct 2512 TEE", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 262144, output: 65536 }, - }, - "openai/gpt-oss-120b-TEE": { - id: "openai/gpt-oss-120b-TEE", - name: "gpt oss 120b TEE", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.18 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt oss 20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct 2506", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.18 }, - limit: { context: 131072, output: 131072 }, - }, - "chutesai/Mistral-Small-3.1-24B-Instruct-2503": { - id: "chutesai/Mistral-Small-3.1-24B-Instruct-2503", - name: "Mistral Small 3.1 24B Instruct 2503", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11, cache_read: 0.015 }, - limit: { context: 131072, output: 131072 }, - }, - "miromind-ai/MiroThinker-v1.5-235B": { - id: "miromind-ai/MiroThinker-v1.5-235B", - name: "MiroThinker V1.5 235B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.15 }, - limit: { context: 262144, output: 8192 }, - }, - "OpenGVLab/InternVL3-78B-TEE": { - id: "OpenGVLab/InternVL3-78B-TEE", - name: "InternVL3 78B TEE", - family: "opengvlab", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-06", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.39 }, - limit: { context: 32768, output: 32768 }, - }, - }, - }, -} +export const snapshot = {"302ai":{"id":"302ai","env":["302AI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.302.ai/v1","name":"302.AI","doc":"https://doc.302.ai","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.86},"limit":{"context":128000,"output":16384}},"grok-4.1":{"id":"grok-4.1","name":"grok-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10},"limit":{"context":200000,"output":64000}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-26","last_updated":"2025-10-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":1000000,"output":128000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gemini-2.5-flash-nothink":{"id":"gemini-2.5-flash-nothink","name":"gemini-2.5-flash-nothink","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-24","last_updated":"2025-06-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"kimi-k2-0905-preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.632,"output":2.53},"limit":{"context":262144,"output":262144}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"qwen3-235b-a22b-instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.143},"limit":{"context":128000,"output":65536}},"mistral-large-2512":{"id":"mistral-large-2512","name":"mistral-large-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":3.3},"limit":{"context":128000,"output":262144}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"doubao-seed-1-8-251215","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":0.286},"limit":{"context":224000,"output":64000}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"chatgpt-4o-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-08","last_updated":"2024-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":16384}},"deepseek-chat":{"id":"deepseek-chat","name":"Deepseek-Chat","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"deepseek-v3.2-thinking":{"id":"deepseek-v3.2-thinking","name":"DeepSeek-V3.2-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"gpt-5-thinking":{"id":"gpt-5-thinking","name":"gpt-5-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1000000,"output":65536}},"qwen-plus":{"id":"qwen-plus","name":"Qwen-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":1.2},"limit":{"context":1000000,"output":32768}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1000000,"output":64000}},"qwen3-max-2025-09-23":{"id":"qwen3-max-2025-09-23","name":"qwen3-max-2025-09-23","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":258048,"output":65536}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"qwen-flash":{"id":"qwen-flash","name":"Qwen-Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.22},"limit":{"context":1000000,"output":32768}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"claude-opus-4-5-20251101-thinking":{"id":"claude-opus-4-5-20251101-thinking","name":"claude-opus-4-5-20251101-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"gemini-3-pro-image-preview","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":32768,"output":64000}},"qwen-max-latest":{"id":"qwen-max-latest","name":"Qwen-Max-Latest","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.343,"output":1.372},"limit":{"context":131072,"output":8192}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"gemini-2.5-flash-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":30},"limit":{"context":32768,"output":32768}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":128000,"output":98304}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"gpt-5.2-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"doubao-seed-1-6-vision-250815":{"id":"doubao-seed-1-6-vision-250815","name":"doubao-seed-1-6-vision-250815","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":1.143},"limit":{"context":256000,"output":32000}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":1000000,"output":131072}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"kimi-k2-thinking-turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.265,"output":9.119},"limit":{"context":262144,"output":262144}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"Deepseek-Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"claude-opus-4-1-20250805-thinking":{"id":"claude-opus-4-1-20250805-thinking","name":"claude-opus-4-1-20250805-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-27","last_updated":"2025-05-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":1.08},"limit":{"context":128000,"output":8192}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.86},"limit":{"context":64000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"gemini-2.5-flash-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.145,"output":0.43},"limit":{"context":128000,"output":32768}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"gpt-5.1-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":128000,"output":16384}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax-M1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":1.254},"limit":{"context":1000000,"output":128000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"qwen3-coder-480b-a35b-instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":262144,"output":65536}},"doubao-seed-code-preview-251028":{"id":"doubao-seed-code-preview-251028","name":"doubao-seed-code-preview-251028","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.14},"limit":{"context":256000,"output":32000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"gpt-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":32768}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"gpt-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"gpt-5":{"id":"gpt-5","name":"gpt-5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"claude-sonnet-4-5-20250929-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1000000,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.575,"output":2.3},"limit":{"context":262144,"output":262144}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"gemini-2.0-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-11","release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":2000000,"output":8192}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1000000,"output":32768}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"doubao-seed-1-6-thinking-250715":{"id":"doubao-seed-1-6-thinking-250715","name":"doubao-seed-1-6-thinking-250715","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.121,"output":1.21},"limit":{"context":256000,"output":16000}},"ministral-14b-2512":{"id":"ministral-14b-2512","name":"ministral-14b-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":0.33},"limit":{"context":128000,"output":128000}}}},"alibaba":{"id":"alibaba","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope-intl.aliyuncs.com/compatible-mode/v1","name":"Alibaba","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":34096,"output":4096}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.27,"output":1.07,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.7,"reasoning":2.1},"limit":{"context":131072,"output":8192}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6,"reasoning":3.6},"limit":{"context":262144,"output":65536}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":2.4},"limit":{"context":131072,"output":8192}},"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.63},"limit":{"context":131072,"output":8192}},"qwen3-livetranslate-flash-realtime":{"id":"qwen3-livetranslate-flash-realtime","name":"Qwen3-LiveTranslate Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":10,"output":10,"input_audio":10,"output_audio":38},"limit":{"context":53248,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":6.4},"limit":{"context":32768,"output":8192}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"reasoning":4},"limit":{"context":1000000,"output":32768}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.07,"output":0.27,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":1000000,"output":32768}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.05},"limit":{"context":131072,"output":8192}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.276,"output":1.651,"cache_read":0.028,"cache_write":0.344},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.43,"output":1.66,"input_audio":3.81,"output_audio":15.11},"limit":{"context":65536,"output":16384}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":32768}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.035},"limit":{"context":53248,"output":4096}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":6},"limit":{"context":131072,"output":32768}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.46,"output":7.37},"limit":{"context":16384,"output":8192}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":1000000,"output":65536}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.175,"output":0.7},"limit":{"context":131072,"output":8192}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4},"limit":{"context":131072,"output":8192}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"qwen-plus-character-ja":{"id":"qwen-plus-character-ja","name":"Qwen Plus Character (Japanese)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.4},"limit":{"context":8192,"output":512}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.52,"output":1.99,"input_audio":4.57,"output_audio":18.13},"limit":{"context":65536,"output":16384}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8,"reasoning":2.4},"limit":{"context":131072,"output":32768}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.6,"reasoning":4.8},"limit":{"context":262144,"output":32768}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.5,"output":7.5},"limit":{"context":262144,"output":65536}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.25},"limit":{"context":262144,"output":65536}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2,"reasoning":0.5},"limit":{"context":1000000,"output":16384}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.49},"limit":{"context":16384,"output":8192}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.1,"output":0.4,"input_audio":6.76},"limit":{"context":32768,"output":2048}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.8,"output":8.4},"limit":{"context":131072,"output":8192}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4.8},"limit":{"context":131072,"output":8192}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4,"reasoning":4.2},"limit":{"context":131072,"output":8192}}}},"scaleway":{"id":"scaleway","env":["SCALEWAY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.scaleway.ai/v1","name":"Scaleway","doc":"https://www.scaleway.com/en/docs/generative-apis/","models":{"qwen3-embedding-8b":{"id":"qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-25-11","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":32768,"output":4096}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25},"limit":{"context":260000,"output":16384}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":100000,"output":16384}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":256000,"output":16384}},"devstral-2-123b-instruct-2512":{"id":"devstral-2-123b-instruct-2512","name":"Devstral 2 123B Instruct (2512)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":16384}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":32000,"output":8196}},"pixtral-12b-2409":{"id":"pixtral-12b-2409","name":"Pixtral 12B 2409","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-25","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2026-03-17","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.003,"output":0},"limit":{"context":0,"output":8192}},"voxtral-small-24b-2507":{"id":"voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"voxtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":16384}},"gemma-3-27b-it":{"id":"gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.5},"limit":{"context":40000,"output":8192}},"bge-multilingual-gemma2":{"id":"bge-multilingual-gemma2","name":"BGE Multilingual Gemma2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-07-26","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8191,"output":3072}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":128000,"output":32768}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral Small 3.2 24B Instruct (2506)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":128000,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-25","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":16384}}}},"nano-gpt":{"id":"nano-gpt","env":["NANO_GPT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://nano-gpt.com/api/v1","name":"NanoGPT","doc":"https://docs.nano-gpt.com","models":{"glm-4-flash":{"id":"glm-4-flash","name":"GLM-4 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":4096}},"Meta-Llama-3-1-8B-Instruct-FP8":{"id":"Meta-Llama-3-1-8B-Instruct-FP8","name":"Llama 3.1 8B (decentralized)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"input":128000,"output":16384}},"claude-opus-4-thinking:32000":{"id":"claude-opus-4-thinking:32000","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 0506","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"grok-3-mini-fast-beta":{"id":"grok-3-mini-fast-beta","name":"Grok 3 Mini Fast Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4},"limit":{"context":131072,"input":131072,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-25","last_updated":"2025-10-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.53},"limit":{"context":200000,"input":200000,"output":131072}},"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Cohere Command A (08/2025)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"input":256000,"output":8192}},"brave":{"id":"brave","name":"Brave (Answers)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"exa-research":{"id":"exa-research","name":"Exa (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":8192,"input":8192,"output":8192}},"Llama-3.3-70B-Nova":{"id":"Llama-3.3-70B-Nova","name":"Llama 3.3 70B Nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-exp-1206":{"id":"gemini-exp-1206","name":"Gemini 2.0 Pro 1206","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.258,"output":4.998},"limit":{"context":2097152,"input":2097152,"output":8192}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"auto-model-basic":{"id":"auto-model-basic","name":"Auto model (Basic)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"jamba-mini":{"id":"jamba-mini","name":"Jamba Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"yi-large":{"id":"yi-large","name":"Yi Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.196,"output":3.196},"limit":{"context":32000,"input":32000,"output":4096}},"auto-model-premium":{"id":"auto-model-premium","name":"Auto model (Premium)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"azure-gpt-4o":{"id":"azure-gpt-4o","name":"Azure gpt-4o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek Chat 0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4},"limit":{"context":200000,"input":200000,"output":8192}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"Doubao Seed 1.8","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.612,"output":6.12},"limit":{"context":128000,"input":128000,"output":8192}},"doubao-seed-1-6-250615":{"id":"doubao-seed-1-6-250615","name":"Doubao Seed 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":0.51},"limit":{"context":256000,"input":256000,"output":16384}},"ernie-x1.1-preview":{"id":"ernie-x1.1-preview","name":"ERNIE X1.1","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":64000,"input":64000,"output":8192}},"ernie-5.0-thinking-preview":{"id":"ernie-5.0-thinking-preview","name":"Ernie 5.0 Thinking Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"glm-4-air-0111":{"id":"glm-4-air-0111","name":"GLM 4 Air 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-11","last_updated":"2025-01-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":0.1394},"limit":{"context":128000,"input":128000,"output":4096}},"fastgpt":{"id":"fastgpt","name":"Web Answer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-08-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.5,"output":7.5},"limit":{"context":32768,"input":32768,"output":32768}},"doubao-seed-1-6-thinking-250615":{"id":"doubao-seed-1-6-thinking-250615","name":"Doubao Seed 1.6 Thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":2.04},"limit":{"context":256000,"input":256000,"output":16384}},"gemini-2.0-flash-001":{"id":"gemini-2.0-flash-001","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":1000000,"input":1000000,"output":8192}},"claude-opus-4-1-thinking:32000":{"id":"claude-opus-4-1-thinking:32000","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-RAWMAW":{"id":"Llama-3.3-70B-RAWMAW","name":"Llama 3.3 70B RAWMAW","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Steam":{"id":"GLM-4.5-Air-Derestricted-Steam","name":"GLM 4.5 Air Derestricted Steam","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":220600,"input":220600,"output":65536}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"yi-medium-200k":{"id":"yi-medium-200k","name":"Yi Medium 200k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-01","last_updated":"2024-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":2.499},"limit":{"context":200000,"input":200000,"output":4096}},"Gemma-3-27B-ArliAI-RPMax-v3":{"id":"Gemma-3-27B-ArliAI-RPMax-v3","name":"Gemma 3 27B RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"phi-4-mini-instruct":{"id":"phi-4-mini-instruct","name":"Phi 4 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter":{"id":"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter","name":"Llama 3.3+ 70B TenyxChat DaybreakStorywriter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"ernie-x1-32k":{"id":"ernie-x1-32k","name":"Ernie X1 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek V3/Deepseek Chat","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"glm-z1-air":{"id":"glm-z1-air","name":"GLM Z1 Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"input":32000,"output":16384}},"claude-3-7-sonnet-thinking:128000":{"id":"claude-3-7-sonnet-thinking:128000","name":"Claude 3.7 Sonnet Thinking (128K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"glm-4-air":{"id":"glm-4-air","name":"GLM-4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":4096}},"Llama-3.3-70B-MiraiFanfare":{"id":"Llama-3.3-70B-MiraiFanfare","name":"Llama 3.3 70b Mirai Fanfare","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.0-flash-thinking-exp-01-21":{"id":"gemini-2.0-flash-thinking-exp-01-21","name":"Gemini 2.0 Flash Thinking 0121","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-21","last_updated":"2025-01-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":1.003},"limit":{"context":1000000,"input":1000000,"output":8192}},"Magistral-Small-2506":{"id":"Magistral-Small-2506","name":"Magistral Small 2506","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":32768,"input":32768,"output":32768}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1343,"output":0.3349},"limit":{"context":32000,"input":32000,"output":8192}},"venice-uncensored:web":{"id":"venice-uncensored:web","name":"Venice Uncensored Web","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-01","last_updated":"2024-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":80000,"input":80000,"output":16384}},"glm-4":{"id":"glm-4","name":"GLM-4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-01-16","last_updated":"2024-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":14.994},"limit":{"context":128000,"input":128000,"output":4096}},"qwen-max":{"id":"qwen-max","name":"Qwen 2.5 Max","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5997,"output":6.392},"limit":{"context":32000,"input":32000,"output":8192}},"qwen3-vl-235b-a22b-instruct-original":{"id":"qwen3-vl-235b-a22b-instruct-original","name":"Qwen3 VL 235B A22B Instruct Original","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":32768,"input":32768,"output":32768}},"jamba-large-1.6":{"id":"jamba-large-1.6","name":"Jamba Large 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3995,"output":1.2002},"limit":{"context":995904,"input":995904,"output":32768}},"qwen25-vl-72b-instruct":{"id":"qwen25-vl-72b-instruct","name":"Qwen25 VL 72b","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":32000,"input":32000,"output":32768}},"claude-sonnet-4-thinking:64000":{"id":"claude-sonnet-4-thinking:64000","name":"Claude 4 Sonnet Thinking (64K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1":{"id":"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1","name":"Llama 3.3+ 70B New Dawn v1.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Iceblink-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"universal-summarizer":{"id":"universal-summarizer","name":"Universal Summarizer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-05-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":30},"limit":{"context":32768,"input":32768,"output":32768}},"claude-sonnet-4-thinking:32768":{"id":"claude-sonnet-4-thinking:32768","name":"Claude 4 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"sarvan-medium":{"id":"sarvan-medium","name":"Sarvam Medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"input":128000,"output":16384}},"claude-3-7-sonnet-thinking:8192":{"id":"claude-3-7-sonnet-thinking:8192","name":"Claude 3.7 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash 0520","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048000,"input":1048000,"output":65536}},"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink v2 ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"Llama-3.3-70B-Fallen-v1":{"id":"Llama-3.3-70B-Fallen-v1","name":"Llama 3.3 70B Fallen v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen3-vl-235b-a22b-thinking":{"id":"qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":6},"limit":{"context":32768,"input":32768,"output":32768}},"claude-3-7-sonnet-thinking:32768":{"id":"claude-3-7-sonnet-thinking:32768","name":"Claude 3.7 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"claude-3-7-sonnet-thinking:1024":{"id":"claude-3-7-sonnet-thinking:1024","name":"Claude 3.7 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Vulpecula-R1":{"id":"Llama-3.3-70B-Vulpecula-R1","name":"Llama 3.3 70B Vulpecula R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-sonnet-4-thinking:8192":{"id":"claude-sonnet-4-thinking:8192","name":"Claude 4 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Ignition-v0.1":{"id":"Llama-3.3-70B-Ignition-v0.1","name":"Llama 3.3 70B Ignition v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-4-plus-0111":{"id":"glm-4-plus-0111","name":"GLM 4 Plus 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":9.996},"limit":{"context":128000,"input":128000,"output":4096}},"KAT-Coder-Air-V1":{"id":"KAT-Coder-Air-V1","name":"KAT Coder Air V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"deepseek-r1-sambanova":{"id":"deepseek-r1-sambanova","name":"DeepSeek R1 Fast","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":6.987},"limit":{"context":128000,"input":128000,"output":4096}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":8192}},"doubao-1-5-thinking-pro-250415":{"id":"doubao-1-5-thinking-pro-250415","name":"Doubao 1.5 Thinking Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":128000}},"Gemma-3-27B-it-Abliterated":{"id":"Gemma-3-27B-it-Abliterated","name":"Gemma 3 27B IT Abliterated","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.42,"output":0.42},"limit":{"context":32768,"input":32768,"output":96000}},"deepseek-chat-cheaper":{"id":"deepseek-chat-cheaper","name":"DeepSeek V3/Chat Cheaper","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"gemini-2.0-pro-exp-02-05":{"id":"gemini-2.0-pro-exp-02-05","name":"Gemini 2.0 Pro 0205","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.956},"limit":{"context":2097152,"input":2097152,"output":8192}},"azure-gpt-4o-mini":{"id":"azure-gpt-4o-mini","name":"Azure gpt-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3-70B-MS-Nevoria":{"id":"Llama-3.3-70B-MS-Nevoria","name":"Llama 3.3 70B MS Nevoria","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-thinking":{"id":"claude-opus-4-thinking","name":"Claude 4 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Sapphira-0.1":{"id":"Llama-3.3-70B-Sapphira-0.1","name":"Llama 3.3 70B Sapphira 0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-code-preview-latest":{"id":"doubao-seed-code-preview-latest","name":"Doubao Seed Code Preview","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":256000,"input":256000,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v1.4":{"id":"Llama-3.3-70B-ArliAI-RPMax-v1.4","name":"Llama 3.3 70B RPMax v1.4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"mistral-small-31-24b-instruct":{"id":"mistral-small-31-24b-instruct","name":"Mistral Small 31 24b Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"input":128000,"output":131072}},"glm-4.1v-thinking-flashx":{"id":"glm-4.1v-thinking-flashx","name":"GLM 4.1V Thinking FlashX","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"hunyuan-t1-latest":{"id":"hunyuan-t1-latest","name":"Hunyuan T1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-22","last_updated":"2025-03-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.66},"limit":{"context":256000,"input":256000,"output":16384}},"doubao-1-5-thinking-vision-pro-250428":{"id":"doubao-1-5-thinking-vision-pro-250428","name":"Doubao 1.5 Thinking Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":1.43},"limit":{"context":128000,"input":128000,"output":16384}},"asi1-mini":{"id":"asi1-mini","name":"ASI1 Mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"input":128000,"output":16384}},"ernie-5.0-thinking-latest":{"id":"ernie-5.0-thinking-latest","name":"Ernie 5.0 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3-70B-Incandescent-Malevolence":{"id":"Llama-3.3-70B-Incandescent-Malevolence","name":"Llama 3.3 70B Incandescent Malevolence","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Damascus-R1":{"id":"Llama-3.3-70B-Damascus-R1","name":"Damascus R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Nidum-Uncensored":{"id":"Gemma-3-27B-Nidum-Uncensored","name":"Gemma 3 27B Nidum Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":96000}},"gemini-2.5-flash-lite-preview-09-2025-thinking":{"id":"gemini-2.5-flash-lite-preview-09-2025-thinking","name":"Gemini 2.5 Flash Lite Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"doubao-seed-2-0-pro-260215":{"id":"doubao-seed-2-0-pro-260215","name":"Doubao Seed 2.0 Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.876},"limit":{"context":256000,"input":256000,"output":128000}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"Gemma-3-27B-CardProjector-v4":{"id":"Gemma-3-27B-CardProjector-v4","name":"Gemma 3 27B CardProjector v4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"jamba-mini-1.7":{"id":"jamba-mini-1.7","name":"Jamba Mini 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"Llama-3.3-70B-Forgotten-Safeword-3.6":{"id":"Llama-3.3-70B-Forgotten-Safeword-3.6","name":"Llama 3.3 70B Forgotten Safeword 3.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-1-5-thinking-pro-vision-250415":{"id":"doubao-1-5-thinking-pro-vision-250415","name":"Doubao 1.5 Thinking Pro Vision","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 0605","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"gemini-2.0-pro-reasoner":{"id":"gemini-2.0-pro-reasoner","name":"Gemini 2.0 Pro Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.292,"output":4.998},"limit":{"context":128000,"input":128000,"output":65536}},"doubao-seed-2-0-lite-260215":{"id":"doubao-seed-2-0-lite-260215","name":"Doubao Seed 2.0 Lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1462,"output":0.8738},"limit":{"context":256000,"input":256000,"output":32000}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Deep Research","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-25","last_updated":"2025-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.4,"output":13.6},"limit":{"context":60000,"input":60000,"output":128000}},"Gemma-3-27B-it":{"id":"Gemma-3-27B-it","name":"Gemma 3 27B IT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-GeneticLemonade-Unleashed-v3":{"id":"Llama-3.3-70B-GeneticLemonade-Unleashed-v3","name":"Llama 3.3 70B GeneticLemonade Unleashed v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Glitter":{"id":"Gemma-3-27B-Glitter","name":"Gemma 3 27B Glitter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1","name":"Llama 3.3 70B Omega Directive Unslop v2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":32768}},"gemini-2.5-flash-preview-09-2025-thinking":{"id":"gemini-2.5-flash-preview-09-2025-thinking","name":"Gemini 2.5 Flash Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"deepclaude":{"id":"deepclaude","name":"DeepClaude","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"ernie-4.5-8k-preview":{"id":"ernie-4.5-8k-preview","name":"Ernie 4.5 8k Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":2.6},"limit":{"context":8000,"input":8000,"output":16384}},"doubao-seed-2-0-mini-260215":{"id":"doubao-seed-2-0-mini-260215","name":"Doubao Seed 2.0 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0493,"output":0.4845},"limit":{"context":256000,"input":256000,"output":32000}},"gemini-3-pro-preview-thinking":{"id":"gemini-3-pro-preview-thinking","name":"Gemini 3 Pro Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-GeneticLemonade-Opus":{"id":"Llama-3.3-70B-GeneticLemonade-Opus","name":"Llama 3.3 70B GeneticLemonade Opus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0 1.5 LG","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":1000000,"input":1000000,"output":64000}},"ernie-4.5-turbo-128k":{"id":"ernie-4.5-turbo-128k","name":"Ernie 4.5 Turbo 128k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":0.55},"limit":{"context":128000,"input":128000,"output":16384}},"KAT-Coder-Pro-V1":{"id":"KAT-Coder-Pro-V1","name":"KAT Coder Pro V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6},"limit":{"context":256000,"input":256000,"output":32768}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude 3.5 Sonnet Old","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"claude-opus-4-1-thinking:8192":{"id":"claude-opus-4-1-thinking:8192","name":"Claude 4.1 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.0-flash-exp-image-generation":{"id":"gemini-2.0-flash-exp-image-generation","name":"Gemini Text + Image","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":32767,"input":32767,"output":8192}},"Llama-3.3-70B-Magnum-v4-SE":{"id":"Llama-3.3-70B-Magnum-v4-SE","name":"Llama 3.3 70B Magnum v4 SE","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-zero-preview":{"id":"glm-zero-preview","name":"GLM Zero Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.802,"output":1.802},"limit":{"context":8000,"input":8000,"output":4096}},"study_gpt-chatgpt-4o-latest":{"id":"study_gpt-chatgpt-4o-latest","name":"Study Mode","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.994},"limit":{"context":200000,"input":200000,"output":16384}},"glm-4-airx":{"id":"glm-4-airx","name":"GLM-4 AirX","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":8000,"input":8000,"output":4096}},"step-2-mini":{"id":"step-2-mini","name":"Step-2 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.408},"limit":{"context":8000,"input":8000,"output":4096}},"gemini-2.5-flash-preview-04-17:thinking":{"id":"gemini-2.5-flash-preview-04-17:thinking","name":"Gemini 2.5 Flash Preview Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Mokume-Gane-R1":{"id":"Llama-3.3-70B-Mokume-Gane-R1","name":"Llama 3.3 70B Mokume Gane R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":64000,"input":64000,"output":65536}},"glm-z1-airx":{"id":"glm-z1-airx","name":"GLM Z1 AirX","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"input":32000,"output":16384}},"jamba-mini-1.6":{"id":"jamba-mini-1.6","name":"Jamba Mini 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"claude-opus-4-1-thinking":{"id":"claude-opus-4-1-thinking","name":"Claude 4.1 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"grok-3-beta":{"id":"grok-3-beta","name":"Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":131072,"input":131072,"output":131072}},"Llama-3.3-70B-Legion-V2.1":{"id":"Llama-3.3-70B-Legion-V2.1","name":"Llama 3.3 70B Legion V2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"sonar":{"id":"sonar","name":"Perplexity Simple","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.003,"output":1.003},"limit":{"context":127000,"input":127000,"output":128000}},"z-image-turbo":{"id":"z-image-turbo","name":"Z Image Turbo","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"GLM-4.5-Air-Derestricted-Iceblink-v2":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2","name":"GLM 4.5 Air Derestricted Iceblink v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":158600,"input":158600,"output":65536}},"jamba-large":{"id":"jamba-large","name":"Jamba Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"claude-3-7-sonnet-reasoner":{"id":"claude-3-7-sonnet-reasoner","name":"Claude 3.7 Sonnet Reasoner","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-29","last_updated":"2025-03-29","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"ernie-4.5-turbo-vl-32k":{"id":"ernie-4.5-turbo-vl-32k","name":"Ernie 4.5 Turbo VL 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.495,"output":1.43},"limit":{"context":32000,"input":32000,"output":16384}},"Mistral-Nemo-12B-Instruct-2407":{"id":"Mistral-Nemo-12B-Instruct-2407","name":"Mistral Nemo 12B Instruct 2407","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":16384,"input":16384,"output":16384}},"doubao-seed-1-6-flash-250615":{"id":"doubao-seed-1-6-flash-250615","name":"Doubao Seed 1.6 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0374,"output":0.374},"limit":{"context":256000,"input":256000,"output":16384}},"qwq-32b":{"id":"qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25599999,"output":0.30499999},"limit":{"context":128000,"input":128000,"output":32768}},"Llama-3.3-70B-Strawberrylemonade-v1.2":{"id":"Llama-3.3-70B-Strawberrylemonade-v1.2","name":"Llama 3.3 70B StrawberryLemonade v1.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"ernie-x1-turbo-32k":{"id":"ernie-x1-turbo-32k","name":"Ernie X1 Turbo 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.165,"output":0.66},"limit":{"context":32000,"input":32000,"output":16384}},"deepseek-math-v2":{"id":"deepseek-math-v2","name":"DeepSeek Math V2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"input":128000,"output":65536}},"Llama-3.3-70B-Electranova-v1.0":{"id":"Llama-3.3-70B-Electranova-v1.0","name":"Llama 3.3 70B Electranova v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v2":{"id":"Llama-3.3-70B-ArliAI-RPMax-v2","name":"Llama 3.3 70B ArliAI RPMax v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen-image":{"id":"qwen-image","name":"Qwen Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3-70B-Cu-Mai-R1":{"id":"Llama-3.3-70B-Cu-Mai-R1","name":"Llama 3.3 70B Cu Mai R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Iceblink":{"id":"GLM-4.5-Air-Derestricted-Iceblink","name":"GLM 4.5 Air Derestricted Iceblink","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"Llama-3.3-70B-Bigger-Body":{"id":"Llama-3.3-70B-Bigger-Body","name":"Llama 3.3 70B Bigger Body","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3+(3.1v3.3)-70B-Hanami-x1":{"id":"Llama-3.3+(3.1v3.3)-70B-Hanami-x1","name":"Llama 3.3+ 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"hunyuan-turbos-20250226":{"id":"hunyuan-turbos-20250226","name":"Hunyuan Turbo S","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.187,"output":0.374},"limit":{"context":24000,"input":24000,"output":8192}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"GLM-4.6-Derestricted-v5":{"id":"GLM-4.6-Derestricted-v5","name":"GLM 4.6 Derestricted v5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":131072,"input":131072,"output":8192}},"glm-4-plus":{"id":"glm-4-plus","name":"GLM-4 Plus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.497,"output":7.497},"limit":{"context":128000,"input":128000,"output":4096}},"Gemma-3-27B-Big-Tiger-v3":{"id":"Gemma-3-27B-Big-Tiger-v3","name":"Gemma 3 27B Big Tiger v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"brave-research":{"id":"brave-research","name":"Brave (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":16384,"input":16384,"output":16384}},"hidream":{"id":"hidream","name":"Hidream","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2002,"output":6.001},"limit":{"context":256000,"input":256000,"output":32768}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude 4.1 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"input":200000,"output":64000}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.3328},"limit":{"context":1000000,"input":1000000,"output":131072}},"gemini-2.5-flash-nothinking":{"id":"gemini-2.5-flash-nothinking","name":"Gemini 2.5 Flash (No Thinking)","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"exa-research-pro":{"id":"exa-research-pro","name":"Exa (Research Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":16384,"input":16384,"output":16384}},"grok-3-fast-beta":{"id":"grok-3-fast-beta","name":"Grok 3 Fast Beta","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":131072,"input":131072,"output":131072}},"claude-opus-4-5-20251101:thinking":{"id":"claude-opus-4-5-20251101:thinking","name":"Claude 4.5 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-pro-exp-03-25":{"id":"gemini-2.5-pro-exp-03-25","name":"Gemini 2.5 Pro Experimental 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"claude-3-7-sonnet-thinking":{"id":"claude-3-7-sonnet-thinking","name":"Claude 3.7 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"claude-opus-4-thinking:8192":{"id":"claude-opus-4-thinking:8192","name":"Claude 4 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-sonnet-4-thinking:1024":{"id":"claude-sonnet-4-thinking:1024","name":"Claude 4 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP":{"id":"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP","name":"Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"step-r1-v-mini":{"id":"step-r1-v-mini","name":"Step R1 V Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":11},"limit":{"context":128000,"input":128000,"output":65536}},"ernie-x1-32k-preview":{"id":"ernie-x1-32k-preview","name":"Ernie X1 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"Llama-3.3-70B-StrawberryLemonade-v1.0":{"id":"Llama-3.3-70B-StrawberryLemonade-v1.0","name":"Llama 3.3 70B StrawberryLemonade v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"KAT-Coder-Exp-72B-1010":{"id":"KAT-Coder-Exp-72B-1010","name":"KAT Coder Exp 72B 1010","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"gemini-2.5-pro-preview-03-25":{"id":"gemini-2.5-pro-preview-03-25","name":"Gemini 2.5 Pro Preview 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"claude-opus-4-thinking:1024":{"id":"claude-opus-4-thinking:1024","name":"Claude 4 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude 4 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"Llama-3.3-70B-Progenitor-V3.3":{"id":"Llama-3.3-70B-Progenitor-V3.3","name":"Llama 3.3 70B Progenitor V3.3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Qwen2.5-32B-EVA-v0.2":{"id":"Qwen2.5-32B-EVA-v0.2","name":"Qwen 2.5 32b EVA","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":24576,"input":24576,"output":8192}},"brave-pro":{"id":"brave-pro","name":"Brave (Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"step-2-16k-exp":{"id":"step-2-16k-exp","name":"Step-2 16k Exp","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.004,"output":19.992},"limit":{"context":16000,"input":16000,"output":8192}},"Llama-3.3-70B-Fallen-R1-v1":{"id":"Llama-3.3-70B-Fallen-R1-v1","name":"Llama 3.3 70B Fallen R1 v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-sonnet-4-thinking":{"id":"claude-sonnet-4-thinking","name":"Claude 4 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"doubao-1.5-pro-256k":{"id":"doubao-1.5-pro-256k","name":"Doubao 1.5 Pro 256k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.799,"output":1.445},"limit":{"context":256000,"input":256000,"output":16384}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"learnlm-1.5-pro-experimental":{"id":"learnlm-1.5-pro-experimental","name":"Gemini LearnLM Experimental","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.502,"output":10.506},"limit":{"context":32767,"input":32767,"output":8192}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":128000,"input":128000,"output":65536}},"chroma":{"id":"chroma","name":"Chroma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3-70B-Predatorial-Extasy":{"id":"Llama-3.3-70B-Predatorial-Extasy","name":"Llama 3.3 70B Predatorial Extasy","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Aurora-Borealis":{"id":"Llama-3.3-70B-Aurora-Borealis","name":"Llama 3.3 70B Aurora Borealis","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v3":{"id":"Llama-3.3-70B-ArliAI-RPMax-v3","name":"Llama 3.3 70B ArliAI RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":16384}},"step-3":{"id":"step-3","name":"Step-3","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2499,"output":0.6494},"limit":{"context":65536,"input":65536,"output":8192}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0","name":"Llama 3.3 70B Omega Directive Unslop v2.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"auto-model":{"id":"auto-model","name":"Auto model","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1000000,"input":1000000,"output":1000000}},"claude-opus-4-1-thinking:32768":{"id":"claude-opus-4-1-thinking:32768","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Shakudo":{"id":"Llama-3.3-70B-Shakudo","name":"Llama 3.3 70B Shakudo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Baichuan4-Air":{"id":"Baichuan4-Air","name":"Baichuan 4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.157,"output":0.157},"limit":{"context":32768,"input":32768,"output":32768}},"kimi-thinking-preview":{"id":"kimi-thinking-preview","name":"Kimi Thinking Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":31.46,"output":31.46},"limit":{"context":128000,"input":128000,"output":16384}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04998,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":8192}},"Llama-3.3-70B-Mhnnn-x1":{"id":"Llama-3.3-70B-Mhnnn-x1","name":"Llama 3.3 70B Mhnnn x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-thinking:32768":{"id":"claude-opus-4-thinking:32768","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Argunaut-1-SFT":{"id":"Llama-3.3-70B-Argunaut-1-SFT","name":"Llama 3.3 70B Argunaut 1 SFT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-1-thinking:1024":{"id":"claude-opus-4-1-thinking:1024","name":"Claude 4.1 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"phi-4-multimodal-instruct":{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.11},"limit":{"context":128000,"input":128000,"output":16384}},"doubao-seed-2-0-code-preview-260215":{"id":"doubao-seed-2-0-code-preview-260215","name":"Doubao Seed 2.0 Code Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.893},"limit":{"context":256000,"input":256000,"output":128000}},"deepseek-reasoner-cheaper":{"id":"deepseek-reasoner-cheaper","name":"Deepseek R1 Cheaper","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":65536}},"exa-answer":{"id":"exa-answer","name":"Exa (Answer)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":4096,"input":4096,"output":4096}},"v0-1.0-md":{"id":"v0-1.0-md","name":"v0 1.0 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"glm-4.1v-thinking-flash":{"id":"glm-4.1v-thinking-flash","name":"GLM 4.1V Thinking Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"azure-o1":{"id":"azure-o1","name":"Azure o1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"GLM-4.5-Air-Derestricted":{"id":"GLM-4.5-Air-Derestricted","name":"GLM 4.5 Air Derestricted","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":202600,"input":202600,"output":98304}},"azure-o3-mini":{"id":"azure-o3-mini","name":"Azure o3-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.088,"output":4.3996},"limit":{"context":200000,"input":200000,"output":65536}},"Llama-3.3-70B-Sapphira-0.2":{"id":"Llama-3.3-70B-Sapphira-0.2","name":"Llama 3.3 70B Sapphira 0.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Anthrobomination":{"id":"Llama-3.3-70B-Anthrobomination","name":"Llama 3.3 70B Anthrobomination","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"QwQ-32B-ArliAI-RpR-v1":{"id":"QwQ-32B-ArliAI-RpR-v1","name":"QwQ 32b Arli V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"input":32768,"output":32768}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude 4 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"yi-lightning":{"id":"yi-lightning","name":"Yi Lightning","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-16","last_updated":"2024-10-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":12000,"input":12000,"output":4096}},"Llama-3.3-70B-Electra-R1":{"id":"Llama-3.3-70B-Electra-R1","name":"Llama 3.3 70B Electra R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Forgotten-Abomination-v5.0":{"id":"Llama-3.3-70B-Forgotten-Abomination-v5.0","name":"Llama 3.3 70B Forgotten Abomination v5.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Cirrus-x1":{"id":"Llama-3.3-70B-Cirrus-x1","name":"Llama 3.3 70B Cirrus x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"grok-3-mini-beta":{"id":"grok-3-mini-beta","name":"Grok 3 Mini Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"input":131072,"output":131072}},"auto-model-standard":{"id":"auto-model-standard","name":"Auto model (Standard)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"Claude Sonnet 4.5 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0 1.5 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"kimi-k2-instruct-fast":{"id":"kimi-k2-instruct-fast","name":"Kimi K2 0711 Fast","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"glm-4-long":{"id":"glm-4-long","name":"GLM-4 Long","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":4096}},"mercury-coder-small":{"id":"mercury-coder-small","name":"Mercury Coder Small","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32768,"input":32768,"output":16384}},"jamba-large-1.7":{"id":"jamba-large-1.7","name":"Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"qvq-max":{"id":"qvq-max","name":"Qwen: QvQ Max","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-28","last_updated":"2025-03-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":5.3},"limit":{"context":128000,"input":128000,"output":8192}},"gemini-2.0-flash-thinking-exp-1219":{"id":"gemini-2.0-flash-thinking-exp-1219","name":"Gemini 2.0 Flash Thinking 1219","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-19","last_updated":"2024-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":32767,"input":32767,"output":8192}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":1000000,"input":1000000,"output":8192}},"azure-gpt-4-turbo":{"id":"azure-gpt-4-turbo","name":"Azure gpt-4-turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.005},"limit":{"context":128000,"input":128000,"output":4096}},"Baichuan-M2":{"id":"Baichuan-M2","name":"Baichuan M2 32B Medical","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15.73,"output":15.73},"limit":{"context":32768,"input":32768,"output":32768}},"qwen-long":{"id":"qwen-long","name":"Qwen Long 10M","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":10000000,"input":10000000,"output":8192}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Reasoning Pro","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":7.9985},"limit":{"context":127000,"input":127000,"output":128000}},"gemini-2.5-flash-preview-05-20:thinking":{"id":"gemini-2.5-flash-preview-05-20:thinking","name":"Gemini 2.5 Flash 0520 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048000,"input":1048000,"output":65536}},"GLM-4.5-Air-Derestricted-Steam-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Steam-ReExtract","name":"GLM 4.5 Air Derestricted Steam ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"Llama-3.3-70B-Dark-Ages-v0.1":{"id":"Llama-3.3-70B-Dark-Ages-v0.1","name":"Llama 3.3 70B Dark Ages v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Baichuan4-Turbo":{"id":"Baichuan4-Turbo","name":"Baichuan 4 Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.42,"output":2.42},"limit":{"context":128000,"input":128000,"output":32768}},"doubao-1.5-vision-pro-32k":{"id":"doubao-1.5-vision-pro-32k","name":"Doubao 1.5 Vision Pro 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.459,"output":1.377},"limit":{"context":32000,"input":32000,"output":8192}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection 3 Pi","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection 3 Productivity","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"RNJ-1 Instruct 8B","family":"rnj","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-13","last_updated":"2025-12-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":8192}},"LLM360/K2-Think":{"id":"LLM360/K2-Think","name":"K2-Think","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":32768}},"TEE/kimi-k2.5":{"id":"TEE/kimi-k2.5","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/glm-4.7":{"id":"TEE/glm-4.7","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.3},"limit":{"context":131000,"input":131000,"output":65535}},"TEE/qwen3.5-397b-a17b":{"id":"TEE/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-28","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"TEE/glm-5":{"id":"TEE/glm-5","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":3.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/qwen2.5-vl-72b-instruct":{"id":"TEE/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B TEE","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":65536,"input":65536,"output":8192}},"TEE/minimax-m2.1":{"id":"TEE/minimax-m2.1","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":200000,"input":200000,"output":131072}},"TEE/qwen3-30b-a3b-instruct-2507":{"id":"TEE/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.44999999999999996},"limit":{"context":262000,"input":262000,"output":32768}},"TEE/deepseek-v3.1":{"id":"TEE/deepseek-v3.1","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":164000,"input":164000,"output":8192}},"TEE/llama3-3-70b":{"id":"TEE/llama3-3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"TEE/glm-4.6":{"id":"TEE/glm-4.6","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":2},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/kimi-k2.5-thinking":{"id":"TEE/kimi-k2.5-thinking","name":"Kimi K2.5 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/gemma-3-27b-it":{"id":"TEE/gemma-3-27b-it","name":"Gemma 3 27B TEE","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"TEE/deepseek-v3.2":{"id":"TEE/deepseek-v3.2","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1},"limit":{"context":164000,"input":164000,"output":65536}},"TEE/gpt-oss-20b":{"id":"TEE/gpt-oss-20b","name":"GPT-OSS 20B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"TEE/qwen3-coder":{"id":"TEE/qwen3-coder","name":"Qwen3 Coder 480B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":128000,"input":128000,"output":32768}},"TEE/glm-4.7-flash":{"id":"TEE/glm-4.7-flash","name":"GLM 4.7 Flash TEE","family":"glm-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/gpt-oss-120b":{"id":"TEE/gpt-oss-120b","name":"GPT-OSS 120B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"TEE/deepseek-r1-0528":{"id":"TEE/deepseek-r1-0528","name":"DeepSeek R1 0528 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65536}},"TEE/kimi-k2-thinking":{"id":"TEE/kimi-k2-thinking","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65535}},"CrucibleLab/L3.3-70B-Loki-V2.0":{"id":"CrucibleLab/L3.3-70B-Loki-V2.0","name":"L3.3 70B Loki v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"deepseek/deepseek-v3.2:thinking":{"id":"deepseek/deepseek-v3.2:thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"DeepSeek Prover v2 671B","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":160000,"input":160000,"output":16384}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond":{"id":"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond","name":"MS3.2 24B Magnum Diamond","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":32768}},"NeverSleep/Llama-3-Lumimaid-70B-v0.1":{"id":"NeverSleep/Llama-3-Lumimaid-70B-v0.1","name":"Lumimaid 70b","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":8192}},"NeverSleep/Lumimaid-v0.2-70B":{"id":"NeverSleep/Lumimaid-v0.2-70B","name":"Lumimaid v0.2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1.5},"limit":{"context":16384,"input":16384,"output":8192}},"Steelskull/L3.3-Cu-Mai-R1-70b":{"id":"Steelskull/L3.3-Cu-Mai-R1-70b","name":"Llama 3.3 70B Cu Mai","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Nevoria-R1-70b":{"id":"Steelskull/L3.3-Nevoria-R1-70b","name":"Steelskull Nevoria R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evayale-70B":{"id":"Steelskull/L3.3-MS-Evayale-70B","name":"Evayale 70b ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Electra-R1-70b":{"id":"Steelskull/L3.3-Electra-R1-70b","name":"Steelskull Electra R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Nevoria-70b":{"id":"Steelskull/L3.3-MS-Nevoria-70b","name":"Steelskull Nevoria 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evalebis-70b":{"id":"Steelskull/L3.3-MS-Evalebis-70b","name":"MS Evalebis 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"miromind-ai/mirothinker-v1.5-235b":{"id":"miromind-ai/mirothinker-v1.5-235b","name":"MiroThinker v1.5 235B","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":32768,"input":32768,"output":4000}},"pamanseau/OpenReasoning-Nemotron-32B":{"id":"pamanseau/OpenReasoning-Nemotron-32B","name":"OpenReasoning Nemotron 32B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":32768,"input":32768,"output":65536}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.045000000000000005,"output":0.15},"limit":{"context":131072,"input":131072,"output":8192}},"arcee-ai/trinity-large":{"id":"arcee-ai/trinity-large","name":"Trinity Large","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131072,"input":131072,"output":8192}},"cognitivecomputations/dolphin-2.9.2-qwen2-72b":{"id":"cognitivecomputations/dolphin-2.9.2-qwen2-72b","name":"Dolphin 72b","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":8192,"input":8192,"output":4096}},"deepcogito/cogito-v1-preview-qwen-32B":{"id":"deepcogito/cogito-v1-preview-qwen-32B","name":"Cogito v1 Preview Qwen 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.7999999999999998,"output":1.7999999999999998},"limit":{"context":128000,"input":128000,"output":32768}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Cogito v2.1 671B MoE","family":"cogito","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"input":128000,"output":16384}},"Salesforce/Llama-xLAM-2-70b-fc-r":{"id":"Salesforce/Llama-xLAM-2-70b-fc-r","name":"Llama-xLAM-2 70B fc-r","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":128000,"input":128000,"output":16384}},"NousResearch 2/hermes-4-405b:thinking":{"id":"NousResearch 2/hermes-4-405b:thinking","name":"Hermes 4 Large (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch 2/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes-3 Mistral 24B (Preview)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":32768}},"NousResearch 2/Hermes-4-70B:thinking":{"id":"NousResearch 2/Hermes-4-70B:thinking","name":"Hermes 4 (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-17","last_updated":"2025-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-4-405b":{"id":"NousResearch 2/hermes-4-405b","name":"Hermes 4 Large","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-3-llama-3.1-70b":{"id":"NousResearch 2/hermes-3-llama-3.1-70b","name":"Hermes 3 70B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.408},"limit":{"context":65536,"input":65536,"output":8192}},"NousResearch 2/hermes-4-70b":{"id":"NousResearch 2/hermes-4-70b","name":"Hermes 4 Medium","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"soob3123/Veiled-Calla-12B":{"id":"soob3123/Veiled-Calla-12B","name":"Veiled Calla 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"soob3123/GrayLine-Qwen3-8B":{"id":"soob3123/GrayLine-Qwen3-8B","name":"Grayline Qwen3 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":16384,"input":16384,"output":32768}},"soob3123/amoral-gemma3-27B-v2":{"id":"soob3123/amoral-gemma3-27B-v2","name":"Amoral Gemma3 27B v2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-23","last_updated":"2025-05-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"DeepSeek V3.1 Nex N1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":128000,"input":128000,"output":8192}},"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B":{"id":"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B","name":"Llama 3.05 Storybreaker Ministral 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B":{"id":"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B","name":"Nemotron Tenyxchat Storybreaker 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"anthracite-org/magnum-v2-72b":{"id":"anthracite-org/magnum-v2-72b","name":"Magnum V2 72B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0":{"id":"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0","name":"Omega Directive 24B Unslop v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":16384,"input":16384,"output":32768}},"ReadyArt/The-Omega-Abomination-L-70B-v1.0":{"id":"ReadyArt/The-Omega-Abomination-L-70B-v1.0","name":"The Omega Abomination V1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.95},"limit":{"context":16384,"input":16384,"output":16384}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.2069999999999999},"limit":{"context":6144,"input":6144,"output":4096}},"MarinaraSpaghetti/NemoMix-Unleashed-12B":{"id":"MarinaraSpaghetti/NemoMix-Unleashed-12B","name":"NemoMix 12B Unleashed","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"Molmo 2 8B","family":"allenai","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"input":36864,"output":36864}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"Olmo 3.1 32B Instruct","family":"allenai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"input":65536,"output":8192}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"Olmo 3.1 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"input":65536,"output":8192}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"Olmo 3 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.44999999999999996},"limit":{"context":128000,"input":128000,"output":8192}},"stepfun-ai/step-3.5-flash:thinking":{"id":"stepfun-ai/step-3.5-flash:thinking","name":"Step 3.5 Flash Thinking","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-5.1":{"id":"zai-org/glm-5.1","name":"GLM 5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":131072}},"zai-org/glm-5.1:thinking":{"id":"zai-org/glm-5.1:thinking","name":"GLM 5.1 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":131072}},"zai-org/glm-5:thinking":{"id":"zai-org/glm-5:thinking","name":"GLM 5 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"input":200000,"output":128000}},"featherless-ai/Qwerky-72B":{"id":"featherless-ai/Qwerky-72B","name":"Qwerky 72B","family":"qwerky","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32000,"input":32000,"output":8192}},"mlabonne/NeuralDaredevil-8B-abliterated":{"id":"mlabonne/NeuralDaredevil-8B-abliterated","name":"Neural Daredevil 8B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44,"output":0.44},"limit":{"context":8192,"input":8192,"output":8192}},"raifle/sorcererlm-8x22b":{"id":"raifle/sorcererlm-8x22b","name":"SorcererLM 8x22B","family":"mixtral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.505,"output":4.505},"limit":{"context":16000,"input":16000,"output":8192}},"mistralai/mixtral-8x7b-instruct-v0.1":{"id":"mistralai/mixtral-8x7b-instruct-v0.1","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral Saba","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.595},"limit":{"context":32000,"input":32000,"output":32768}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":262144,"input":262144,"output":256000}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":262144,"input":262144,"output":65536}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.8999999999999999},"limit":{"context":256000,"input":256000,"output":32768}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/mistral-tiny":{"id":"mistralai/mistral-tiny","name":"Mistral Tiny","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-12-11","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.25499999999999995},"limit":{"context":32000,"input":32000,"output":8192}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Ministral 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/mixtral-8x22b-instruct-v0.1":{"id":"mistralai/mixtral-8x22b-instruct-v0.1","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8999999999999999,"output":0.8999999999999999},"limit":{"context":65536,"input":65536,"output":32768}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":8192}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/mistral-7b-instruct":{"id":"mistralai/mistral-7b-instruct","name":"Mistral 7B Instruct","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Mistral Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.060000000000000005},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral Small Creative","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":6.001},"limit":{"context":128000,"input":128000,"output":256000}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Ministral 14B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"input":262144,"output":32768}},"shisa-ai/shisa-v2.1-llama3.3-70b":{"id":"shisa-ai/shisa-v2.1-llama3.3-70b","name":"Shisa V2.1 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32768,"input":32768,"output":4096}},"shisa-ai/shisa-v2-llama3.3-70b":{"id":"shisa-ai/shisa-v2-llama3.3-70b","name":"Shisa V2 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":128000,"input":128000,"output":16384}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.23},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Llama 4 Scout","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.085,"output":0.46},"limit":{"context":328000,"input":328000,"output":65536}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Llama 4 Maverick","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18000000000000002,"output":0.8},"limit":{"context":1048576,"input":1048576,"output":65536}},"meta-llama/llama-3.2-90b-vision-instruct":{"id":"meta-llama/llama-3.2-90b-vision-instruct","name":"Llama 3.2 Medium","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9009999999999999,"output":0.9009999999999999},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Llama 3.2 3b Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0306,"output":0.0493},"limit":{"context":131072,"input":131072,"output":8192}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":131072,"input":131072,"output":16384}},"GalrionSoftworks/MN-LooseCannon-12B-v1":{"id":"GalrionSoftworks/MN-LooseCannon-12B-v1","name":"MN-LooseCannon-12B-v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"baseten/Kimi-K2-Instruct-FP4":{"id":"baseten/Kimi-K2-Instruct-FP4","name":"Kimi K2 0711 Instruct FP4","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":131072}},"Gryphe/MythoMax-L2-13b":{"id":"Gryphe/MythoMax-L2-13b","name":"MythoMax 13B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":4000,"input":4000,"output":4096}},"x-ai/grok-4-fast:thinking":{"id":"x-ai/grok-4-fast:thinking","name":"Grok 4 Fast Thinking","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4-07-09":{"id":"x-ai/grok-4-07-09","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"input":256000,"output":131072}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"input":256000,"output":131072}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"Hunyuan MT 7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":20},"limit":{"context":8192,"input":8192,"output":8192}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":65536,"input":65536,"output":8192}},"microsoft/MAI-DS-R1-FP8":{"id":"microsoft/MAI-DS-R1-FP8","name":"Microsoft DeepSeek R1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":8192}},"cohere/command-r":{"id":"cohere/command-r","name":"Cohere: Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-11","last_updated":"2024-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.476,"output":1.428},"limit":{"context":128000,"input":128000,"output":4096}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.856,"output":14.246},"limit":{"context":128000,"input":128000,"output":4096}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24b Instruct","family":"chutesai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1","name":"Nvidia Nemotron Ultra 253B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.8},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nvidia Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":256000,"input":256000,"output":262144}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF":{"id":"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF","name":"Nvidia Nemotron 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.357,"output":0.408},"limit":{"context":16384,"input":16384,"output":8192}},"nvidia/Llama-3.3-Nemotron-Super-49B-v1":{"id":"nvidia/Llama-3.3-Nemotron-Super-49B-v1","name":"Nvidia Nemotron Super 49B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5":{"id":"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5","name":"Nvidia Nemotron Super 49B v1.5","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"TheDrummer 2/Anubis-70B-v1":{"id":"TheDrummer 2/Anubis-70B-v1","name":"Anubis 70B v1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":65536,"input":65536,"output":16384}},"TheDrummer 2/Cydonia-24B-v4.3":{"id":"TheDrummer 2/Cydonia-24B-v4.3","name":"The Drummer Cydonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Magidonia-24B-v4.3":{"id":"TheDrummer 2/Magidonia-24B-v4.3","name":"The Drummer Magidonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Cydonia-24B-v4":{"id":"TheDrummer 2/Cydonia-24B-v4","name":"The Drummer Cydonia 24B v4","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2414},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/Anubis-70B-v1.1":{"id":"TheDrummer 2/Anubis-70B-v1.1","name":"Anubis 70B v1.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":131072,"input":131072,"output":16384}},"TheDrummer 2/Rocinante-12B-v1.1":{"id":"TheDrummer 2/Rocinante-12B-v1.1","name":"Rocinante 12b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.595},"limit":{"context":16384,"input":16384,"output":8192}},"TheDrummer 2/Cydonia-24B-v4.1":{"id":"TheDrummer 2/Cydonia-24B-v4.1","name":"The Drummer Cydonia 24B v4.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/UnslopNemo-12B-v4.1":{"id":"TheDrummer 2/UnslopNemo-12B-v4.1","name":"UnslopNemo 12b v4","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"TheDrummer 2/Cydonia-24B-v2":{"id":"TheDrummer 2/Cydonia-24B-v2","name":"The Drummer Cydonia 24B v2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/skyfall-36b-v2":{"id":"TheDrummer 2/skyfall-36b-v2","name":"TheDrummer Skyfall 36B V2","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":64000,"input":64000,"output":32768}},"deepseek-ai/DeepSeek-V3.1:thinking":{"id":"deepseek-ai/DeepSeek-V3.1:thinking","name":"DeepSeek V3.1 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus:thinking":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus:thinking","name":"DeepSeek V3.1 Terminus (Thinking)","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/deepseek-v3.2-exp-thinking":{"id":"deepseek-ai/deepseek-v3.2-exp-thinking","name":"DeepSeek V3.2 Exp Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/deepseek-v3.2-exp":{"id":"deepseek-ai/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":163840}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":20},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT 5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT-4o mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.088,"output":0.35},"limit":{"context":128000,"input":128000,"output":16384}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT 4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.993999999999998},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT 5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT 5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"input":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT 5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI o3-mini (High)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.64,"output":2.588},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI o4-mini Deep Research","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT 5.1 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT 5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT 5.1 Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":128000,"input":128000,"output":32768}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT 5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2022-11-30","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":16385,"output":4096}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI o3 Deep Research","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"GPT-4 Turbo Preview","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.004999999999995},"limit":{"context":128000,"input":128000,"output":4096}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI o1 Pro","family":"o-pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":256000,"input":256000,"output":32768}},"openai/gpt-5.1-chat-latest":{"id":"openai/gpt-5.1-chat-latest","name":"GPT 5.1 Chat (Latest)","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":16384}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"GPT-4o Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.47,"output":5.88},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT 4.1 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI o4-mini high","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT 5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.1-2025-11-13":{"id":"openai/gpt-5.1-2025-11-13","name":"GPT-5.1 (2025-11-13)","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"input":1000000,"output":32768}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o3-mini-low":{"id":"openai/o3-mini-low","name":"OpenAI o3-mini (Low)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT 5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o3-pro-2025-06-10":{"id":"openai/o3-pro-2025-06-10","name":"OpenAI o3-pro (2025-06-10)","family":"o-pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-chat-latest":{"id":"openai/gpt-5-chat-latest","name":"GPT 5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT 4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT 5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"input":128000,"output":16384}},"VongolaChouko/Starcannon-Unleashed-12B-v1.0":{"id":"VongolaChouko/Starcannon-Unleashed-12B-v1.0","name":"Mistral Nemo Starcannon 12b v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon Nova Lite 1.0","family":"nova-lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0595,"output":0.238},"limit":{"context":300000,"input":300000,"output":5120}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":3.1959999999999997},"limit":{"context":300000,"input":300000,"output":32000}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5099999999999999,"output":4.25},"limit":{"context":1000000,"input":1000000,"output":65535}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon Nova Micro 1.0","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0357,"output":0.1394},"limit":{"context":128000,"input":128000,"output":5120}},"Sao10K/L3.3-70B-Euryale-v2.3":{"id":"Sao10K/L3.3-70B-Euryale-v2.3","name":"Llama 3.3 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3.1-70B-Euryale-v2.2":{"id":"Sao10K/L3.1-70B-Euryale-v2.2","name":"Llama 3.1 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.357},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3.1-70B-Hanami-x1":{"id":"Sao10K/L3.1-70B-Hanami-x1","name":"Llama 3.1 70B Hanami","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Sao10K/L3-8B-Stheno-v3.2":{"id":"Sao10K/L3-8B-Stheno-v3.2","name":"Sao10K Stheno 8b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":16384,"input":16384,"output":8192}},"LatitudeGames/Wayfarer-Large-70B-Llama-3.3":{"id":"LatitudeGames/Wayfarer-Large-70B-Llama-3.3","name":"Llama 3.3 70B Wayfarer","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.700000007,"output":0.700000007},"limit":{"context":16384,"input":16384,"output":16384}},"z-ai/glm-4.6:thinking":{"id":"z-ai/glm-4.6:thinking","name":"GLM 4.6 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v:thinking":{"id":"z-ai/glm-4.5v:thinking","name":"GLM 4.5V Thinking","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B","family":"ernie","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.5599999999999999},"limit":{"context":32768,"input":32768,"output":16384}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"ERNIE 4.5 300B","family":"ernie","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.15},"limit":{"context":131072,"input":131072,"output":16384}},"dmind/dmind-1":{"id":"dmind/dmind-1","name":"DMind-1","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.6},"limit":{"context":32768,"input":32768,"output":8192}},"dmind/dmind-1-mini":{"id":"dmind/dmind-1-mini","name":"DMind-1-Mini","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":32768,"input":32768,"output":8192}},"Infermatic/MN-12B-Inferor-v0.0":{"id":"Infermatic/MN-12B-Inferor-v0.0","name":"Mistral Nemo Inferor 12B","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"meituan-longcat/LongCat-Flash-Chat-FP8":{"id":"meituan-longcat/LongCat-Flash-Chat-FP8","name":"LongCat Flash","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-31","last_updated":"2025-08-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.7},"limit":{"context":128000,"input":128000,"output":32768}},"meganova-ai/manta-mini-1.0":{"id":"meganova-ai/manta-mini-1.0","name":"Manta Mini 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":8192,"input":8192,"output":8192}},"meganova-ai/manta-pro-1.0":{"id":"meganova-ai/manta-pro-1.0","name":"Manta Pro 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.5},"limit":{"context":32768,"input":32768,"output":32768}},"meganova-ai/manta-flash-1.0":{"id":"meganova-ai/manta-flash-1.0","name":"Manta Flash 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":16384,"input":16384,"output":16384}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax 01","family":"minimax","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.1219999999999999},"limit":{"context":1000192,"input":1000192,"output":16384}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":200000,"input":200000,"output":131072}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax M2-her","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-24","last_updated":"2026-01-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.30200000000000005,"output":1.2069999999999999},"limit":{"context":65532,"input":65532,"output":2048}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"unsloth/gemma-3-1b-it":{"id":"unsloth/gemma-3-1b-it","name":"Gemma 3 1B IT","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.272,"output":0.272},"limit":{"context":128000,"input":128000,"output":131072}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"Gemma 3 4B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"Gemma 3 27B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2992,"output":0.2992},"limit":{"context":128000,"input":128000,"output":96000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"GLM Z1 9B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"GLM 4 9B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-Z1-Rumination-32B-0414":{"id":"THUDM/GLM-Z1-Rumination-32B-0414","name":"GLM Z1 Rumination 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":65536}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"GLM 4 32B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"GLM Z1 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"google/gemini-flash-1.5":{"id":"google/gemini-flash-1.5","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":2000000,"input":2000000,"output":8192}},"google/gemini-3-flash-preview-thinking":{"id":"google/gemini-3-flash-preview-thinking","name":"Gemini 3 Flash Thinking","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/kimi-k2-thinking-original":{"id":"moonshotai/kimi-k2-thinking-original","name":"Kimi K2 Thinking Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"input":256000,"output":16384}},"moonshotai/kimi-k2-instruct-0711":{"id":"moonshotai/kimi-k2-instruct-0711","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":8192}},"moonshotai/Kimi-Dev-72B":{"id":"moonshotai/Kimi-Dev-72B","name":"Kimi Dev 72B","family":"kimi","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"moonshotai/kimi-k2-thinking-turbo-original":{"id":"moonshotai/kimi-k2-thinking-turbo-original","name":"Kimi K2 Thinking Turbo Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8},"limit":{"context":256000,"input":256000,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2.5:thinking":{"id":"moonshotai/kimi-k2.5:thinking","name":"Kimi K2.5 Thinking","family":"kimi-thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"Tongyi-Zhiwen/QwenLong-L1-32B":{"id":"Tongyi-Zhiwen/QwenLong-L1-32B","name":"QwenLong L1 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.6},"limit":{"context":128000,"input":128000,"output":40960}},"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16":{"id":"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16","name":"Llama 3.1 70B Celeste v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"Aion 1.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.995,"output":7.99},"limit":{"context":65536,"input":65536,"output":8192}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"Llama 3.1 8b (uncensored)","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":32768,"input":32768,"output":16384}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"Aion 1.0 mini (DeepSeek)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.394},"limit":{"context":131072,"input":131072,"output":8192}},"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B":{"id":"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B","name":"Tongyi DeepResearch 30B A3B","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.24000000000000002},"limit":{"context":128000,"input":128000,"output":65536}},"MiniMaxAI/MiniMax-M1-80k":{"id":"MiniMaxAI/MiniMax-M1-80k","name":"MiniMax M1 80K","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6052,"output":2.4225000000000003},"limit":{"context":1000000,"input":1000000,"output":131072}},"anthropic/claude-opus-4.6:thinking:low":{"id":"anthropic/claude-opus-4.6:thinking:low","name":"Claude 4.6 Opus Thinking Low","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude 4.6 Opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-sonnet-4.6:thinking":{"id":"anthropic/claude-sonnet-4.6:thinking","name":"Claude Sonnet 4.6 Thinking","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:max":{"id":"anthropic/claude-opus-4.6:thinking:max","name":"Claude 4.6 Opus Thinking Max","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:medium":{"id":"anthropic/claude-opus-4.6:thinking:medium","name":"Claude 4.6 Opus Thinking Medium","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking":{"id":"anthropic/claude-opus-4.6:thinking","name":"Claude 4.6 Opus Thinking","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"abacusai/Dracarys-72B-Instruct":{"id":"abacusai/Dracarys-72B-Instruct","name":"Llama 3.1 70B Dracarys 2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","name":"EVA Llama 3.33 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2","name":"EVA-Qwen2.5-72B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","name":"EVA-LLaMA-3.33-70B-v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2","name":"EVA-Qwen2.5-32B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated","name":"DeepSeek R1 Qwen Abliterated","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.4},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated","name":"DeepSeek R1 Llama 70B Abliterated","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/Llama-3.3-70B-Instruct-abliterated":{"id":"huihui-ai/Llama-3.3-70B-Instruct-abliterated","name":"Llama 3.3 70B Instruct abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"huihui-ai/Qwen2.5-32B-Instruct-abliterated":{"id":"huihui-ai/Qwen2.5-32B-Instruct-abliterated","name":"Qwen 2.5 32B Abliterated","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-06","last_updated":"2025-01-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"input":32768,"output":8192}},"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated":{"id":"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated","name":"Nemotron 3.1 70B abliterated","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"xiaomi/mimo-v2-flash-thinking-original":{"id":"xiaomi/mimo-v2-flash-thinking-original","name":"MiMo V2 Flash (Thinking) Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-thinking":{"id":"xiaomi/mimo-v2-flash-thinking","name":"MiMo V2 Flash (Thinking)","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-original":{"id":"xiaomi/mimo-v2-flash-original","name":"MiMo V2 Flash Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":128000,"input":128000,"output":8192}},"tngtech/tng-r1t-chimera":{"id":"tngtech/tng-r1t-chimera","name":"TNG R1T Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":65536}},"inflatebot/MN-12B-Mag-Mell-R1":{"id":"inflatebot/MN-12B-Mag-Mell-R1","name":"Mag Mell R1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5":{"id":"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5","name":"Llama 3 70B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":8192,"input":8192,"output":8192}}}},"abacus":{"id":"abacus","env":["ABACUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://routellm.abacus.ai/v1","name":"Abacus","doc":"https://abacus.ai/help/api","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":32768}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048576,"output":65536}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":128000,"output":32768}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":200000,"output":100000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":131072,"output":16384}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048576,"output":65536}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gpt-5.3-codex-xhigh":{"id":"gpt-5.3-codex-xhigh","name":"GPT-5.3 Codex XHigh","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"output":16384}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"grok-4-0709":{"id":"grok-4-0709","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":16384}},"route-llm":{"id":"route-llm","name":"Route LLM","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":16384}},"qwen-2.5-coder-32b":{"id":"qwen-2.5-coder-32b","name":"Qwen 2.5 Coder 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.79,"output":0.79},"limit":{"context":128000,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"input":922000,"output":128000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo Preview","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":8},"limit":{"context":256000,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":128000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"output":32768}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"output":100000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.66},"limit":{"context":128000,"output":8192}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.6},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":128000,"output":8192}},"Qwen/qwen3-coder-480b-a35b-instruct":{"id":"Qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","name":"Llama 3.1 405B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":3.5},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.59},"limit":{"context":1000000,"output":32768}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":128000,"output":4096}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":128000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.44},"limit":{"context":128000,"output":32768}}}},"perplexity-agent":{"id":"perplexity-agent","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.perplexity.ai/v1","name":"Perplexity Agent","doc":"https://docs.perplexity.ai/docs/agent-api/models","models":{"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2.5,"cache_read":0.0625},"limit":{"context":128000,"output":8192}},"xai/grok-4-1-fast-non-reasoning":{"id":"xai/grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2.5},"limit":{"context":1000000,"output":32000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125,"context_over_200k":{"input":2.5,"output":15,"cache_read":0.25}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03},"limit":{"context":1048576,"output":65536}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":128000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}}}},"siliconflow-cn":{"id":"siliconflow-cn","env":["SILICONFLOW_CN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.cn/v1","name":"SiliconFlow (China)","doc":"https://cloud.siliconflow.com/models","models":{"Kwaipilot/KAT-Dev":{"id":"Kwaipilot/KAT-Dev","name":"Kwaipilot/KAT-Dev","family":"kat-coder","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen/Qwen3.5-397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-35B-A3B":{"id":"Qwen/Qwen3.5-35B-A3B","name":"Qwen/Qwen3.5-35B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":1.86},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-122B-A10B":{"id":"Qwen/Qwen3.5-122B-A10B","name":"Qwen/Qwen3.5-122B-A10B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":2.32},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-9B":{"id":"Qwen/Qwen3.5-9B","name":"Qwen/Qwen3.5-9B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-27B":{"id":"Qwen/Qwen3.5-27B","name":"Qwen/Qwen3.5-27B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.09},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-4B":{"id":"Qwen/Qwen3.5-4B","name":"Qwen/Qwen3.5-4B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"ascend-tribe/pangu-pro-moe":{"id":"ascend-tribe/pangu-pro-moe","name":"ascend-tribe/pangu-pro-moe","family":"pangu","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Pro/zai-org/GLM-4.7":{"id":"Pro/zai-org/GLM-4.7","name":"Pro/zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"Pro/zai-org/GLM-5.1":{"id":"Pro/zai-org/GLM-5.1","name":"Pro/zai-org/GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_write":0},"limit":{"context":205000,"output":205000}},"Pro/zai-org/GLM-5":{"id":"Pro/zai-org/GLM-5","name":"Pro/zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"Pro/deepseek-ai/DeepSeek-V3":{"id":"Pro/deepseek-ai/DeepSeek-V3","name":"Pro/deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-R1":{"id":"Pro/deepseek-ai/DeepSeek-R1","name":"Pro/deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.2":{"id":"Pro/deepseek-ai/DeepSeek-V3.2","name":"Pro/deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","name":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"Pro/moonshotai/Kimi-K2-Thinking":{"id":"Pro/moonshotai/Kimi-K2-Thinking","name":"Pro/moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2-Instruct-0905":{"id":"Pro/moonshotai/Kimi-K2-Instruct-0905","name":"Pro/moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2.5":{"id":"Pro/moonshotai/Kimi-K2.5","name":"Pro/moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"Pro/MiniMaxAI/MiniMax-M2.5":{"id":"Pro/MiniMaxAI/MiniMax-M2.5","name":"Pro/MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.22},"limit":{"context":192000,"output":131000}},"Pro/MiniMaxAI/MiniMax-M2.1":{"id":"Pro/MiniMaxAI/MiniMax-M2.1","name":"Pro/MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"PaddlePaddle/PaddleOCR-VL":{"id":"PaddlePaddle/PaddleOCR-VL","name":"PaddlePaddle/PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"PaddlePaddle/PaddleOCR-VL-1.5":{"id":"PaddlePaddle/PaddleOCR-VL-1.5","name":"PaddlePaddle/PaddleOCR-VL-1.5","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"deepseek-ai/DeepSeek-OCR":{"id":"deepseek-ai/DeepSeek-OCR","name":"deepseek-ai/DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2025-10-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}}}},"submodel":{"id":"submodel","env":["SUBMODEL_INSTAGEN_ACCESS_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.submodel.ai/v1","name":"submodel","doc":"https://submodel.gitbook.io","models":{"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.3},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":131072}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15},"limit":{"context":75000,"output":163840}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":32768}}}},"minimax-coding-plan":{"id":"minimax-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax Coding Plan (minimax.io)","doc":"https://platform.minimax.io/docs/coding-plan/intro","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"perplexity":{"id":"perplexity","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/perplexity","name":"Perplexity","doc":"https://docs.perplexity.ai","models":{"sonar-pro":{"id":"sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"sonar":{"id":"sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":4096}}}},"deepseek":{"id":"deepseek","env":["DEEPSEEK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.deepseek.com","name":"DeepSeek","doc":"https://api-docs.deepseek.com/quick_start/pricing","models":{"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek Chat","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":131072,"output":8192}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":128000,"output":64000}}}},"llama":{"id":"llama","env":["LLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.llama.com/compat/v1/","name":"Llama","doc":"https://llama.developer.meta.com/docs/models","models":{"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cerebras-llama-4-maverick-17b-128e-instruct":{"id":"cerebras-llama-4-maverick-17b-128e-instruct","name":"Cerebras-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-3.3-8b-instruct":{"id":"llama-3.3-8b-instruct","name":"Llama-3.3-8B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cerebras-llama-4-scout-17b-16e-instruct":{"id":"cerebras-llama-4-scout-17b-16e-instruct","name":"Cerebras-Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"groq-llama-4-maverick-17b-128e-instruct":{"id":"groq-llama-4-maverick-17b-128e-instruct","name":"Groq-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-scout-17b-16e-instruct-fp8":{"id":"llama-4-scout-17b-16e-instruct-fp8","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}}}},"openrouter":{"id":"openrouter","env":["OPENROUTER_API_KEY"],"npm":"@openrouter/ai-sdk-provider","api":"https://openrouter.ai/api/v1","name":"OpenRouter","doc":"https://openrouter.ai/models","models":{"liquid/lfm-2.5-1.2b-instruct:free":{"id":"liquid/lfm-2.5-1.2b-instruct:free","name":"LFM2.5-1.2B-Instruct (free)","family":"liquid","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"liquid/lfm-2.5-1.2b-thinking:free":{"id":"liquid/lfm-2.5-1.2b-thinking:free","name":"LFM2.5-1.2B-Thinking (free)","family":"liquid","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.1-terminus:exacto":{"id":"deepseek/deepseek-v3.1-terminus:exacto","name":"DeepSeek V3.1 Terminus (exacto)","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":8192}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":200000,"output":8000}},"arcee-ai/trinity-mini:free":{"id":"arcee-ai/trinity-mini:free","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"arcee-ai/trinity-large-thinking":{"id":"arcee-ai/trinity-large-thinking","name":"Trinity Large Thinking","family":"trinity","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.85},"limit":{"context":262144,"output":80000}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"cognitivecomputations/dolphin-mistral-24b-venice-edition:free":{"id":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free","name":"Uncensored (free)","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-07-09","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":32768}},"bytedance-seed/seedream-4.5":{"id":"bytedance-seed/seedream-4.5","name":"Seedream 4.5","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":4096}},"black-forest-labs/flux.2-max":{"id":"black-forest-labs/flux.2-max","name":"FLUX.2 Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-16","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-flex":{"id":"black-forest-labs/flux.2-flex","name":"FLUX.2 Flex","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":67344,"output":67344}},"black-forest-labs/flux.2-pro":{"id":"black-forest-labs/flux.2-pro","name":"FLUX.2 Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-klein-4b":{"id":"black-forest-labs/flux.2-klein-4b","name":"FLUX.2 Klein 4B","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-14","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"nousresearch/hermes-3-llama-3.1-405b:free":{"id":"nousresearch/hermes-3-llama-3.1-405b:free","name":"Hermes 3 405B Instruct (free)","family":"hermes","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Hermes 4 405B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Hermes 4 70B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":131072,"output":131072}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"Step 3.5 Flash (free)","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Devstral 2 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-2603":{"id":"mistralai/mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/devstral-small-2505":{"id":"mistralai/devstral-small-2505","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.12},"limit":{"context":128000,"output":128000}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":96000,"output":8192}},"mistralai/devstral-medium-2507":{"id":"mistralai/devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/devstral-small-2507":{"id":"mistralai/devstral-small-2507","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"meta-llama/llama-3.2-3b-instruct:free":{"id":"meta-llama/llama-3.2-3b-instruct:free","name":"Llama 3.2 3B Instruct (free)","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.3-70b-instruct:free":{"id":"meta-llama/llama-3.3-70b-instruct:free","name":"Llama 3.3 70B Instruct (free)","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi - Agent Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"Grok 3 Beta","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"Grok 4.20 Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"Grok 3 Mini Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Intellect 3","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":8192}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-3-nano-30b-a3b:free":{"id":"nvidia/nemotron-3-nano-30b-a3b:free","name":"Nemotron 3 Nano 30B A3B (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-12-14","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"nvidia/nemotron-nano-9b-v2:free":{"id":"nvidia/nemotron-nano-9b-v2:free","name":"Nemotron Nano 9B V2 (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-09-05","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"nvidia/nemotron-3-super-120b-a12b:free":{"id":"nvidia/nemotron-3-super-120b-a12b:free","name":"Nemotron 3 Super (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-nano-12b-v2-vl:free":{"id":"nvidia/nemotron-nano-12b-v2-vl:free","name":"Nemotron Nano 12B 2 VL (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-04","last_updated":"2026-03-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-oss-120b:exacto":{"id":"openai/gpt-oss-120b:exacto","name":"GPT OSS 120B (exacto)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":32768}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b:free":{"id":"openai/gpt-oss-20b:free","name":"gpt-oss-20b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":7.5e-7,"output":0.0000045,"cache_read":7.5e-8},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2e-7,"output":0.00000125,"cache_read":2e-8},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-oss-120b:free":{"id":"openai/gpt-oss-120b:free","name":"gpt-oss-120b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.28},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"z-ai/glm-4.5-air:free":{"id":"z-ai/glm-4.5-air:free","name":"GLM 4.5 Air (free)","family":"glm-air","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":96000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000}},"z-ai/glm-5.1":{"id":"z-ai/glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.6:exacto":{"id":"z-ai/glm-4.6:exacto","name":"GLM 4.6 (exacto)","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.9,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"z-ai/glm-5-turbo":{"id":"z-ai/glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.96,"output":3.2,"cache_read":0.192,"cache_write":0},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":65535}},"sourceful/riverflow-v2-standard-preview":{"id":"sourceful/riverflow-v2-standard-preview","name":"Riverflow V2 Standard Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-fast-preview":{"id":"sourceful/riverflow-v2-fast-preview","name":"Riverflow V2 Fast Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-max-preview":{"id":"sourceful/riverflow-v2-max-preview","name":"Riverflow V2 Max Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.15,"cache_read":0.28,"cache_write":1.15},"limit":{"context":196600,"output":118000}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax-01","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000000,"output":1000000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5:free":{"id":"minimax/minimax-m2.5:free","name":"MiniMax M2.5 (free)","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":65536}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3-coder:free":{"id":"qwen/qwen3-coder:free","name":"Qwen3 Coder 480B A35B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"qwen/qwen3.5-flash-02-23":{"id":"qwen/qwen3.5-flash-02-23","name":"Qwen: Qwen3.5-Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.065,"output":0.26},"limit":{"context":1000000,"output":65536}},"qwen/qwen3.6-plus":{"id":"qwen/qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.325,"output":1.95},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"qwen/qwen3-coder:exacto":{"id":"qwen/qwen3-coder:exacto","name":"Qwen3 Coder (exacto)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.53},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.078,"output":0.312},"limit":{"context":262144,"output":81920}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen3-4b:free":{"id":"qwen/qwen3-4b:free","name":"Qwen3 4B (free)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-30","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"qwen/qwen3-next-80b-a3b-instruct:free":{"id":"qwen/qwen3-next-80b-a3b-instruct:free","name":"Qwen3 Next 80B A3B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":128000,"output":66536}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":65536}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen3.5 Plus 2026-02-15","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-235b-a22b-07-25":{"id":"qwen/qwen3-235b-a22b-07-25","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.85},"limit":{"context":262144,"output":131072}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemma-3-4b-it:free":{"id":"google/gemma-3-4b-it:free","name":"Gemma 3 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":32768}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5,"cache_read":0.025,"cache_write":0.083,"input_audio":0.5,"output_audio":0.5},"limit":{"context":1048576,"output":65536}},"google/gemma-3n-e4b-it:free":{"id":"google/gemma-3n-e4b-it:free","name":"Gemma 3n 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1050000,"output":66000}},"google/gemma-3n-e2b-it:free":{"id":"google/gemma-3n-e2b-it:free","name":"Gemma 3n 2B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":8192}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma 4 31B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.4},"limit":{"context":262144,"output":262144}},"google/gemini-2.5-pro-preview-06-05":{"id":"google/gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"google/gemma-3-27b-it:free":{"id":"google/gemma-3-27b-it:free","name":"Gemma 3 27B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"google/gemma-4-31b-it:free":{"id":"google/gemma-4-31b-it:free","name":"Gemma 4 31B (free)","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"google/gemma-3-12b-it:free":{"id":"google/gemma-3-12b-it:free","name":"Gemma 3 12B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Gemma 3 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01703,"output":0.06815},"limit":{"context":96000,"output":96000}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.031},"limit":{"context":1048576,"output":65536}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":96000,"output":96000}},"google/gemma-4-26b-a4b-it":{"id":"google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":262144,"output":262144}},"google/gemma-4-26b-a4b-it:free":{"id":"google/gemma-4-26b-a4b-it:free","name":"Gemma 4 26B A4B (free)","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2-0905:exacto":{"id":"moonshotai/kimi-k2-0905:exacto","name":"Kimi K2 Instruct 0905 (exacto)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"moonshotai/kimi-k2:free":{"id":"moonshotai/kimi-k2:free","name":"Kimi K2 (free)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32800,"output":32800}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":128000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":262144,"output":65536}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-14","last_updated":"2025-12-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262144,"output":65536}}}},"fireworks-ai":{"id":"fireworks-ai","env":["FIREWORKS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.fireworks.ai/inference/v1/","name":"Fireworks AI","doc":"https://fireworks.ai/docs/","models":{"accounts/fireworks/models/glm-5p1":{"id":"accounts/fireworks/models/glm-5p1","name":"GLM 5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":202800,"output":131072}},"accounts/fireworks/models/deepseek-v3p2":{"id":"accounts/fireworks/models/deepseek-v3p2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.28},"limit":{"context":160000,"output":160000}},"accounts/fireworks/models/minimax-m2p5":{"id":"accounts/fireworks/models/minimax-m2p5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"accounts/fireworks/models/glm-4p5-air":{"id":"accounts/fireworks/models/glm-4p5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/glm-5":{"id":"accounts/fireworks/models/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.5},"limit":{"context":202752,"output":131072}},"accounts/fireworks/models/deepseek-v3p1":{"id":"accounts/fireworks/models/deepseek-v3p1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":163840,"output":163840}},"accounts/fireworks/models/kimi-k2-instruct":{"id":"accounts/fireworks/models/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":128000,"output":16384}},"accounts/fireworks/models/qwen3p6-plus":{"id":"accounts/fireworks/models/qwen3p6-plus","name":"Qwen 3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-04","last_updated":"2026-04-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.1},"limit":{"context":128000,"output":8192}},"accounts/fireworks/models/minimax-m2p1":{"id":"accounts/fireworks/models/minimax-m2p1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":200000,"output":200000}},"accounts/fireworks/models/glm-4p7":{"id":"accounts/fireworks/models/glm-4p7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.3},"limit":{"context":198000,"output":198000}},"accounts/fireworks/models/glm-4p5":{"id":"accounts/fireworks/models/glm-4p5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/kimi-k2p5":{"id":"accounts/fireworks/models/kimi-k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/gpt-oss-20b":{"id":"accounts/fireworks/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}},"accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"accounts/fireworks/models/kimi-k2-thinking":{"id":"accounts/fireworks/models/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.3},"limit":{"context":256000,"output":256000}},"accounts/fireworks/routers/kimi-k2p5-turbo":{"id":"accounts/fireworks/routers/kimi-k2p5-turbo","name":"Kimi K2.5 Turbo (firepass)","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":256000}}}},"kimi-for-coding":{"id":"kimi-for-coding","env":["KIMI_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.kimi.com/coding/v1","name":"Kimi For Coding","doc":"https://www.kimi.com/coding/docs/en/third-party-agents.html","models":{"k2p5":{"id":"k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}}}},"moark":{"id":"moark","env":["MOARK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://moark.com/v1","name":"Moark","doc":"https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":14},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.1,"output":8.4},"limit":{"context":204800,"output":131072}}}},"opencode-go":{"id":"opencode-go","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/go/v1","name":"OpenCode Go","doc":"https://opencode.ai/docs/zen","models":{"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":65536}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo V2 Omni","family":"mimo-omni","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":262144,"output":64000}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":204800,"output":131072}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax-m2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo V2 Pro","family":"mimo-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2,"context_over_200k":{"input":2,"output":6,"cache_read":0.4}},"limit":{"context":1048576,"output":64000}}}},"io-net":{"id":"io-net","env":["IOINTELLIGENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.intelligence.io.solutions/api/v1","name":"IO.NET","doc":"https://io.net/docs/guides/intelligence/io-intelligence","models":{"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar":{"id":"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11,"cache_write":0.44},"limit":{"context":106000,"output":4096}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen 3 Next 80B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-10","last_updated":"2025-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8,"cache_read":0.05,"cache_write":0.2},"limit":{"context":262144,"output":4096}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen 3 235B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6,"cache_read":0.055,"cache_write":0.22},"limit":{"context":262144,"output":4096}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen 2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":32000,"output":4096}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-15","last_updated":"2024-11-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.75,"cache_read":0.2,"cache_write":0.8},"limit":{"context":200000,"output":4096}},"mistralai/Magistral-Small-2506":{"id":"mistralai/Magistral-Small-2506","name":"Magistral Small 2506","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":4096}},"mistralai/Mistral-Large-Instruct-2411":{"id":"mistralai/Mistral-Large-Instruct-2411","name":"Mistral Large Instruct 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01,"cache_write":0.04},"limit":{"context":128000,"output":4096}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.38,"cache_read":0.065,"cache_write":0.26},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"cache_read":0.075,"cache_write":0.3},"limit":{"context":430000,"output":4096}},"meta-llama/Llama-3.2-90B-Vision-Instruct":{"id":"meta-llama/Llama-3.2-90B-Vision-Instruct","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.4,"cache_read":0.175,"cache_write":0.7},"limit":{"context":16000,"output":4096}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":8.75,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT-OSS 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14,"cache_read":0.015,"cache_write":0.06},"limit":{"context":64000,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.4,"cache_read":0.02,"cache_write":0.08},"limit":{"context":131072,"output":4096}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.25,"cache_read":0.275,"cache_write":1.1},"limit":{"context":32768,"output":4096}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-09-05","last_updated":"2024-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":1.9,"cache_read":0.195,"cache_write":0.78},"limit":{"context":32768,"output":4096}}}},"alibaba-cn":{"id":"alibaba-cn","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope.aliyuncs.com/compatible-mode/v1","name":"Alibaba (China)","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"qwen-plus-character":{"id":"qwen-plus-character","name":"Qwen Plus Character","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":32768,"output":4096}},"qwen2-5-math-7b-instruct":{"id":"qwen2-5-math-7b-instruct","name":"Qwen2.5-Math 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":4096,"output":3072}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Moonshot Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.411},"limit":{"context":262144,"output":32768}},"qwen-doc-turbo":{"id":"qwen-doc-turbo","name":"Qwen Doc Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.087,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.717,"output":0.717},"limit":{"context":34096,"output":4096}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.287,"reasoning":0.717},"limit":{"context":131072,"output":8192}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":2.58,"reasoning":2.58},"limit":{"context":262144,"output":65536}},"qwen-math-turbo":{"id":"qwen-math-turbo","name":"Qwen Math Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":4096,"output":3072}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":131072,"output":8192}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.15},"limit":{"context":202752,"output":16384}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.345,"output":1.377},"limit":{"context":131072,"output":8192}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287,"reasoning":1.147},"limit":{"context":1000000,"output":32768}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.216},"limit":{"context":1000000,"output":32768}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.717},"limit":{"context":131072,"output":8192}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qwen3.5-flash":{"id":"qwen3.5-flash","name":"Qwen3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-23","last_updated":"2026-02-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.172,"output":1.72,"reasoning":1.72},"limit":{"context":1000000,"output":65536}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.276,"output":1.651,"cache_read":0.028,"cache_write":0.344},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"deepseek-v3-1":{"id":"deepseek-v3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":65536}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.286705,"output":1.14682,"reasoning":2.867051},"limit":{"context":131072,"output":32768}},"qwen-math-plus":{"id":"qwen-math-plus","name":"Qwen Math Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-08-16","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"qwen2-5-coder-32b-instruct":{"id":"qwen2-5-coder-32b-instruct","name":"Qwen2.5-Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.032,"output":0.032},"limit":{"context":53248,"output":4096}},"qwen-deep-research":{"id":"qwen-deep-research","name":"Qwen Deep Research","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.742,"output":23.367},"limit":{"context":1000000,"output":32768}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":1.434},"limit":{"context":131072,"output":32768}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.259,"output":0.775},"limit":{"context":16384,"output":8192}},"deepseek-r1-distill-qwen-32b":{"id":"deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.574},"limit":{"context":1000000,"output":65536}},"deepseek-r1-distill-qwen-7b":{"id":"deepseek-r1-distill-qwen-7b","name":"DeepSeek R1 Distill Qwen 7B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.144},"limit":{"context":32768,"output":16384}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.431},"limit":{"context":131072,"output":8192}},"tongyi-intent-detect-v3":{"id":"tongyi-intent-detect-v3","name":"Tongyi Intent Detect V3","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.058,"output":0.144},"limit":{"context":8192,"output":1024}},"qwq-32b":{"id":"qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"moonshot-kimi-k2-instruct":{"id":"moonshot-kimi-k2-instruct","name":"Moonshot Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":8192}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574},"limit":{"context":131072,"output":32768}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.108,"output":0.431,"reasoning":1.076},"limit":{"context":131072,"output":32768}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.143353,"output":1.433525,"reasoning":4.300576},"limit":{"context":262144,"output":32768}},"deepseek-v3-2-exp":{"id":"deepseek-v3-2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.431},"limit":{"context":131072,"output":65536}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"deepseek-r1-distill-qwen-1-5b":{"id":"deepseek-r1-distill-qwen-1-5b","name":"DeepSeek R1 Distill Qwen 1.5B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.216,"output":0.861},"limit":{"context":262144,"output":65536}},"qwen2-5-coder-7b-instruct":{"id":"qwen2-5-coder-7b-instruct","name":"Qwen2.5-Coder 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":131072,"output":8192}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-07-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.044,"output":0.087,"reasoning":0.431},"limit":{"context":1000000,"output":16384}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.101,"output":0.28},"limit":{"context":16384,"output":8192}},"qwen2-5-math-72b-instruct":{"id":"qwen2-5-math-72b-instruct","name":"Qwen2.5-Math 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.087,"output":0.345,"input_audio":5.448},"limit":{"context":32768,"output":2048}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.573,"output":3.44,"reasoning":3.44},"limit":{"context":1000000,"output":65536}},"deepseek-r1-distill-qwen-14b":{"id":"deepseek-r1-distill-qwen-14b","name":"DeepSeek R1 Distill Qwen 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.431},"limit":{"context":32768,"output":16384}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.294,"output":6.881},"limit":{"context":131072,"output":8192}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":1.147},"limit":{"context":65536,"output":8192}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.147,"output":4.588},"limit":{"context":131072,"output":8192}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Moonshot Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":262144,"output":16384}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574,"reasoning":1.434},"limit":{"context":131072,"output":8192}},"deepseek-r1-distill-llama-8b":{"id":"deepseek-r1-distill-llama-8b","name":"DeepSeek R1 Distill Llama 8B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"qwen-long":{"id":"qwen-long","name":"Qwen Long","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.287},"limit":{"context":10000000,"output":8192}},"kimi/kimi-k2.5":{"id":"kimi/kimi-k2.5","name":"kimi/kimi-k2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"MiniMax/MiniMax-M2.7":{"id":"MiniMax/MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"siliconflow/deepseek-v3-0324":{"id":"siliconflow/deepseek-v3-0324","name":"siliconflow/deepseek-v3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":163840,"output":163840}},"siliconflow/deepseek-v3.2":{"id":"siliconflow/deepseek-v3.2","name":"siliconflow/deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":163840,"output":65536}},"siliconflow/deepseek-r1-0528":{"id":"siliconflow/deepseek-r1-0528","name":"siliconflow/deepseek-r1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":163840,"output":32768}},"siliconflow/deepseek-v3.1-terminus":{"id":"siliconflow/deepseek-v3.1-terminus","name":"siliconflow/deepseek-v3.1-terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":65536}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}}}},"minimax-cn-coding-plan":{"id":"minimax-cn-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax Coding Plan (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/coding-plan/intro","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"jiekou":{"id":"jiekou","env":["JIEKOU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.jiekou.ai/openai","name":"Jiekou.AI","doc":"https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"gpt-5.1-codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":22.5},"limit":{"context":200000,"output":65536}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65536}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"gpt-5.2-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18.9,"output":151.2},"limit":{"context":400000,"output":128000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":10.8},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"gemini-2.5-flash-preview-05-20","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.135,"output":3.15},"limit":{"context":1048576,"output":200000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":65535}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.575,"output":12.6},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"gemini-2.5-pro-preview-06-05","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":200000}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"gemini-2.5-flash-lite-preview-06-17","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","video","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"gpt-5.2-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":2.25},"limit":{"context":1048576,"output":65535}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"gpt-5.1-codex-mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"grok-code-fast-1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.35},"limit":{"context":256000,"output":256000}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":131072,"output":131072}},"grok-4-0709":{"id":"grok-4-0709","name":"grok-4-0709","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":256000,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"gpt-5-codex","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.5},"limit":{"context":20000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"claude-sonnet-4-20250514","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"claude-opus-4-6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"o3":{"id":"o3","name":"o3","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40},"limit":{"context":131072,"output":131072}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":108},"limit":{"context":400000,"output":272000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"gpt-5-chat-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"claude-opus-4-20250514","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"gpt-5.1-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.14},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":163840,"output":32768}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":65536,"output":16384}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":128000}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","family":"ernie","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":131072,"output":16384}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":131072}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"qwen/qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}}}},"bailing":{"id":"bailing","env":["BAILING_API_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tbox.cn/api/llm/v1/chat/completions","name":"Bailing","doc":"https://alipaytbox.yuque.com/sxs0ba/ling/intro","models":{"Ring-1T":{"id":"Ring-1T","name":"Ring-1T","family":"ring","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}},"Ling-1T":{"id":"Ling-1T","name":"Ling-1T","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}}}},"iflowcn":{"id":"iflowcn","env":["IFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://apis.iflow.cn/v1","name":"iFlow","doc":"https://platform.iflow.cn/en/docs","models":{"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3-Coder-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3-Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"qwen3-235b-a22b-instruct":{"id":"qwen3-235b-a22b-instruct","name":"Qwen3-235B-A22B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3-235B-A22B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi-K2-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL-Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-235b":{"id":"qwen3-235b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"kimi-k2":{"id":"kimi-k2","name":"Kimi-K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3-Max-Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}}}},"v0":{"id":"v0","env":["V0_API_KEY"],"npm":"@ai-sdk/vercel","name":"v0","doc":"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel","models":{"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0-1.5-lg","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":512000,"output":32000}},"v0-1.0-md":{"id":"v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}}}},"huggingface":{"id":"huggingface","env":["HF_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://router.huggingface.co/v1","name":"Hugging Face","doc":"https://huggingface.co/docs/inference-providers","models":{"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3-Coder-Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen 3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Embedding-4B":{"id":"Qwen/Qwen3-Embedding-4B","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":66536}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":4096}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}}}},"zenmux":{"id":"zenmux","env":["ZENMUX_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://zenmux.ai/api/v1","name":"ZenMux","doc":"https://docs.zenmux.ai","models":{"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek-V3.2 (Non-thinking Mode)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek-V3.2-Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.33},"limit":{"context":163000,"output":64000}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.43},"limit":{"context":128000,"output":64000}},"inclusionai/ring-1t":{"id":"inclusionai/ring-1t","name":"Ring-1T","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-12","last_updated":"2025-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"inclusionai/ling-1t":{"id":"inclusionai/ling-1t","name":"Ling-1T","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"stepfun/step-3.5-flash-free":{"id":"stepfun/step-3.5-flash-free","name":"Step 3.5 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":256000,"output":64000}},"stepfun/step-3":{"id":"stepfun/step-3","name":"Step-3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":65536,"output":64000}},"kuaishou/kat-coder-pro-v2":{"id":"kuaishou/kat-coder-pro-v2","name":"KAT-Coder-Pro-V2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-30","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":80000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4.2-fast":{"id":"x-ai/grok-4.2-fast","name":"Grok 4.2 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.2-fast-non-reasoning":{"id":"x-ai/grok-4.2-fast-non-reasoning","name":"Grok 4.2 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16380},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":128000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2026-01-15","last_updated":"2026-01-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":45,"output":225},"limit":{"context":1050000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75},"limit":{"context":1050000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"z-ai/glm-4.7-flash-free":{"id":"z-ai/glm-4.7-flash-free","name":"GLM 4.7 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-5v-turbo":{"id":"z-ai/glm-5v-turbo","name":"GLM 5V Turbo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.726,"output":3.1946,"cache_read":0.1743},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.14,"cache_read":0.06},"limit":{"context":200000,"output":64000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM 5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":2.6,"cache_read":0.14},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flashx":{"id":"z-ai/glm-4.7-flashx","name":"GLM 4.7 FlashX","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.42,"cache_read":0.01},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6v-flash-free":{"id":"z-ai/glm-4.6v-flash-free","name":"GLM 4.6V Flash (Free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-5.1":{"id":"z-ai/glm-5.1","name":"GLM-5.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8781,"output":3.5126,"cache_read":0.1903},"limit":{"context":200000,"output":131072}},"z-ai/glm-4.6v-flash":{"id":"z-ai/glm-4.6v-flash","name":"GLM 4.6V FlashX","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.21,"cache_read":0.0043},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.56,"cache_read":0.02},"limit":{"context":128000,"output":64000}},"z-ai/glm-5-turbo":{"id":"z-ai/glm-5-turbo","name":"GLM 5 Turbo","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":3.48},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.42,"cache_read":0.03},"limit":{"context":200000,"output":64000}},"volcengine/doubao-seed-2.0-code":{"id":"volcengine/doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.48},"limit":{"context":256000,"output":32000}},"volcengine/doubao-seed-code":{"id":"volcengine/doubao-seed-code","name":"Doubao-Seed-Code","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.12,"cache_read":0.03},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-mini":{"id":"volcengine/doubao-seed-2.0-mini","name":"Doubao-Seed-2.0-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.28,"cache_read":0.01,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-lite":{"id":"volcengine/doubao-seed-2.0-lite","name":"Doubao-Seed-2.0-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.51,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-1.8":{"id":"volcengine/doubao-seed-1.8","name":"Doubao-Seed-1.8","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.28,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-pro":{"id":"volcengine/doubao-seed-2.0-pro","name":"Doubao-Seed-2.0-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":2.24,"cache_read":0.09,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"baidu/ernie-5.0-thinking-preview":{"id":"baidu/ernie-5.0-thinking-preview","name":"ERNIE 5.0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.84,"output":3.37},"limit":{"context":128000,"output":64000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3055,"output":1.2219},"limit":{"context":204800,"output":131070},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 highspeed","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.611,"output":2.4439},"limit":{"context":204800,"output":131070},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.5-lightning":{"id":"minimax/minimax-m2.5-lightning","name":"MiniMax M2.5 highspeed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen3-Coder-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":1000000,"output":64000}},"qwen/qwen3.5-flash":{"id":"qwen/qwen3.5-flash","name":"Qwen3.5 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1020000,"output":1020000}},"qwen/qwen3.6-plus":{"id":"qwen/qwen3.6-plus","name":"Qwen3.6-Plus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-30","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":0.625,"context_over_200k":{"input":2,"output":6,"cache_read":0.2,"cache_write":2.5}},"limit":{"context":1000000,"output":64000}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3-Max-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":256000,"output":64000}},"qwen/qwen3.5-plus":{"id":"qwen/qwen3.5-plus","name":"Qwen3.5 Plus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4.8},"limit":{"context":1000000,"output":64000}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1050000,"output":65530}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-19","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.07,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03,"cache_write":1},"limit":{"context":1048000,"output":64000}},"sapiens-ai/agnes-1.5-lite":{"id":"sapiens-ai/agnes-1.5-lite","name":"Agnes 1.5 Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-26","last_updated":"2026-03-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.6},"limit":{"context":256000,"output":256000}},"sapiens-ai/agnes-1.5-pro":{"id":"sapiens-ai/agnes-1.5-pro","name":"Agnes 1.5 Pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-21","last_updated":"2026-03-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.8},"limit":{"context":256000,"output":256000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":false,"knowledge":"2025-01-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":3.02,"cache_read":0.1},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2024-11-04","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo V2 Omni","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":265000,"output":265000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":4.5},"limit":{"context":1000000,"output":256000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262000,"output":64000}}}},"upstage":{"id":"upstage","env":["UPSTAGE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.upstage.ai/v1/solar","name":"Upstage","doc":"https://developers.upstage.ai/docs/apis/chat","models":{"solar-pro2":{"id":"solar-pro2","name":"solar-pro2","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":65536,"output":8192}},"solar-mini":{"id":"solar-mini","name":"solar-mini","family":"solar-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-06-12","last_updated":"2025-04-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":4096}},"solar-pro3":{"id":"solar-pro3","name":"solar-pro3","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":131072,"output":8192}}}},"novita-ai":{"id":"novita-ai","env":["NOVITA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.novita.ai/openai","name":"NovitaAI","doc":"https://novita.ai/docs/guides/introduction","models":{"deepseek/deepseek-r1-turbo":{"id":"deepseek/deepseek-r1-turbo","name":"DeepSeek R1 (Turbo)\t","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-ocr-2":{"id":"deepseek/deepseek-ocr-2","name":"deepseek/deepseek-ocr-2","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-ocr":{"id":"deepseek/deepseek-ocr","name":"DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill LLama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"Deepseek Prover V2 671B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":160000,"output":160000}},"deepseek/deepseek-r1-0528-qwen3-8b":{"id":"deepseek/deepseek-r1-0528-qwen3-8b","name":"DeepSeek R1 0528 Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-05-29","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.09},"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"Deepseek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"Deepseek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.269,"output":0.4,"cache_read":0.1345},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3-turbo":{"id":"deepseek/deepseek-v3-turbo","name":"DeepSeek V3 (Turbo)\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.3},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5,"cache_read":0.35},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"Deepseek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"paddlepaddle/paddleocr-vl":{"id":"paddlepaddle/paddleocr-vl","name":"PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16384,"output":16384}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai-org/glm-5.1":{"id":"zai-org/glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5-air":{"id":"zai-org/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.6v":{"id":"zai-org/glm-4.6v","name":"GLM 4.6V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.055},"limit":{"context":131072,"output":32768}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai-org/autoglm-phone-9b-multilingual":{"id":"zai-org/autoglm-phone-9b-multilingual","name":"AutoGLM-Phone-9B-Multilingual","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":65536,"output":65536}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-07-30","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"baichuan/baichuan-m2-32b":{"id":"baichuan/baichuan-m2-32b","name":"baichuan-m2-32b","family":"baichuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-12","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":131072,"output":131072}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.59},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-07","last_updated":"2024-12-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.135,"output":0.4},"limit":{"context":131072,"output":120000}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":8192,"output":8192}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Llama3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.85},"limit":{"context":1048576,"output":8192}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"Mythomax L2 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":4096,"output":3200}},"sao10k/l31-70b-euryale-v2.2":{"id":"sao10k/l31-70b-euryale-v2.2","name":"L31 70B Euryale V2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3-70b-euryale-v2.1":{"id":"sao10k/l3-70b-euryale-v2.1","name":"L3 70B Euryale V2.1\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2024-06-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/L3-8B-Stheno-v3.2":{"id":"sao10k/L3-8B-Stheno-v3.2","name":"L3 8B Stheno V3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":32000}},"sao10k/l3-8b-lunaris":{"id":"sao10k/l3-8b-lunaris","name":"Sao10k L3 8B Lunaris\t","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":8192}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"Wizardlm 2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: GPT OSS 20B","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.25},"limit":{"context":131072,"output":32768}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.3},"limit":{"context":262144,"output":32000}},"baidu/ernie-4.5-vl-28b-a3b-thinking":{"id":"baidu/ernie-4.5-vl-28b-a3b-thinking","name":"ERNIE-4.5-VL-28B-A3B-Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":0.39},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-21B-a3b":{"id":"baidu/ernie-4.5-21B-a3b","name":"ERNIE 4.5 21B A3B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21B-a3b-thinking":{"id":"baidu/ernie-4.5-21B-a3b-thinking","name":"ERNIE-4.5-21B-A3B-Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":30000,"output":8000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"MiniMax M2.5 Highspeed","family":"minimax-m2.5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"qwen/qwen2.5-7b-instruct":{"id":"qwen/qwen2.5-7b-instruct","name":"Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"output":32000}},"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen3.5-122B-A10B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":3.2},"limit":{"context":262144,"output":65536}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen3.5-27B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.4},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.58},"limit":{"context":131072,"output":16384}},"qwen/qwen3-omni-30b-a3b-instruct":{"id":"qwen/qwen3-omni-30b-a3b-instruct","name":"Qwen3 Omni 30B A3B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","video","audio","image"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":64000}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.98,"output":3.95},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"qwen/qwen3-vl-30b-a3b-thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1},"limit":{"context":131072,"output":32768}},"qwen/qwen3-omni-30b-a3b-thinking":{"id":"qwen/qwen3-omni-30b-a3b-thinking","name":"Qwen3 Omni 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","audio","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"qwen/qwen3-vl-8b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.11,"output":8.45},"limit":{"context":262144,"output":65536}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-4b-fp8":{"id":"qwen/qwen3-4b-fp8","name":"Qwen3 4B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":128000,"output":20000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen-mt-plus":{"id":"qwen/qwen-mt-plus","name":"Qwen MT Plus","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-03","last_updated":"2025-09-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75},"limit":{"context":16384,"output":8192}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"qwen/qwen3-vl-30b-a3b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30b A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"qwen/qwen3-8b-fp8":{"id":"qwen/qwen3-8b-fp8","name":"Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":128000,"output":20000}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":0.4},"limit":{"context":32000,"output":8192}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen3.5-35B-A3B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":65536}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kat Coder Pro","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-05","last_updated":"2026-01-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":128000}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma 4 31B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.4},"limit":{"context":262144,"output":131072}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.119,"output":0.2},"limit":{"context":98304,"output":16384}},"google/gemma-4-26b-a4b-it":{"id":"google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":262144,"output":131072}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}}}},"xiaomi-token-plan-cn":{"id":"xiaomi-token-plan-cn","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://token-plan-cn.xiaomimimo.com/v1","name":"Xiaomi Token Plan (China)","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":128000}},"mimo-v2-tts":{"id":"mimo-v2-tts","name":"MiMo-V2-TTS","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["audio"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":16000}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}}}},"wandb":{"id":"wandb","env":["WANDB_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inference.wandb.ai/v1","name":"Weights & Biases","doc":"https://docs.wandb.ai/guides/integrations/inference/","models":{"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1.5},"limit":{"context":262144,"output":262144}},"zai-org/GLM-5-FP8":{"id":"zai-org/GLM-5-FP8","name":"GLM 5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":200000,"output":200000}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":64000,"output":64000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":128000,"output":128000}},"OpenPipe/Qwen3-14B-Instruct":{"id":"OpenPipe/Qwen3-14B-Instruct","name":"OpenPipe Qwen3 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":32768,"output":32768}},"microsoft/Phi-4-mini-instruct":{"id":"microsoft/Phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.35},"limit":{"context":128000,"output":128000}},"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8":{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8","name":"NVIDIA Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":161000,"output":161000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.85},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}}}},"chutes":{"id":"chutes","env":["CHUTES_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.chutes.ai/v1","name":"Chutes","doc":"https://llm.chutes.ai/v1/models","models":{"miromind-ai/MiroThinker-v1.5-235B":{"id":"miromind-ai/MiroThinker-v1.5-235B","name":"MiroThinker V1.5 235B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.15},"limit":{"context":262144,"output":8192}},"OpenGVLab/InternVL3-78B-TEE":{"id":"OpenGVLab/InternVL3-78B-TEE","name":"InternVL3 78B TEE","family":"opengvlab","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-06","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":32768}},"NousResearch/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes 3 Mistral 24B Preview","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":32768,"output":32768}},"NousResearch/Hermes-4-405B-FP8-TEE":{"id":"NousResearch/Hermes-4-405B-FP8-TEE","name":"Hermes 4 405B FP8 TEE","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"NousResearch/Hermes-4.3-36B":{"id":"NousResearch/Hermes-4.3-36B","name":"Hermes 4.3 36B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":8192}},"NousResearch/Hermes-4-14B":{"id":"NousResearch/Hermes-4-14B","name":"Hermes 4 14B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.05},"limit":{"context":40960,"output":40960}},"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes 4 70B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":131072,"output":131072}},"Qwen/Qwen3-30B-A3B":{"id":"Qwen/Qwen3-30B-A3B","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":40960,"output":40960}},"Qwen/Qwen2.5-VL-72B-Instruct-TEE":{"id":"Qwen/Qwen2.5-VL-72B-Instruct-TEE","name":"Qwen2.5 VL 72B Instruct TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3Guard-Gen-0.6B":{"id":"Qwen/Qwen3Guard-Gen-0.6B","name":"Qwen3Guard Gen 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.33},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE","name":"Qwen3 235B A22B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.55,"cache_read":0.04},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":16384,"output":16384}},"Qwen/Qwen3.5-397B-A17B-TEE":{"id":"Qwen/Qwen3.5-397B-A17B-TEE","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":2.34,"cache_read":0.195},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE","name":"Qwen3 Coder 480B A35B Instruct FP8 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":32768,"output":32768}},"zai-org/GLM-5.1-TEE":{"id":"zai-org/GLM-5.1-TEE","name":"GLM 5.1 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15,"cache_read":0.475},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.35},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-TEE":{"id":"zai-org/GLM-4.5-TEE","name":"GLM 4.5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.55},"limit":{"context":131072,"output":65536}},"zai-org/GLM-4.6-FP8":{"id":"zai-org/GLM-4.6-FP8","name":"GLM 4.6 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM 4.7 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-5-TEE":{"id":"zai-org/GLM-5-TEE","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15,"cache_read":0.475},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"zai-org/GLM-4.7-TEE":{"id":"zai-org/GLM-4.7-TEE","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.5},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM 4.6V","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.15},"limit":{"context":131072,"output":65536}},"zai-org/GLM-5-Turbo":{"id":"zai-org/GLM-5-Turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":1.96,"cache_read":0.245},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6-TEE":{"id":"zai-org/GLM-4.6-TEE","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.7,"cache_read":0.2},"limit":{"context":202752,"output":65536}},"mistralai/Devstral-2-123B-Instruct-2512-TEE":{"id":"mistralai/Devstral-2-123B-Instruct-2512-TEE","name":"Devstral 2 123B Instruct 2512 TEE","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":262144,"output":65536}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":262144,"output":32000}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18},"limit":{"context":131072,"output":131072}},"chutesai/Mistral-Small-3.1-24B-Instruct-2503":{"id":"chutesai/Mistral-Small-3.1-24B-Instruct-2503","name":"Mistral Small 3.1 24B Instruct 2503","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16","name":"NVIDIA Nemotron 3 Nano 30B A3B BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"deepseek-ai/DeepSeek-R1-TEE":{"id":"deepseek-ai/DeepSeek-R1-TEE","name":"DeepSeek R1 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-R1-Distill-Llama-70B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3.1-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-TEE","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3-0324-TEE":{"id":"deepseek-ai/DeepSeek-V3-0324-TEE","name":"DeepSeek V3 0324 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.19,"output":0.87,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-Speciale-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-Speciale-TEE","name":"DeepSeek V3.2 Speciale TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus-TEE","name":"DeepSeek V3.1 Terminus TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":0.9},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528-TEE":{"id":"deepseek-ai/DeepSeek-R1-0528-TEE","name":"DeepSeek R1 0528 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-TEE","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.14},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt oss 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b-TEE":{"id":"openai/gpt-oss-120b-TEE","name":"gpt oss 120b TEE","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.18},"limit":{"context":131072,"output":65536}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"gemma 3 12b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"unsloth/Llama-3.2-3B-Instruct":{"id":"unsloth/Llama-3.2-3B-Instruct","name":"Llama 3.2 3B Instruct","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-02-12","last_updated":"2025-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":16384,"output":16384}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"gemma 3 4b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.03},"limit":{"context":96000,"output":96000}},"unsloth/Llama-3.2-1B-Instruct":{"id":"unsloth/Llama-3.2-1B-Instruct","name":"Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"unsloth/Mistral-Nemo-Instruct-2407":{"id":"unsloth/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01},"limit":{"context":131072,"output":131072}},"unsloth/Mistral-Small-24B-Instruct-2501":{"id":"unsloth/Mistral-Small-24B-Instruct-2501","name":"Mistral Small 24B Instruct 2501","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"gemma 3 27b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"moonshotai/Kimi-K2-Thinking-TEE":{"id":"moonshotai/Kimi-K2-Thinking-TEE","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":262144,"output":65535}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.195},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5-TEE":{"id":"moonshotai/Kimi-K2.5-TEE","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":65535}},"MiniMaxAI/MiniMax-M2.1-TEE":{"id":"MiniMaxAI/MiniMax-M2.1-TEE","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12},"limit":{"context":196608,"output":65536}},"MiniMaxAI/MiniMax-M2.5-TEE":{"id":"MiniMaxAI/MiniMax-M2.5-TEE","name":"MiniMax M2.5 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.1,"cache_read":0.15},"limit":{"context":196608,"output":65536}},"rednote-hilab/dots.ocr":{"id":"rednote-hilab/dots.ocr","name":"dots.ocr","family":"rednote","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":131072,"output":131072}},"tngtech/TNG-R1T-Chimera-Turbo":{"id":"tngtech/TNG-R1T-Chimera-Turbo","name":"TNG R1T Chimera Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.6},"limit":{"context":163840,"output":65536}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":163840}},"tngtech/DeepSeek-R1T-Chimera":{"id":"tngtech/DeepSeek-R1T-Chimera","name":"DeepSeek R1T Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"tngtech/TNG-R1T-Chimera-TEE":{"id":"tngtech/TNG-R1T-Chimera-TEE","name":"TNG R1T Chimera TEE","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":65536}}}},"dinference":{"id":"dinference","env":["DINFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.dinference.com/v1","name":"DInference","doc":"https://dinference.com","models":{"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.65},"limit":{"context":200000,"output":128000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.4},"limit":{"context":200000,"output":128000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08","last_updated":"2025-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0675,"output":0.27},"limit":{"context":131072,"output":32768}}}},"vivgrid":{"id":"vivgrid","env":["VIVGRID_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.vivgrid.com/v1","name":"Vivgrid","doc":"https://docs.vivgrid.com/models","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42},"limit":{"context":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}}}},"deepinfra":{"id":"deepinfra","env":["DEEPINFRA_API_KEY"],"npm":"@ai-sdk/deepinfra","name":"Deep Infra","doc":"https://deepinfra.com/models","models":{"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.6},"limit":{"context":262144,"output":66536}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304},"status":"deprecated"},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":16384}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":202752,"output":16384}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56,"cache_read":0.16},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":204800,"output":131072}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.74,"cache_read":0.08},"limit":{"context":204800,"output":131072}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":10000000,"output":16384}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-8B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-8B-Instruct-Turbo","name":"Llama 3.1 8B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.03},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1000000,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-70B-Instruct-Turbo","name":"Llama 3.1 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15,"cache_read":0.35},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":0.38,"cache_read":0.13},"limit":{"context":163840,"output":64000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":16384}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":16384}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-06","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2},"limit":{"context":131072,"output":32768}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":32768}},"MiniMaxAI/MiniMax-M2":{"id":"MiniMaxAI/MiniMax-M2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.254,"output":1.02},"limit":{"context":262144,"output":32768}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":196608}},"anthropic/claude-3-7-sonnet-latest":{"id":"anthropic/claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (Latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.33},"limit":{"context":200000,"output":64000}},"anthropic/claude-4-opus":{"id":"anthropic/claude-4-opus","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5},"limit":{"context":200000,"output":32000}}}},"qiniu-ai":{"id":"qiniu-ai","env":["QINIU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qnaigc.com/v1","name":"Qiniu","doc":"https://developer.qiniu.com/aitokenapi","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen 3 235B A22B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-1.6-flash":{"id":"doubao-seed-1.6-flash","name":"Doubao-Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235b A22B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":64000}},"doubao-seed-2.0-code":{"id":"doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"doubao-1.5-thinking-pro":{"id":"doubao-1.5-thinking-pro","name":"Doubao 1.5 Thinking Pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-22","last_updated":"2026-02-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"qwen-vl-max-2025-01-25":{"id":"qwen-vl-max-2025-01-25","name":"Qwen VL-MAX-2025-01-25","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":12000}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen 2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen3-vl-30b-a3b-thinking":{"id":"qwen3-vl-30b-a3b-thinking","name":"Qwen3-Vl 30b A3b Thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-09","last_updated":"2026-02-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"gemini-3.0-pro-image-preview":{"id":"gemini-3.0-pro-image-preview","name":"Gemini 3.0 Pro Image Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":65536}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"claude-4.0-opus":{"id":"claude-4.0-opus","name":"Claude 4.0 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Claude 4.5 Haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":65536}},"gemini-3.0-flash-preview":{"id":"gemini-3.0-flash-preview","name":"Gemini 3.0 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":98304}},"claude-3.5-sonnet":{"id":"claude-3.5-sonnet","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8200}},"claude-4.0-sonnet":{"id":"claude-4.0-sonnet","name":"Claude 4.0 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30b A3b Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-1.6-thinking":{"id":"doubao-seed-1.6-thinking","name":"Doubao-Seed 1.6 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":4096}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"qwen3-30b-a3b-thinking-2507":{"id":"qwen3-30b-a3b-thinking-2507","name":"Qwen3 30b A3b Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":126000,"output":32000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":4096}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"claude-4.1-opus":{"id":"claude-4.1-opus","name":"Claude 4.1 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"doubao-seed-2.0-mini":{"id":"doubao-seed-2.0-mini","name":"Doubao Seed 2.0 Mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"doubao-seed-1.6":{"id":"doubao-seed-1.6","name":"Doubao-Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen2.5-vl-7b-instruct":{"id":"qwen2.5-vl-7b-instruct","name":"Qwen 2.5 VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"kling-v2-6":{"id":"kling-v2-6","name":"Kling-V2 6","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-13","last_updated":"2026-01-13","modalities":{"input":["text","image","video"],"output":["video"]},"open_weights":false,"limit":{"context":99999999,"output":99999999}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":80000}},"gemini-3.0-pro-preview":{"id":"gemini-3.0-pro-preview","name":"Gemini 3.0 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"doubao-seed-2.0-lite":{"id":"doubao-seed-2.0-lite","name":"Doubao Seed 2.0 Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-14","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262000,"output":4096}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8192}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen-Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":4096}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":128000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3 Max Preview","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-06","last_updated":"2025-09-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"doubao-1.5-vision-pro":{"id":"doubao-1.5-vision-pro","name":"Doubao 1.5 Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Claude 4.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen-max-2025-01-25":{"id":"qwen-max-2025-01-25","name":"Qwen2.5-Max-2025-01-25","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"doubao-seed-2.0-pro":{"id":"doubao-seed-2.0-pro","name":"Doubao Seed 2.0 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"deepseek/deepseek-v3.2-exp-thinking":{"id":"deepseek/deepseek-v3.2-exp-thinking","name":"DeepSeek/DeepSeek-V3.2-Exp-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.1-terminus-thinking":{"id":"deepseek/deepseek-v3.1-terminus-thinking","name":"DeepSeek/DeepSeek-V3.1-Terminus-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek/DeepSeek-V3.2-Exp","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-251201":{"id":"deepseek/deepseek-v3.2-251201","name":"Deepseek/DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-math-v2":{"id":"deepseek/deepseek-math-v2","name":"Deepseek/Deepseek-Math-V2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":160000,"output":160000}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek/DeepSeek-V3.1-Terminus","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"stepfun-ai/gelab-zero-4b-preview":{"id":"stepfun-ai/gelab-zero-4b-preview","name":"Stepfun-Ai/Gelab Zero 4b Preview","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":8192,"output":4096}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Stepfun/Step-3.5 Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":64000,"output":4096}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"x-AI/Grok-4-Fast","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"x-AI/Grok-Code-Fast 1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-02","last_updated":"2025-09-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":10000}},"x-ai/grok-4-fast-reasoning":{"id":"x-ai/grok-4-fast-reasoning","name":"X-Ai/Grok-4-Fast-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"X-Ai/Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"x-AI/Grok-4.1-Fast","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4-fast-non-reasoning":{"id":"x-ai/grok-4-fast-non-reasoning","name":"X-Ai/Grok-4-Fast-Non-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"X-Ai/Grok 4.1 Fast Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":20000000,"output":2000000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI/GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI/GPT-5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z-Ai/GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z-Ai/GLM 5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"z-ai/autoglm-phone-9b":{"id":"z-ai/autoglm-phone-9b","name":"Z-Ai/Autoglm Phone 9b","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":12800,"output":4096}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z-AI/GLM 4.6","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"Minimax/Minimax-M2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax/Minimax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"Minimax/Minimax-M2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"Minimax/Minimax-M2.5 Highspeed","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Moonshotai/Kimi-K2.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi/Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan/Longcat-Flash-Chat","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-05","last_updated":"2025-11-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":131072}},"meituan/longcat-flash-lite":{"id":"meituan/longcat-flash-lite","name":"Meituan/Longcat-Flash-Lite","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":320000}}}},"kilo":{"id":"kilo","env":["KILO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.kilo.ai/api/gateway","name":"Kilo Gateway","doc":"https://kilo.ai","models":{"giga-potato":{"id":"giga-potato","name":"Giga Potato (free)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"corethink:free":{"id":"corethink:free","name":"CoreThink (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":78000,"output":8192}},"giga-potato-thinking":{"id":"giga-potato-thinking","name":"Giga Potato Thinking (free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"morph-warp-grep-v2":{"id":"morph-warp-grep-v2","name":"Morph: WarpGrep V2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"ai21/jamba-large-1.7":{"id":"ai21/jamba-large-1.7","name":"AI21: Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":256000,"output":4096}},"alibaba/tongyi-deepresearch-30b-a3b":{"id":"alibaba/tongyi-deepresearch-30b-a3b","name":"Tongyi DeepResearch 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.45},"limit":{"context":131072,"output":131072}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection: Inflection 3 Pi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection: Inflection 3 Productivity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"liquid/lfm2-8b-a1b":{"id":"liquid/lfm2-8b-a1b","name":"LiquidAI: LFM2-8B-A1B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"liquid/lfm-2.2-6b":{"id":"liquid/lfm-2.2-6b","name":"LiquidAI: LFM2-2.6B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"liquid/lfm-2-24b-a2b":{"id":"liquid/lfm-2-24b-a2b","name":"LiquidAI: LFM2-24B-A2B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.12},"limit":{"context":32768,"output":32768}},"writer/palmyra-x5":{"id":"writer/palmyra-x5","name":"Writer: Palmyra X5","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"ibm-granite/granite-4.0-h-micro":{"id":"ibm-granite/granite-4.0-h-micro","name":"IBM: Granite 4.0 Micro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.017,"output":0.11},"limit":{"context":131000,"output":32768}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"EssentialAI: Rnj 1 Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":6554}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Perplexity: Sonar Pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar-deep-research":{"id":"perplexity/sonar-deep-research","name":"Perplexity: Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Perplexity: Sonar","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127072,"output":25415}},"perplexity/sonar-pro-search":{"id":"perplexity/sonar-pro-search","name":"Perplexity: Sonar Pro Search","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-31","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Perplexity: Sonar Reasoning Pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek: DeepSeek V3.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":32768,"output":7168}},"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek: DeepSeek V3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":0.89,"cache_read":0.15},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek: R1 Distill Llama 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.8,"cache_read":0.015},"limit":{"context":131072,"output":16384}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek: R1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek: DeepSeek V3.2 Speciale","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-qwen-32b":{"id":"deepseek/deepseek-r1-distill-qwen-32b","name":"DeepSeek: R1 Distill Qwen 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.29},"limit":{"context":32768,"output":32768}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek: DeepSeek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek: DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38,"cache_read":0.125},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek: DeepSeek V3 0324","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.77,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek: R1 0528","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.15,"cache_read":0.2},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek: DeepSeek V3.1 Terminus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.21,"output":0.79,"cache_read":0.13},"limit":{"context":163840,"output":32768}},"openrouter/hunter-alpha":{"id":"openrouter/hunter-alpha","name":"Hunter Alpha","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1048576,"output":32000}},"openrouter/auto":{"id":"openrouter/auto","name":"Auto Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["image","text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000000,"output":32768}},"openrouter/bodybuilder":{"id":"openrouter/bodybuilder","name":"Body Builder (beta)","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768},"status":"beta"},"openrouter/healer-alpha":{"id":"openrouter/healer-alpha","name":"Healer Alpha","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["audio","image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32000}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":32768}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Arcee AI: Trinity Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"arcee-ai/virtuoso-large":{"id":"arcee-ai/virtuoso-large","name":"Arcee AI: Virtuoso Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":1.2},"limit":{"context":131072,"output":64000}},"arcee-ai/spotlight":{"id":"arcee-ai/spotlight","name":"Arcee AI: Spotlight","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":131072,"output":65537}},"arcee-ai/maestro-reasoning":{"id":"arcee-ai/maestro-reasoning","name":"Arcee AI: Maestro Reasoning","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":3.3},"limit":{"context":131072,"output":32000}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Arcee AI: Trinity Large Preview (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131000,"output":26200}},"arcee-ai/coder-large":{"id":"arcee-ai/coder-large","name":"Arcee AI: Coder Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":0.8},"limit":{"context":32768,"output":32768}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Deep Cogito: Cogito v2.1 671B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":32768}},"upstage/solar-pro-3":{"id":"upstage/solar-pro-3","name":"Upstage: Solar Pro 3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"Nex AGI: DeepSeek V3.1 Nex N1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":163840}},"bytedance-seed/seed-1.6":{"id":"bytedance-seed/seed-1.6","name":"ByteDance Seed: Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-2.0-lite":{"id":"bytedance-seed/seed-2.0-lite","name":"ByteDance Seed: Seed-2.0-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":131072}},"bytedance-seed/seed-1.6-flash":{"id":"bytedance-seed/seed-1.6-flash","name":"ByteDance Seed: Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-2.0-mini":{"id":"bytedance-seed/seed-2.0-mini","name":"ByteDance Seed: Seed-2.0-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-27","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"output":131072}},"mancer/weaver":{"id":"mancer/weaver","name":"Mancer: Weaver (alpha)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":1},"limit":{"context":8000,"output":2000}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":16384,"output":2048}},"kilo-auto/balanced":{"id":"kilo-auto/balanced","name":"Kilo Auto Balanced","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3},"limit":{"context":204800,"output":131072}},"kilo-auto/frontier":{"id":"kilo-auto/frontier","name":"Kilo Auto Frontier","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"kilo-auto/small":{"id":"kilo-auto/small","name":"Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"kilo-auto/free":{"id":"kilo-auto/free","name":"Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-07-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":0.65},"limit":{"context":6144,"output":4096}},"allenai/olmo-2-0325-32b-instruct":{"id":"allenai/olmo-2-0325-32b-instruct","name":"AllenAI: Olmo 2 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":128000,"output":32768}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"AllenAI: Molmo2 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-09","last_updated":"2026-01-31","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"output":36864}},"allenai/olmo-3-7b-think":{"id":"allenai/olmo-3-7b-think","name":"AllenAI: Olmo 3 7B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"AllenAI: Olmo 3.1 32B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"output":32768}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"AllenAI: Olmo 3.1 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"allenai/olmo-3-7b-instruct":{"id":"allenai/olmo-3-7b-instruct","name":"AllenAI: Olmo 3 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"AllenAI: Olmo 3 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"NousResearch: Hermes 2 Pro - Llama-3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-05-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Nous: Hermes 4 405B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":26215}},"nousresearch/hermes-3-llama-3.1-70b":{"id":"nousresearch/hermes-3-llama-3.1-70b","name":"Nous: Hermes 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":131072,"output":32768}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Nous: Hermes 4 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.055},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-3-llama-3.1-405b":{"id":"nousresearch/hermes-3-llama-3.1-405b","name":"Nous: Hermes 3 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1},"limit":{"context":131072,"output":16384}},"kilo/auto":{"id":"kilo/auto","name":"Kilo: Auto","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"kilo/auto-small":{"id":"kilo/auto-small","name":"Deprecated Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"kilo/auto-free":{"id":"kilo/auto-free","name":"Deprecated Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph: Morph V3 Fast","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":81920,"output":38000}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph: Morph V3 Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":262144,"output":131072}},"eleutherai/llemma_7b":{"id":"eleutherai/llemma_7b","name":"EleutherAI: Llemma 7b","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"StepFun: Step 3.5 Flash (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"StepFun: Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"alpindale/goliath-120b":{"id":"alpindale/goliath-120b","name":"Goliath 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-11-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.75,"output":7.5},"limit":{"context":6144,"output":1024}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral: Mistral Nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":16384}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral: Saba","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":32768,"output":32768}},"mistralai/mistral-large-2512":{"id":"mistralai/mistral-large-2512","name":"Mistral: Mistral Large 3 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":52429}},"mistralai/devstral-medium":{"id":"mistralai/devstral-medium","name":"Mistral: Devstral Medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral: Mistral Small 3.1 24B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.56,"cache_read":0.015},"limit":{"context":128000,"output":131072}},"mistralai/pixtral-large-2411":{"id":"mistralai/pixtral-large-2411","name":"Mistral: Pixtral Large 2411","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Mistral: Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.025},"limit":{"context":262144,"output":65536}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Mistral: Codestral 2508","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":51200}},"mistralai/mistral-small-24b-instruct-2501":{"id":"mistralai/mistral-small-24b-instruct-2501","name":"Mistral: Mistral Small 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":32768,"output":16384}},"mistralai/mistral-large-2411":{"id":"mistralai/mistral-large-2411","name":"Mistral Large 2411","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":26215}},"mistralai/mixtral-8x22b-instruct":{"id":"mistralai/mixtral-8x22b-instruct","name":"Mistral: Mixtral 8x22B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":65536,"output":13108}},"mistralai/mistral-large-2407":{"id":"mistralai/mistral-large-2407","name":"Mistral Large 2407","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Mistral: Ministral 3 8B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"output":32768}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral: Mistral Medium 3.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Mistral: Ministral 3 3B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":32768}},"mistralai/voxtral-small-24b-2507":{"id":"mistralai/voxtral-small-24b-2507","name":"Mistral: Voxtral Small 24B 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32000,"output":6400}},"mistralai/mixtral-8x7b-instruct":{"id":"mistralai/mixtral-8x7b-instruct","name":"Mistral: Mixtral 8x7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-12-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.54,"output":0.54},"limit":{"context":32768,"output":16384}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral: Mistral Medium 3","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral: Mistral Small 3.2 24B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18,"cache_read":0.03},"limit":{"context":131072,"output":131072}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral: Mistral Small Creative","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"output":32768}},"mistralai/devstral-small":{"id":"mistralai/devstral-small","name":"Mistral: Devstral Small 1.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":26215}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":25600}},"mistralai/mistral-7b-instruct-v0.1":{"id":"mistralai/mistral-7b-instruct-v0.1","name":"Mistral: Mistral 7B Instruct v0.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":2824,"output":565}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Mistral: Ministral 3 14B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"output":52429}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Meta: Llama 3.3 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Meta: Llama 4 Scout","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":327680,"output":16384}},"meta-llama/llama-guard-3-8b":{"id":"meta-llama/llama-guard-3-8b","name":"Llama Guard 3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06},"limit":{"context":131072,"output":26215}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Meta: Llama 4 Maverick","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-12-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048576,"output":16384}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Meta: Llama 3.2 11B Vision Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.049,"output":0.049},"limit":{"context":131072,"output":16384}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Meta: Llama Guard 4 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":163840,"output":32768}},"meta-llama/llama-3.1-70b-instruct":{"id":"meta-llama/llama-3.1-70b-instruct","name":"Meta: Llama 3.1 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":26215}},"meta-llama/llama-3.1-405b":{"id":"meta-llama/llama-3.1-405b","name":"Meta: Llama 3.1 405B (base)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":32768,"output":32768}},"meta-llama/llama-3.2-1b-instruct":{"id":"meta-llama/llama-3.2-1b-instruct","name":"Meta: Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.027,"output":0.2},"limit":{"context":60000,"output":12000}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Meta: Llama 3.2 3B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":80000,"output":16384}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Meta: Llama 3 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.04},"limit":{"context":8192,"output":16384}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Meta: Llama 3.1 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Meta: Llama 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-3.1-405b-instruct":{"id":"meta-llama/llama-3.1-405b-instruct","name":"Meta: Llama 3.1 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":131000,"output":26200}},"x-ai/grok-code-fast-1:optimized:free":{"id":"x-ai/grok-code-fast-1:optimized:free","name":"xAI: Grok Code Fast 1 Optimized (experimental, free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":10000}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"xAI: Grok 4.20 Multi-Agent Beta","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"xAI: Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"xAI: Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"xAI: Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"xAI: Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":51200}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"xAI: Grok 3 Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"xAI: Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"xAI: Grok 4.20 Beta","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"xAI: Grok 3 Mini Beta","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"xAI: Grok 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"tencent/hunyuan-a13b-instruct":{"id":"tencent/hunyuan-a13b-instruct","name":"Tencent: Hunyuan A13B Instruct","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131072,"output":131072}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"MythoMax 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.06},"limit":{"context":4096,"output":4096}},"sao10k/l3-euryale-70b":{"id":"sao10k/l3-euryale-70b","name":"Sao10k: Llama 3 Euryale 70B v2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3-lunaris-8b":{"id":"sao10k/l3-lunaris-8b","name":"Sao10K: Llama 3 8B Lunaris","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.05},"limit":{"context":8192,"output":8192}},"sao10k/l3.3-euryale-70b":{"id":"sao10k/l3.3-euryale-70b","name":"Sao10K: Llama 3.3 Euryale 70B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.75},"limit":{"context":131072,"output":16384}},"sao10k/l3.1-70b-hanami-x1":{"id":"sao10k/l3.1-70b-hanami-x1","name":"Sao10K: Llama 3.1 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-08","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":16000,"output":16000}},"sao10k/l3.1-euryale-70b":{"id":"sao10k/l3.1-euryale-70b","name":"Sao10K: Llama 3.1 Euryale 70B v2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":0.85},"limit":{"context":131072,"output":16384}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Microsoft: Phi 4","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.14},"limit":{"context":16384,"output":16384}},"cohere/command-r7b-12-2024":{"id":"cohere/command-r7b-12-2024","name":"Cohere: Command R7B (12-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"cohere/command-a":{"id":"cohere/command-a","name":"Cohere: Command A","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8192}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+ (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"cohere/command-r-08-2024":{"id":"cohere/command-r-08-2024","name":"Cohere: Command R (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Prime Intellect: INTELLECT-3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"NVIDIA: Llama 3.3 Nemotron Super 49B V1.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"NVIDIA: Nemotron 3 Nano 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":262144,"output":52429}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"NVIDIA: Nemotron Nano 12B 2 VL","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-3-super-120b-a12b:free":{"id":"nvidia/nemotron-3-super-120b-a12b:free","name":"NVIDIA: Nemotron 3 Super (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"NVIDIA: Nemotron Nano 9B V2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":26215}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"NVIDIA: Llama 3.1 Nemotron 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":131072,"output":16384}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Inception: Mercury 2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Inception: Mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Inception: Mercury Coder","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"OpenAI: GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"OpenAI: GPT-5.2 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"OpenAI: GPT-4o-mini Search Preview","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"OpenAI: GPT-5 Chat","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-2024-05-13":{"id":"openai/gpt-4o-2024-05-13","name":"OpenAI: GPT-4o (2024-05-13)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"OpenAI: GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2026-03-04","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"OpenAI: GPT-5.2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-4-1106-preview":{"id":"openai/gpt-4-1106-preview","name":"OpenAI: GPT-4 Turbo (older v1106)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-4o-audio-preview":{"id":"openai/gpt-4o-audio-preview","name":"OpenAI: GPT-4o Audio","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-15","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"OpenAI: GPT-5 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"OpenAI: GPT-5 Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"OpenAI: GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-02-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"openai/gpt-3.5-turbo-16k":{"id":"openai/gpt-3.5-turbo-16k","name":"OpenAI: GPT-3.5 Turbo 16k","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16385,"output":4096}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"OpenAI: GPT-4 Turbo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-09-13","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI: GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"OpenAI: o3 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI: o3 Mini High","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI: o4 Mini Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"OpenAI: GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI: o4 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"OpenAI: GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini-2024-07-18":{"id":"openai/gpt-4o-mini-2024-07-18","name":"OpenAI: GPT-4o-mini (2024-07-18)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"OpenAI: GPT-4o (2024-08-06)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"OpenAI: GPT-5 Image","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":10,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"OpenAI: GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/o1":{"id":"openai/o1","name":"OpenAI: o1","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"OpenAI: GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"output":128000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"OpenAI: GPT-3.5 Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"output":4096}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI: o3 Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI: o3 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-20","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"OpenAI: GPT-4 Turbo Preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI: o1-pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"release_date":"2025-03-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"openai/gpt-4":{"id":"openai/gpt-4","name":"OpenAI: GPT-4","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-14","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-4-0314":{"id":"openai/gpt-4-0314","name":"OpenAI: GPT-4 (older v0314)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"OpenAI: GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"OpenAI: GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"output":128000}},"openai/gpt-audio":{"id":"openai/gpt-audio","name":"OpenAI: GPT Audio","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-4o:extended":{"id":"openai/gpt-4o:extended","name":"OpenAI: GPT-4o (extended)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":18},"limit":{"context":128000,"output":64000}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"OpenAI: GPT-4o Search Preview","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"OpenAI: GPT-4.1 Nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1047576,"output":32768}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI: o4 Mini High","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-04-17","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"openai/o3":{"id":"openai/o3","name":"OpenAI: o3","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":26215}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"OpenAI: GPT-5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":128000}},"openai/gpt-audio-mini":{"id":"openai/gpt-audio-mini","name":"OpenAI: GPT Audio Mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"output":16384}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"OpenAI: GPT-4o","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-3.5-turbo-0613":{"id":"openai/gpt-3.5-turbo-0613","name":"OpenAI: GPT-3.5 Turbo (older v0613)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":4095,"output":4096}},"openai/gpt-5-image-mini":{"id":"openai/gpt-5-image-mini","name":"OpenAI: GPT-5 Image Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2.5,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI: GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"OpenAI: gpt-oss-safeguard-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.037},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI: gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.039,"output":0.19},"limit":{"context":131072,"output":26215}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"OpenAI: GPT-3.5 Turbo Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4095,"output":4096}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"OpenAI: GPT-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"OpenAI: GPT-4.1 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"OpenAI: GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"OpenAI: GPT-4o (2024-11-20)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon: Nova Lite 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":300000,"output":5120}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon: Nova Pro 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":300000,"output":5120}},"amazon/nova-premier-v1":{"id":"amazon/nova-premier-v1","name":"Amazon: Nova Premier 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":32000}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon: Nova 2 Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65535}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon: Nova Micro 1.0","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14},"limit":{"context":128000,"output":5120}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z.ai: GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.98,"cache_read":0.2},"limit":{"context":202752,"output":65535}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z.ai: GLM 5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":2.3},"limit":{"context":202752,"output":131072}},"z-ai/glm-4-32b":{"id":"z-ai/glm-4-32b","name":"Z.ai: GLM 4 32B ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"z-ai/glm-5.1":{"id":"z-ai/glm-5.1","name":"Z.ai: GLM 5.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.26,"output":3.96},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"Z.ai: GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.175},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"Z.ai: GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85,"cache_read":0.025},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"Z.ai: GLM 4.5V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z.ai: GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.175},"limit":{"context":204800,"output":204800}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"Z.ai: GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-01-10","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":131072,"output":131072}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"Z.ai: GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":202752,"output":40551}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"Baidu: ERNIE 4.5 VL 424B A47B ","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"Baidu: ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.56},"limit":{"context":30000,"output":8000}},"baidu/ernie-4.5-21b-a3b":{"id":"baidu/ernie-4.5-21b-a3b","name":"Baidu: ERNIE 4.5 21B A3B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"Baidu: ERNIE 4.5 300B A47B ","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21b-a3b-thinking":{"id":"baidu/ernie-4.5-21b-a3b-thinking","name":"Baidu: ERNIE 4.5 21B A3B Thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"relace/relace-apply-3":{"id":"relace/relace-apply-3","name":"Relace: Relace Apply 3","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-09-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.25},"limit":{"context":256000,"output":128000}},"relace/relace-search":{"id":"relace/relace-search","name":"Relace: Relace Search","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":256000,"output":128000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax: MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax: MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.255,"output":1,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax: MiniMax-01","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000192,"output":1000192}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax: MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03},"limit":{"context":196608,"output":39322}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax: MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax: MiniMax M2-her","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":65536,"output":2048}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax: MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.2,"cache_read":0.029},"limit":{"context":196608,"output":196608}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen: Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.455,"output":1.82,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen: Qwen3.5-122B-A10B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.08},"limit":{"context":262144,"output":65536}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen: Qwen2.5 Coder 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":32768,"output":6554}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen: Qwen3 Coder Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3.25,"cache_read":0.2},"limit":{"context":1000000,"output":65536}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen: Qwen3.5-27B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.195,"output":1.56},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-2507":{"id":"qwen/qwen3-235b-a22b-2507","name":"Qwen: Qwen3 235B A22B Instruct 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.071,"output":0.1},"limit":{"context":262144,"output":52429}},"qwen/qwen3-8b":{"id":"qwen/qwen3-8b","name":"Qwen: Qwen3 8B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.05},"limit":{"context":40960,"output":8192}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen: Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":2.34},"limit":{"context":262144,"output":65536}},"qwen/qwen-vl-plus":{"id":"qwen/qwen-vl-plus","name":"Qwen: Qwen VL Plus","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1365,"output":0.4095,"cache_read":0.042},"limit":{"context":131072,"output":8192}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen: Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen: Qwen2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"qwen/qwen-max":{"id":"qwen/qwen-max","name":"Qwen: Qwen-Max ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-03","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.04,"output":4.16,"cache_read":0.32},"limit":{"context":32768,"output":8192}},"qwen/qwen-plus":{"id":"qwen/qwen-plus","name":"Qwen: Qwen-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen: Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.6},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"Qwen: Qwen3 VL 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":1.56},"limit":{"context":131072,"output":32768}},"qwen/qwen2.5-vl-32b-instruct":{"id":"qwen/qwen2.5-vl-32b-instruct","name":"Qwen: Qwen2.5 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.025},"limit":{"context":128000,"output":16384}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"Qwen: Qwen3 VL 8B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3.5-flash-02-23":{"id":"qwen/qwen3.5-flash-02-23","name":"Qwen: Qwen3.5-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen: Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"qwen/qwen-plus-2025-07-28":{"id":"qwen/qwen-plus-2025-07-28","name":"Qwen: Qwen Plus 0728","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen: Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.3,"cache_read":0.04},"limit":{"context":262144,"output":262144}},"qwen/qwen3-vl-32b-instruct":{"id":"qwen/qwen3-vl-32b-instruct","name":"Qwen: Qwen3 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.104,"output":0.416},"limit":{"context":131072,"output":32768}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen: Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen: Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0975,"output":0.78},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen: Qwen3 30B A3B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":32768,"output":6554}},"qwen/qwen-2.5-7b-instruct":{"id":"qwen/qwen-2.5-7b-instruct","name":"Qwen: Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.1},"limit":{"context":32768,"output":6554}},"qwen/qwen-vl-max":{"id":"qwen/qwen-vl-max","name":"Qwen: Qwen VL Max","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen: Qwen3 Coder Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.195,"output":0.975,"cache_read":0.06},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-30b-a3b":{"id":"qwen/qwen3-30b-a3b","name":"Qwen: Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.28,"cache_read":0.03},"limit":{"context":40960,"output":40960}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.4},"limit":{"context":32768,"output":32768}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen: Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":131072,"output":52429}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen: Qwen3 Coder Next","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.75,"cache_read":0.035},"limit":{"context":262144,"output":65536}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-11-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2,"cache_read":0.015},"limit":{"context":32768,"output":8192}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"Qwen: Qwen3 VL 30B A3B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen: Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-max-thinking":{"id":"qwen/qwen3-max-thinking","name":"Qwen: Qwen3 Max Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.78,"output":3.9},"limit":{"context":262144,"output":32768}},"qwen/qwen-turbo":{"id":"qwen/qwen-turbo","name":"Qwen: Qwen-Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0325,"output":0.13,"cache_read":0.01},"limit":{"context":131072,"output":8192}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen: Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.88,"cache_read":0.11},"limit":{"context":262144,"output":52429}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen: Qwen3 Coder 480B A35B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1,"cache_read":0.022},"limit":{"context":262144,"output":52429}},"qwen/qwen-2.5-vl-7b-instruct":{"id":"qwen/qwen-2.5-vl-7b-instruct","name":"Qwen: Qwen2.5-VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-28","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"output":6554}},"qwen/qwen3.5-9b":{"id":"qwen/qwen3.5-9b","name":"Qwen: Qwen3.5-9B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":32768}},"qwen/qwen3-vl-8b-thinking":{"id":"qwen/qwen3-vl-8b-thinking","name":"Qwen: Qwen3 VL 8B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.117,"output":1.365},"limit":{"context":131072,"output":32768}},"qwen/qwen-plus-2025-07-28:thinking":{"id":"qwen/qwen-plus-2025-07-28:thinking","name":"Qwen: Qwen Plus 0728 (thinking)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.39},"limit":{"context":32768,"output":16384}},"qwen/qwen3-14b":{"id":"qwen/qwen3-14b","name":"Qwen: Qwen3 14B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.025},"limit":{"context":40960,"output":40960}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen: Qwen3.5-35B-A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1625,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen: Qwen3.5 Plus 2026-02-15","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":1.56},"limit":{"context":1000000,"output":65536}},"alfredpros/codellama-7b-instruct-solidity":{"id":"alfredpros/codellama-7b-instruct-solidity","name":"AlfredPros: CodeLLaMa 7B Instruct Solidity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kwaipilot: KAT-Coder-Pro V1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.207,"output":0.828,"cache_read":0.0414},"limit":{"context":256000,"output":128000}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Google: Gemini 2.5 Pro Preview 05-06","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65535}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Google: Gemini 3.1 Pro Preview Custom Tools","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Google: Gemini 2.5 Flash Lite Preview 09-2025","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Google: Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"cache_write":0.083333},"limit":{"context":1048576,"output":8192}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Google: Gemma 3n 4B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":6554}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Google: Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Google: Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Google: Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"reasoning":3,"cache_read":0.05,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Google: Gemini 3 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-18","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"cache_read":0.2,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Google: Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Google: Gemma 2 9B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":1639}},"google/gemini-3-pro-image-preview":{"id":"google/gemini-3-pro-image-preview","name":"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":65536,"output":32768}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Google: Nano Banana (Gemini 2.5 Flash Image)","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-08","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Google: Gemma 3 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.13,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"reasoning":2.5,"cache_read":0.03,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":65536,"output":65536}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Google: Gemma 3 4B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.08},"limit":{"context":131072,"output":19200}},"google/gemini-2.5-pro-preview":{"id":"google/gemini-2.5-pro-preview","name":"Google: Gemini 2.5 Pro Preview 06-05","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-05","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Google: Gemma 2 27B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.65},"limit":{"context":8192,"output":2048}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Google: Gemma 3 27B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Google: Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-2.0-flash-lite-001":{"id":"google/gemini-2.0-flash-lite-001","name":"Google: Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"MoonshotAI: Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.2},"limit":{"context":262144,"output":65535}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"MoonshotAI: Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":131072,"output":26215}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"MoonshotAI: Kimi K2 0711","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131000,"output":26215}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"MoonshotAI: Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2,"cache_read":0.2},"limit":{"context":131072,"output":65535}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"AionLabs: Aion-1.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4,"output":8},"limit":{"context":131072,"output":32768}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"AionLabs: Aion-RP 1.0 (8B)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":32768,"output":32768}},"aion-labs/aion-2.0":{"id":"aion-labs/aion-2.0","name":"AionLabs: Aion-2.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":131072,"output":32768}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"AionLabs: Aion-1.0-Mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":1.4},"limit":{"context":131072,"output":32768}},"thedrummer/unslopnemo-12b":{"id":"thedrummer/unslopnemo-12b","name":"TheDrummer: UnslopNemo 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"thedrummer/cydonia-24b-v4.1":{"id":"thedrummer/cydonia-24b-v4.1","name":"TheDrummer: Cydonia 24B V4.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"output":131072}},"thedrummer/skyfall-36b-v2":{"id":"thedrummer/skyfall-36b-v2","name":"TheDrummer: Skyfall 36B V2","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":0.8},"limit":{"context":32768,"output":32768}},"thedrummer/rocinante-12b":{"id":"thedrummer/rocinante-12b","name":"TheDrummer: Rocinante 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.43},"limit":{"context":32768,"output":32768}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Anthropic: Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.7-sonnet:thinking":{"id":"anthropic/claude-3.7-sonnet:thinking","name":"Anthropic: Claude 3.7 Sonnet (thinking)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Anthropic: Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Anthropic: Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30},"limit":{"context":200000,"output":8192}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Anthropic: Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Anthropic: Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-24","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Anthropic: Claude 3 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Anthropic: Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Anthropic: Claude Haiku 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Anthropic: Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":1000000,"output":128000}},"switchpoint/router":{"id":"switchpoint/router","name":"Switchpoint Router","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-07-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.4},"limit":{"context":131072,"output":32768}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi: MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29,"cache_read":0.045},"limit":{"context":262144,"output":65536}},"bytedance/ui-tars-1.5-7b":{"id":"bytedance/ui-tars-1.5-7b","name":"ByteDance: UI-TARS 7B ","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"output":2048}},"tngtech/deepseek-r1t2-chimera":{"id":"tngtech/deepseek-r1t2-chimera","name":"TNG: DeepSeek R1T2 Chimera","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85,"cache_read":0.125},"limit":{"context":163840,"output":163840}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan: LongCat Flash Chat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8,"cache_read":0.2},"limit":{"context":131072,"output":131072}}}},"sap-ai-core":{"id":"sap-ai-core","env":["AICORE_SERVICE_KEY"],"npm":"@jerome-benoit/sap-ai-provider-v2","name":"SAP AI Core","doc":"https://help.sap.com/docs/sap-ai-core","models":{"anthropic--claude-4.6-opus":{"id":"anthropic--claude-4.6-opus","name":"anthropic--claude-4.6-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic--claude-3-haiku":{"id":"anthropic--claude-3-haiku","name":"anthropic--claude-3-haiku","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic--claude-3-opus":{"id":"anthropic--claude-3-opus","name":"anthropic--claude-3-opus","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":1048576,"output":65536}},"anthropic--claude-3.7-sonnet":{"id":"anthropic--claude-3.7-sonnet","name":"anthropic--claude-3.7-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"sonar-pro":{"id":"sonar-pro","name":"sonar-pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"anthropic--claude-4.5-sonnet":{"id":"anthropic--claude-4.5-sonnet","name":"anthropic--claude-4.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic--claude-4.6-sonnet":{"id":"anthropic--claude-4.6-sonnet","name":"anthropic--claude-4.6-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"sonar-deep-research":{"id":"sonar-deep-research","name":"sonar-deep-research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"input_audio":1},"limit":{"context":1048576,"output":65536}},"anthropic--claude-4.5-opus":{"id":"anthropic--claude-4.5-opus","name":"anthropic--claude-4.5-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"sonar":{"id":"sonar","name":"sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"anthropic--claude-4-opus":{"id":"anthropic--claude-4-opus","name":"anthropic--claude-4-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic--claude-3-sonnet":{"id":"anthropic--claude-3-sonnet","name":"anthropic--claude-3-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":4096}},"anthropic--claude-4-sonnet":{"id":"anthropic--claude-4-sonnet","name":"anthropic--claude-4-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"anthropic--claude-4.5-haiku":{"id":"anthropic--claude-4.5-haiku","name":"anthropic--claude-4.5-haiku","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"gpt-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"anthropic--claude-3.5-sonnet":{"id":"anthropic--claude-3.5-sonnet","name":"anthropic--claude-3.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}}}},"morph":{"id":"morph","env":["MORPH_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.morphllm.com/v1","name":"Morph","doc":"https://docs.morphllm.com/api-reference/introduction","models":{"auto":{"id":"auto","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.55},"limit":{"context":32000,"output":32000}},"morph-v3-fast":{"id":"morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"morph-v3-large":{"id":"morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}}}},"cloudflare-ai-gateway":{"id":"cloudflare-ai-gateway","env":["CLOUDFLARE_API_TOKEN","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_GATEWAY_ID"],"npm":"ai-gateway-provider","name":"Cloudflare AI Gateway","doc":"https://developers.cloudflare.com/ai-gateway/","models":{"workers-ai/@cf/myshell-ai/melotts":{"id":"workers-ai/@cf/myshell-ai/melotts","name":"MyShell MeloTTS","family":"melotts","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/ibm-granite/granite-4.0-h-micro":{"id":"workers-ai/@cf/ibm-granite/granite-4.0-h-micro","name":"IBM Granite 4.0 H Micro","family":"granite","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.017,"output":0.11},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/huggingface/distilbert-sst-2-int8":{"id":"workers-ai/@cf/huggingface/distilbert-sst-2-int8","name":"DistilBERT SST-2 INT8","family":"distilbert","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.026,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/zai-org/glm-4.7-flash":{"id":"workers-ai/@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"workers-ai/@cf/pipecat-ai/smart-turn-v2":{"id":"workers-ai/@cf/pipecat-ai/smart-turn-v2","name":"Pipecat Smart Turn v2","family":"smart-turn","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct":{"id":"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/facebook/bart-large-cnn":{"id":"workers-ai/@cf/facebook/bart-large-cnn","name":"BART Large CNN","family":"bart","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"id":"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it","name":"Gemma SEA-LION v4 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{"id":"workers-ai/@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"id":"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":4.88},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-20b":{"id":"workers-ai/@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-120b":{"id":"workers-ai/@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1":{"id":"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct-awq","name":"Llama 3 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-guard-3-8b":{"id":"workers-ai/@cf/meta/llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":0.03},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/m2m100-1.2b":{"id":"workers-ai/@cf/meta/m2m100-1.2b","name":"M2M100 1.2B","family":"m2m","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-2-7b-chat-fp16":{"id":"workers-ai/@cf/meta/llama-2-7b-chat-fp16","name":"Llama 2 7B Chat FP16","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":6.67},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049,"output":0.68},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"id":"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast","name":"Llama 3.3 70B Instruct FP8 Fast","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.25},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-1b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.027,"output":0.2},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8","name":"Llama 3.1 8B Instruct FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.29},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-3b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq","name":"Llama 3.1 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.83},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.8299999999999998},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct":{"id":"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct","name":"Qwen 2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-embedding-0.6b":{"id":"workers-ai/@cf/qwen/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwq-32b":{"id":"workers-ai/@cf/qwen/qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8":{"id":"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/google/gemma-3-12b-it":{"id":"workers-ai/@cf/google/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/moonshotai/kimi-k2.5":{"id":"workers-ai/@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B":{"id":"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B","name":"IndicTrans2 EN-Indic 1B","family":"indictrans","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/pfnet/plamo-embedding-1b":{"id":"workers-ai/@cf/pfnet/plamo-embedding-1b","name":"PLaMo Embedding 1B","family":"plamo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.019,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-small-en-v1.5":{"id":"workers-ai/@cf/baai/bge-small-en-v1.5","name":"BGE Small EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-large-en-v1.5":{"id":"workers-ai/@cf/baai/bge-large-en-v1.5","name":"BGE Large EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-reranker-base":{"id":"workers-ai/@cf/baai/bge-reranker-base","name":"BGE Reranker Base","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0031,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-base-en-v1.5":{"id":"workers-ai/@cf/baai/bge-base-en-v1.5","name":"BGE Base EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.067,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-m3":{"id":"workers-ai/@cf/baai/bge-m3","name":"BGE M3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-en":{"id":"workers-ai/@cf/deepgram/aura-2-en","name":"Deepgram Aura 2 (EN)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-es":{"id":"workers-ai/@cf/deepgram/aura-2-es","name":"Deepgram Aura 2 (ES)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/nova-3":{"id":"workers-ai/@cf/deepgram/nova-3","name":"Deepgram Nova 3","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4":{"id":"openai/gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"ai-gateway-provider"}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-5-haiku":{"id":"anthropic/claude-3-5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-sonnet":{"id":"anthropic/claude-3-sonnet","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}}}},"github-copilot":{"id":"github-copilot","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.githubcopilot.com","name":"GitHub Copilot","doc":"https://docs.github.com/en/copilot","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"claude-opus-4.6":{"id":"claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":64000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1-Codex-mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":216000,"input":128000,"output":16000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-27","last_updated":"2025-08-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"claude-sonnet-4.5":{"id":"claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"claude-opus-41":{"id":"claude-opus-41","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":80000,"output":16000}},"claude-opus-4.5":{"id":"claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":160000,"input":128000,"output":32000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":4096}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"claude-haiku-4.5":{"id":"claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":16384}},"claude-sonnet-4.6":{"id":"claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":128000,"output":32000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}}}},"mixlayer":{"id":"mixlayer","env":["MIXLAYER_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://models.mixlayer.ai/v1","name":"Mixlayer","doc":"https://docs.mixlayer.com","models":{"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen3.5 122B A10B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":3.2},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen3.5 27B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-9b":{"id":"qwen/qwen3.5-9b","name":"Qwen3.5 9B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen3.5 35B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.3},"limit":{"context":262144,"output":262144}}}},"xiaomi-token-plan-sgp":{"id":"xiaomi-token-plan-sgp","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://token-plan-sgp.xiaomimimo.com/v1","name":"Xiaomi Token Plan (Singapore)","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}},"mimo-v2-tts":{"id":"mimo-v2-tts","name":"MiMo-V2-TTS","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["audio"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":16000}},"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":128000}}}},"zai":{"id":"zai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/paas/v4","name":"Z.AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":4.4,"cache_read":0.26,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}}}},"opencode":{"id":"opencode","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/v1","name":"OpenCode Zen","doc":"https://opencode.ai/docs/zen","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.08},"limit":{"context":262144,"output":65536}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"glm-4.7-free":{"id":"glm-4.7-free","name":"GLM-4.7 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5-free":{"id":"kimi-k2.5-free","name":"Kimi K2.5 Free","family":"kimi-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"minimax-m2.5-free":{"id":"minimax-m2.5-free","name":"MiniMax M2.5 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"big-pickle":{"id":"big-pickle","name":"Big Pickle","family":"big-pickle","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-3-5-haiku":{"id":"claude-3-5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":204800,"output":131072}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"trinity-large-preview-free":{"id":"trinity-large-preview-free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072},"status":"deprecated"},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"glm-5-free":{"id":"glm-5-free","name":"GLM-5 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.1-free":{"id":"minimax-m2.1-free","name":"MiniMax M2.1 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated","provider":{"npm":"@ai-sdk/anthropic"}},"qwen3.6-plus-free":{"id":"qwen3.6-plus-free","name":"Qwen3.6 Plus Free","family":"qwen-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-30","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1048576,"output":64000},"status":"deprecated"},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gemini-3-pro":{"id":"gemini-3-pro","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"status":"deprecated","provider":{"npm":"@ai-sdk/google"}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"grok-code":{"id":"grok-code","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-20","last_updated":"2025-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":256000,"output":256000},"status":"deprecated"},"mimo-v2-flash-free":{"id":"mimo-v2-flash-free","name":"MiMo V2 Flash Free","family":"mimo-flash-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":65536},"status":"deprecated"},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":262144,"output":65536},"status":"deprecated"},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"mimo-v2-pro-free":{"id":"mimo-v2-pro-free","name":"MiMo V2 Pro Free","family":"mimo-pro-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1048576,"output":64000},"status":"deprecated"},"nemotron-3-super-free":{"id":"nemotron-3-super-free","name":"Nemotron 3 Super Free","family":"nemotron-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":128000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"mimo-v2-omni-free":{"id":"mimo-v2-omni-free","name":"MiMo V2 Omni Free","family":"mimo-omni-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":64000},"status":"deprecated"}}},"stepfun":{"id":"stepfun","env":["STEPFUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.stepfun.com/v1","name":"StepFun","doc":"https://platform.stepfun.com/docs/zh/overview/concept","models":{"step-3.5-flash-2603":{"id":"step-3.5-flash-2603","name":"Step 3.5 Flash 2603","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"input":256000,"output":256000}},"step-1-32k":{"id":"step-1-32k","name":"Step 1 (32K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.05,"output":9.59,"cache_read":0.41},"limit":{"context":32768,"input":32768,"output":32768}},"step-3.5-flash":{"id":"step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.096,"output":0.288,"cache_read":0.019},"limit":{"context":256000,"input":256000,"output":256000}},"step-2-16k":{"id":"step-2-16k","name":"Step 2 (16K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5.21,"output":16.44,"cache_read":1.04},"limit":{"context":16384,"input":16384,"output":8192}}}},"nebius":{"id":"nebius","env":["NEBIUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tokenfactory.nebius.com/v1","name":"Nebius Token Factory","doc":"https://docs.tokenfactory.nebius.com/","models":{"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes-4-70B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"reasoning":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"NousResearch/Hermes-4-405B":{"id":"NousResearch/Hermes-4-405B","name":"Hermes-4-405B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"reasoning":3,"cache_read":0.1,"cache_write":1.25},"limit":{"context":128000,"input":120000,"output":8192}},"black-forest-labs/flux-schnell":{"id":"black-forest-labs/flux-schnell","name":"FLUX.1-schnell","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}},"black-forest-labs/flux-dev":{"id":"black-forest-labs/flux-dev","name":"FLUX.1-dev","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3-30B-A3B-Thinking-2507","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"reasoning":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen3-32B-fast":{"id":"Qwen/Qwen3-32B-fast","name":"Qwen3-32B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3-Embedding-8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2025-10","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3-30B-A3B-Instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.2,"reasoning":1.2,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.8},"limit":{"context":262144,"output":66536}},"Qwen/Qwen2.5-Coder-7B-fast":{"id":"Qwen/Qwen2.5-Coder-7B-fast","name":"Qwen2.5-Coder-7B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-19","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":8192}},"PrimeIntellect/INTELLECT-3":{"id":"PrimeIntellect/INTELLECT-3","name":"INTELLECT-3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-25","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.2,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM-4.7 (FP8)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2,"cache_read":0.04,"cache_write":0.5},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-01","last_updated":"2026-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.1,"cache_write":1},"limit":{"context":200000,"input":200000,"output":16384}},"BAAI/bge-en-icl":{"id":"BAAI/bge-en-icl","name":"BGE-ICL","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"BAAI/bge-multilingual-gemma2":{"id":"BAAI/bge-multilingual-gemma2","name":"bge-multilingual-gemma2","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":8192,"input":8192,"output":0}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct-fast":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-fast","name":"Meta-Llama-3.1-8B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct-fast":{"id":"meta-llama/Llama-3.3-70B-Instruct-fast","name":"Llama-3.3-70B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"meta-llama/Llama-Guard-3-8B":{"id":"meta-llama/Llama-Guard-3-8B","name":"Llama-Guard-3-8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2024-04","release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":1024}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":128000,"input":120000,"output":4096}},"nvidia/Nemotron-Nano-V2-12b":{"id":"nvidia/Nemotron-Nano-V2-12b","name":"Nemotron-Nano-V2-12b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2,"cache_read":0.007,"cache_write":0.08},"limit":{"context":32000,"input":30000,"output":4096}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron-3-Super-120B-A12B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"input":256000,"output":32768}},"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":4096}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B","name":"Nemotron-3-Nano-30B-A3B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.006,"cache_write":0.075},"limit":{"context":32000,"input":30000,"output":4096}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5,"cache_read":0.05,"cache_write":0.1875},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-V3-0324-fast":{"id":"deepseek-ai/DeepSeek-V3-0324-fast","name":"DeepSeek-V3-0324 (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25,"cache_read":0.075,"cache_write":0.28125},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-R1-0528-fast":{"id":"deepseek-ai/DeepSeek-R1-0528-fast","name":"DeepSeek R1 0528 Fast","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":8192}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4,"reasoning":2.4,"cache_read":0.08,"cache_write":1},"limit":{"context":128000,"input":120000,"output":32768}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45,"reasoning":0.45,"cache_read":0.03,"cache_write":0.375},"limit":{"context":163000,"input":160000,"output":16384}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2,"cache_read":0.005,"cache_write":0.06},"limit":{"context":128000,"input":124000,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"reasoning":0.6,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":124000,"output":8192}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma-2-2b-it","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-07-31","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-2-9b-it-fast":{"id":"google/gemma-2-9b-it-fast","name":"Gemma-2-9b-it (Fast)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.0375},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-3-27b-it-fast":{"id":"google/gemma-3-27b-it-fast","name":"Gemma-3-27b-it (Fast)","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":110000,"input":100000,"output":8192}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27b-it","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":110000,"input":100000,"output":8192}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"reasoning":2.5,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":16384}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.4,"cache_read":0.05,"cache_write":0.625},"limit":{"context":200000,"input":190000,"output":8192}},"moonshotai/Kimi-K2.5-fast":{"id":"moonshotai/Kimi-K2.5-fast","name":"Kimi-K2.5-fast","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"reasoning":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-02-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"reasoning":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":128000,"input":120000,"output":8192}},"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"e5-mistral-7b-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2023-12","release_date":"2024-01-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}}}},"poe":{"id":"poe","env":["POE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.poe.com/v1","name":"Poe","doc":"https://creator.poe.com/docs/external-applications/openai-compatible-api","models":{"topazlabs-co/topazlabs":{"id":"topazlabs-co/topazlabs","name":"TopazLabs","family":"topazlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":204,"output":0}},"novita/kimi-k2.5":{"id":"novita/kimi-k2.5","name":"kimi-k2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":262144}},"novita/glm-4.7":{"id":"novita/glm-4.7","name":"glm-4.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/glm-5":{"id":"novita/glm-5","name":"glm-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/minimax-m2.1":{"id":"novita/minimax-m2.1","name":"minimax-m2.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/glm-4.6":{"id":"novita/glm-4.6","name":"GLM-4.6","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"novita/glm-4.6v":{"id":"novita/glm-4.6v","name":"glm-4.6v","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":32768}},"novita/deepseek-v3.2":{"id":"novita/deepseek-v3.2","name":"DeepSeek-V3.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4,"cache_read":0.13},"limit":{"context":128000,"output":0}},"novita/glm-4.7-flash":{"id":"novita/glm-4.7-flash","name":"glm-4.7-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":65500}},"novita/glm-4.7-n":{"id":"novita/glm-4.7-n","name":"glm-4.7-n","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/kimi-k2-thinking":{"id":"novita/kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":0}},"fireworks-ai/kimi-k2.5-fw":{"id":"fireworks-ai/kimi-k2.5-fw","name":"Kimi-K2.5-FW","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"input":245760,"output":16384}},"elevenlabs/elevenlabs-v2.5-turbo":{"id":"elevenlabs/elevenlabs-v2.5-turbo","name":"ElevenLabs-v2.5-Turbo","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-28","last_updated":"2024-10-28","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"elevenlabs/elevenlabs-v3":{"id":"elevenlabs/elevenlabs-v3","name":"ElevenLabs-v3","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"elevenlabs/elevenlabs-music":{"id":"elevenlabs/elevenlabs-music","name":"ElevenLabs-Music","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-29","last_updated":"2025-08-29","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":2000,"output":0}},"cerebras/gpt-oss-120b-cs":{"id":"cerebras/gpt-oss-120b-cs","name":"gpt-oss-120b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/llama-3.1-8b-cs":{"id":"cerebras/llama-3.1-8b-cs","name":"llama-3.1-8b-cs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-32b-cs":{"id":"cerebras/qwen3-32b-cs","name":"qwen3-32b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-235b-2507-cs":{"id":"cerebras/qwen3-235b-2507-cs","name":"qwen3-235b-2507-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/llama-3.3-70b-cs":{"id":"cerebras/llama-3.3-70b-cs","name":"llama-3.3-70b-cs","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"stabilityai/stablediffusionxl":{"id":"stabilityai/stablediffusionxl","name":"StableDiffusionXL","family":"stable-diffusion","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-07-09","last_updated":"2023-07-09","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":200,"output":0}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok-4-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok-4.1-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok-4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":128000}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-4.20-multi-agent":{"id":"xai/grok-4.20-multi-agent","name":"Grok-4.20-Multi-Agent","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":128000,"output":0}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok-4-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok-4.1-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"runwayml/runway":{"id":"runwayml/runway","name":"Runway","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"runwayml/runway-gen-4-turbo":{"id":"runwayml/runway-gen-4-turbo","name":"Runway-Gen-4-Turbo","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-09","last_updated":"2025-05-09","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/sora-2-pro":{"id":"openai/sora-2-pro","name":"Sora-2-Pro","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT-4o-Latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":14},"limit":{"context":128000,"output":8192}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5-Chat","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":19,"output":150},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-aug":{"id":"openai/gpt-4o-aug","name":"GPT-4o-Aug","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-21","last_updated":"2024-11-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9,"cache_read":1.1},"limit":{"context":128000,"output":8192}},"openai/gpt-4-classic-0314":{"id":"openai/gpt-4-classic-0314","name":"GPT-4-Classic-0314","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-26","last_updated":"2024-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36,"cache_read":0.0045},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-10","last_updated":"2026-02-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":27},"limit":{"context":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18,"output":72},"limit":{"context":200000,"output":100000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"o3-mini-high","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54,"cache_read":0.068},"limit":{"context":124096,"output":4096}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":4,"cache_read":0.068},"limit":{"context":400000,"input":272000,"output":128000}},"openai/dall-e-3":{"id":"openai/dall-e-3","name":"DALL-E-3","family":"dall-e","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":800,"output":0}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4,"cache_read":0.25},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4-Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.1,"cache_read":0.018},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-image-1":{"id":"openai/gpt-image-1","name":"GPT-Image-1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-image-1-mini":{"id":"openai/gpt-image-1-mini","name":"GPT-Image-1-Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2024-12-18","last_updated":"2024-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":54},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":27,"output":160},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":16384,"output":2048}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":36,"cache_read":2.2},"limit":{"context":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/o1-pro":{"id":"openai/o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":140,"output":540},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-search":{"id":"openai/gpt-4o-search","name":"GPT-4o-Search","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9},"limit":{"context":128000,"output":8192}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["image"]},"open_weights":false,"cost":{"input":2.2,"output":14,"cache_read":0.22},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.3-codex-spark":{"id":"openai/gpt-5.3-codex-spark","name":"GPT-5.3-Codex-Spark","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-04","last_updated":"2026-03-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-3.5-turbo-raw":{"id":"openai/gpt-3.5-turbo-raw","name":"GPT-3.5-Turbo-Raw","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":4524,"output":2048}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36,"cache_read":0.022},"limit":{"context":1047576,"output":32768}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":110},"limit":{"context":400000,"output":128000}},"openai/sora-2":{"id":"openai/sora-2","name":"Sora-2","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-instant":{"id":"openai/gpt-5.2-instant","name":"GPT-5.2-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-search":{"id":"openai/gpt-4o-mini-search","name":"GPT-4o-mini-Search","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54},"limit":{"context":128000,"output":8192}},"openai/gpt-image-1.5":{"id":"openai/gpt-image-1.5","name":"gpt-image-1.5","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5-Turbo-Instruct","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-20","last_updated":"2023-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.8},"limit":{"context":3500,"output":1024}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1-Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.36,"output":1.4,"cache_read":0.09},"limit":{"context":1047576,"output":32768}},"openai/gpt-4-classic":{"id":"openai/gpt-4-classic","name":"GPT-4-Classic","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-25","last_updated":"2024-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-instant":{"id":"openai/gpt-5.3-instant","name":"GPT-5.3-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"input":111616,"output":16384}},"google/veo-3-fast":{"id":"google/veo-3-fast","name":"Veo-3-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/veo-3.1-fast":{"id":"google/veo-3.1-fast","name":"Veo-3.1-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-3.1-pro":{"id":"google/gemini-3.1-pro","name":"Gemini-3.1-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"google/imagen-3-fast":{"id":"google/imagen-3-fast","name":"Imagen-3-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-17","last_updated":"2024-10-17","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini-2.0-Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.42},"limit":{"context":990000,"output":8192}},"google/gemini-deep-research":{"id":"google/gemini-deep-research","name":"gemini-deep-research","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6},"limit":{"context":1048576,"output":0}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini-2.5-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.87,"output":7,"cache_read":0.087},"limit":{"context":1065535,"output":65535}},"google/imagen-3":{"id":"google/imagen-3","name":"Imagen-3","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/nano-banana":{"id":"google/nano-banana","name":"Nano-Banana","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":65536,"output":0}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini-2.5-Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-26","last_updated":"2025-04-26","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":1065535,"output":65535}},"google/gemini-3.1-flash-lite":{"id":"google/gemini-3.1-flash-lite","name":"Gemini-3.1-Flash-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini-3-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-07","last_updated":"2025-10-07","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04},"limit":{"context":1048576,"output":65536}},"google/veo-3.1":{"id":"google/veo-3.1","name":"Veo-3.1","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/lyria":{"id":"google/lyria","name":"Lyria","family":"lyria","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/imagen-4-ultra":{"id":"google/imagen-4-ultra","name":"Imagen-4-Ultra","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/nano-banana-pro":{"id":"google/nano-banana-pro","name":"Nano-Banana-Pro","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":65536,"output":0}},"google/gemini-3-pro":{"id":"google/gemini-3-pro","name":"Gemini-3-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6,"cache_read":0.16},"limit":{"context":1048576,"output":65536}},"google/imagen-4-fast":{"id":"google/imagen-4-fast","name":"Imagen-4-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/veo-3":{"id":"google/veo-3","name":"Veo-3","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini-2.5-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-19","last_updated":"2025-06-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":1024000,"output":64000}},"google/imagen-4":{"id":"google/imagen-4","name":"Imagen-4","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemma-4-31b":{"id":"google/gemma-4-31b","name":"Gemma-4-31B","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":8192}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini-2.0-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.052,"output":0.21},"limit":{"context":990000,"output":8192}},"google/veo-2":{"id":"google/veo-2","name":"Veo-2","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-02","last_updated":"2024-12-02","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"lumalabs/ray2":{"id":"lumalabs/ray2","name":"Ray2","family":"ray","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":5000,"output":0}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude-Opus-4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":196608,"output":32000}},"anthropic/claude-sonnet-3.5":{"id":"anthropic/claude-sonnet-3.5","name":"Claude-Sonnet-3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-3":{"id":"anthropic/claude-haiku-3","name":"Claude-Haiku-3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-09","last_updated":"2024-03-09","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.1,"cache_read":0.021,"cache_write":0.26},"limit":{"context":189096,"output":8192}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude-Opus-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":983040,"output":128000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude-Sonnet-4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude-Sonnet-4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":32768}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude-Opus-4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-21","last_updated":"2025-11-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":196608,"output":64000}},"anthropic/claude-sonnet-3.7":{"id":"anthropic/claude-sonnet-3.7","name":"Claude-Sonnet-3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":196608,"output":128000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude-Opus-4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":192512,"output":28672}},"anthropic/claude-haiku-3.5":{"id":"anthropic/claude-haiku-3.5","name":"Claude-Haiku-3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":3.4,"cache_read":0.068,"cache_write":0.85},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude-Haiku-4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":4.3,"cache_read":0.085,"cache_write":1.1},"limit":{"context":192000,"output":64000}},"anthropic/claude-sonnet-3.5-june":{"id":"anthropic/claude-sonnet-3.5-june","name":"Claude-Sonnet-3.5-June","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-18","last_updated":"2024-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude-Sonnet-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":128000}},"ideogramai/ideogram":{"id":"ideogramai/ideogram","name":"Ideogram","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2":{"id":"ideogramai/ideogram-v2","name":"Ideogram-v2","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-21","last_updated":"2024-08-21","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a-turbo":{"id":"ideogramai/ideogram-v2a-turbo","name":"Ideogram-v2a-Turbo","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a":{"id":"ideogramai/ideogram-v2a","name":"Ideogram-v2a","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"trytako/tako":{"id":"trytako/tako","name":"Tako","family":"tako","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2048,"output":0}},"poetools/claude-code":{"id":"poetools/claude-code","name":"claude-code","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}}}},"helicone":{"id":"helicone","env":["HELICONE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ai-gateway.helicone.ai/v1","name":"Helicone","doc":"https://helicone.ai/models","models":{"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":128000,"output":16400}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"xAI Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Google Gemma 2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-25","last_updated":"2024-06-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.03},"limit":{"context":8192,"output":8192}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Meta Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.39},"limit":{"context":128000,"output":16400}},"llama-4-scout":{"id":"llama-4-scout","name":"Meta Llama 4 Scout 17B 16E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3},"limit":{"context":131072,"output":8192}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"OpenAI ChatGPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":128000,"output":16384}},"claude-3.5-sonnet-v2":{"id":"claude-3.5-sonnet-v2","name":"Anthropic: Claude 3.5 Sonnet v2","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"hermes-2-pro-llama-3-8b":{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.14},"limit":{"context":131072,"output":131072}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"llama-prompt-guard-2-22m":{"id":"llama-prompt-guard-2-22m","name":"Meta Llama Prompt Guard 2 22M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"o1-mini":{"id":"o1-mini","name":"OpenAI: o1-mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-4.1-mini-2025-04-14":{"id":"gpt-4.1-mini-2025-04-14","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.13},"limit":{"context":128000,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":40960}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Meta Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.7899999999999999},"limit":{"context":131072,"output":32678}},"gpt-5-mini":{"id":"gpt-5-mini","name":"OpenAI GPT-5 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"OpenAI GPT-5 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.39999999999999997,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Google Gemini 3 Pro Preview","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.19999999999999998},"limit":{"context":1048576,"output":65536}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Anthropic: Claude 3 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"llama-4-maverick":{"id":"llama-4-maverick","name":"Meta Llama 4 Maverick 17B 128E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":8192}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Anthropic: Claude Sonnet 4.5 (20250929)","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Google Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.3125,"cache_write":1.25},"limit":{"context":1048576,"output":65536}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Anthropic: Claude Opus 4.5","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"xAI Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":30000}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Sonar Pro","family":"sonar-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":4096}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral-Large","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"o3-pro":{"id":"o3-pro","name":"OpenAI o3 Pro","family":"o-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Anthropic: Claude Opus 4.1","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"OpenAI GPT-4o-mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Anthropic: Claude 4.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"kimi-k2-0711":{"id":"kimi-k2-0711","name":"Kimi K2 (07/11)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5700000000000001,"output":2.3},"limit":{"context":131072,"output":16384}},"o4-mini":{"id":"o4-mini","name":"OpenAI o4 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Google Gemini 2.5 Flash","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.3},"limit":{"context":1048576,"output":65535}},"deepseek-tng-r1t2-chimera":{"id":"deepseek-tng-r1t2-chimera","name":"DeepSeek TNG R1T2 Chimera","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-02","last_updated":"2025-07-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":130000,"output":163840}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"xAI Grok Code Fast 1","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-25","last_updated":"2024-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"gpt-5.1":{"id":"gpt-5.1","name":"OpenAI GPT-5.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"xAI: Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"o1":{"id":"o1","name":"OpenAI: o1","family":"o","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Meta Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.08},"limit":{"context":131072,"output":32678}},"o3-mini":{"id":"o3-mini","name":"OpenAI o3 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2023-10","release_date":"2023-10-01","last_updated":"2023-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"sonar":{"id":"sonar","name":"Perplexity Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":4096}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi K2 (09/05)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.39999999999999997},"limit":{"context":262144,"output":16384}},"mistral-small":{"id":"mistral-small","name":"Mistral Small","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-02","release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":75,"output":200},"limit":{"context":128000,"output":128000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":41000,"output":41000}},"codex-mini-latest":{"id":"codex-mini-latest","name":"OpenAI Codex Mini Latest","family":"gpt-codex-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"grok-4":{"id":"grok-4","name":"xAI Grok 4","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-09","last_updated":"2024-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":256000}},"qwen3-235b-a22b-thinking":{"id":"qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9000000000000004},"limit":{"context":262144,"output":81920}},"qwen2.5-coder-7b-fast":{"id":"qwen2.5-coder-7b-fast","name":"Qwen2.5 Coder 7B fast","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-15","last_updated":"2024-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.09},"limit":{"context":32000,"output":8192}},"llama-3.1-8b-instruct-turbo":{"id":"llama-3.1-8b-instruct-turbo","name":"Meta Llama 3.1 8B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"output":128000}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"Zai GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44999999999999996,"output":1.5},"limit":{"context":204800,"output":131072}},"gpt-5-codex":{"id":"gpt-5-codex","name":"OpenAI: GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Anthropic: Claude Opus 4.1 (20250805)","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"OpenAI GPT-5.1 Chat","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Anthropic: Claude 4.5 Haiku (20251001)","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"sonar-reasoning":{"id":"sonar-reasoning","name":"Perplexity Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":4096}},"claude-opus-4":{"id":"claude-opus-4","name":"Anthropic: Claude Opus 4","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"llama-prompt-guard-2-86m":{"id":"llama-prompt-guard-2-86m","name":"Meta Llama Prompt Guard 2 86M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"OpenAI GPT-4.1 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998},"limit":{"context":1047576,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.3},"limit":{"context":262144,"output":262144}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7999999999999999,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"grok-3-mini":{"id":"grok-3-mini","name":"xAI Grok 3 Mini","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":131072}},"o3":{"id":"o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"OpenAI GPT-OSS 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.19999999999999998},"limit":{"context":131072,"output":131072}},"gpt-5-pro":{"id":"gpt-5-pro","name":"OpenAI: GPT-5 Pro","family":"gpt-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":128000,"output":32768}},"llama-guard-4":{"id":"llama-guard-4","name":"Meta Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.21},"limit":{"context":131072,"output":1024}},"gpt-4o":{"id":"gpt-4o","name":"OpenAI GPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"qwen3-vl-235b-a22b-instruct":{"id":"qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":256000,"output":16384}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Google Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998,"cache_write":0.09999999999999999},"limit":{"context":1048576,"output":65535}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.95},"limit":{"context":262144,"output":16384}},"gpt-5":{"id":"gpt-5","name":"OpenAI GPT-5","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"ernie-4.5-21b-a3b-thinking":{"id":"ernie-4.5-21b-a3b-thinking","name":"Baidu Ernie 4.5 21B A3B Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":128000,"output":8000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"OpenAI GPT-OSS 120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"OpenAI GPT-5 Chat Latest","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-09","release_date":"2024-09-30","last_updated":"2024-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Anthropic: Claude Sonnet 4.5","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Meta Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.049999999999999996},"limit":{"context":16384,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"OpenAI GPT-4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":2},"limit":{"context":256000,"output":262144}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"deepseek-v3.1-terminus":{"id":"deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1,"cache_read":0.21600000000000003},"limit":{"context":128000,"output":16384}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"OpenAI: GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"grok-3":{"id":"grok-3","name":"xAI Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":131072}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"xAI Grok 4 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}}}},"ollama-cloud":{"id":"ollama-cloud","env":["OLLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ollama.com/v1","name":"Ollama Cloud","doc":"https://docs.ollama.com/cloud","models":{"minimax-m2.7":{"id":"minimax-m2.7","name":"minimax-m2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"gpt-oss:20b":{"id":"gpt-oss:20b","name":"gpt-oss:20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"kimi-k2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"gemma4:31b":{"id":"gemma4:31b","name":"gemma4:31b","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":8192}},"gpt-oss:120b":{"id":"gpt-oss:120b","name":"gpt-oss:120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"qwen3.5:397b":{"id":"qwen3.5:397b","name":"qwen3.5:397b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"release_date":"2026-02-15","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":81920}},"deepseek-v3.1:671b":{"id":"deepseek-v3.1:671b","name":"deepseek-v3.1:671b","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-21","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":163840}},"glm-5":{"id":"glm-5","name":"glm-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"qwen3-vl:235b-instruct":{"id":"qwen3-vl:235b-instruct","name":"qwen3-vl:235b-instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":131072}},"gemma3:4b":{"id":"gemma3:4b","name":"gemma3:4b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2026-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":65536}},"ministral-3:14b":{"id":"ministral-3:14b","name":"ministral-3:14b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"minimax-m2":{"id":"minimax-m2","name":"minimax-m2","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-10-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":128000}},"qwen3-next:80b":{"id":"qwen3-next:80b","name":"qwen3-next:80b","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}},"qwen3-vl:235b":{"id":"qwen3-vl:235b","name":"qwen3-vl:235b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}},"rnj-1:8b":{"id":"rnj-1:8b","name":"rnj-1:8b","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":32768,"output":4096}},"minimax-m2.1":{"id":"minimax-m2.1","name":"minimax-m2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"glm-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-03-27","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"mistral-large-3:675b":{"id":"mistral-large-3:675b","name":"mistral-large-3:675b","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-02","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"ministral-3:8b":{"id":"ministral-3:8b","name":"ministral-3:8b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"gemma3:12b":{"id":"gemma3:12b","name":"gemma3:12b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"qwen3-coder:480b":{"id":"qwen3-coder:480b","name":"qwen3-coder:480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"nemotron-3-nano:30b":{"id":"nemotron-3-nano:30b","name":"nemotron-3-nano:30b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-29","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"ministral-3:3b":{"id":"ministral-3:3b","name":"ministral-3:3b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-10-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"gemma3:27b":{"id":"gemma3:27b","name":"gemma3:27b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2025-07-27","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"devstral-2:123b":{"id":"devstral-2:123b","name":"devstral-2:123b","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"cogito-2.1:671b":{"id":"cogito-2.1:671b","name":"cogito-2.1:671b","family":"cogito","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-11-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":32000}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2026-02-02","last_updated":"2026-02-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"nemotron-3-super":{"id":"nemotron-3-super","name":"nemotron-3-super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"minimax-m2.5":{"id":"minimax-m2.5","name":"minimax-m2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-06-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":65536}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"devstral-small-2:24b":{"id":"devstral-small-2:24b","name":"devstral-small-2:24b","family":"devstral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"kimi-k2:1t":{"id":"kimi-k2:1t","name":"kimi-k2:1t","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}}}},"zai-coding-plan":{"id":"zai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/coding/paas/v4","name":"Z.AI Coding Plan","doc":"https://docs.z.ai/devpack/overview","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}}}},"amazon-bedrock":{"id":"amazon-bedrock","env":["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_REGION","AWS_BEARER_TOKEN_BEDROCK"],"npm":"@ai-sdk/amazon-bedrock","name":"Amazon Bedrock","doc":"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html","models":{"anthropic.claude-opus-4-1-20250805-v1:0":{"id":"anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic.claude-3-5-sonnet-20241022-v2:0":{"id":"anthropic.claude-3-5-sonnet-20241022-v2:0","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"openai.gpt-oss-safeguard-120b":{"id":"openai.gpt-oss-safeguard-120b","name":"GPT OSS Safeguard 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"nvidia.nemotron-nano-3-30b":{"id":"nvidia.nemotron-nano-3-30b","name":"NVIDIA Nemotron Nano 3 30B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":128000,"output":4096}},"meta.llama3-2-90b-instruct-v1:0":{"id":"meta.llama3-2-90b-instruct-v1:0","name":"Llama 3.2 90B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"nvidia.nemotron-super-3-120b":{"id":"nvidia.nemotron-super-3-120b","name":"NVIDIA Nemotron 3 Super 120B A12B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.65},"limit":{"context":262144,"output":131072}},"writer.palmyra-x5-v1:0":{"id":"writer.palmyra-x5-v1:0","name":"Palmyra X5","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"mistral.ministral-3-8b-instruct":{"id":"mistral.ministral-3-8b-instruct","name":"Ministral 3 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-5-sonnet-20240620-v1:0":{"id":"anthropic.claude-3-5-sonnet-20240620-v1:0","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"mistral.ministral-3-3b-instruct":{"id":"mistral.ministral-3-3b-instruct","name":"Ministral 3 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":256000,"output":8192}},"eu.anthropic.claude-opus-4-6-v1":{"id":"eu.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"amazon.nova-premier-v1:0":{"id":"amazon.nova-premier-v1:0","name":"Nova Premier","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":16384}},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"eu.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"mistral.devstral-2-123b":{"id":"mistral.devstral-2-123b","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":8192}},"us.anthropic.claude-opus-4-20250514-v1:0":{"id":"us.anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"global.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"global.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"mistral.voxtral-small-24b-2507":{"id":"mistral.voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"mistral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":8192}},"google.gemma-3-12b-it":{"id":"google.gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"amazon.nova-pro-v1:0":{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"minimax.minimax-m2":{"id":"minimax.minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204608,"output":128000}},"mistral.pixtral-large-2502-v1:0":{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":8192}},"meta.llama4-maverick-17b-instruct-v1:0":{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.97},"limit":{"context":1000000,"output":16384}},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"us.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (US)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"amazon.nova-micro-v1:0":{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-sonnet-4-6":{"id":"anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"openai.gpt-oss-20b-1:0":{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"us.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"zai.glm-5":{"id":"zai.glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":101376}},"qwen.qwen3-32b-v1:0":{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":16384,"output":16384}},"deepseek.v3.2":{"id":"deepseek.v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":1.85},"limit":{"context":163840,"output":81920}},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"eu.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (EU)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"zai.glm-4.7-flash":{"id":"zai.glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":131072}},"amazon.nova-2-lite-v1:0":{"id":"amazon.nova-2-lite-v1:0","name":"Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":2.75},"limit":{"context":128000,"output":4096}},"anthropic.claude-opus-4-5-20251101-v1:0":{"id":"anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"qwen.qwen3-coder-480b-a35b-v1:0":{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.8},"limit":{"context":131072,"output":65536}},"meta.llama3-2-1b-instruct-v1:0":{"id":"meta.llama3-2-1b-instruct-v1:0","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":4096}},"amazon.nova-lite-v1:0":{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"meta.llama3-1-8b-instruct-v1:0":{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":4096}},"global.anthropic.claude-sonnet-4-6":{"id":"global.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"us.anthropic.claude-sonnet-4-6":{"id":"us.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"global.anthropic.claude-opus-4-6-v1":{"id":"global.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"google.gemma-3-27b-it":{"id":"google.gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-27","last_updated":"2025-07-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":202752,"output":8192}},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (Global)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"google.gemma-3-4b-it":{"id":"google.gemma-3-4b-it","name":"Gemma 3 4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.08},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-opus-4-6-v1":{"id":"us.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"meta.llama4-scout-17b-instruct-v1:0":{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":3500000,"output":16384}},"us.anthropic.claude-opus-4-1-20250805-v1:0":{"id":"us.anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"deepseek.v3-v1:0":{"id":"deepseek.v3-v1:0","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":163840,"output":81920}},"mistral.magistral-small-2509":{"id":"mistral.magistral-small-2509","name":"Magistral Small 1.2","family":"magistral","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":40000}},"qwen.qwen3-next-80b-a3b":{"id":"qwen.qwen3-next-80b-a3b","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"zai.glm-4.7":{"id":"zai.glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"moonshot.kimi-k2-thinking":{"id":"moonshot.kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"output":256000}},"us.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"us.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"mistral.ministral-3-14b-instruct":{"id":"mistral.ministral-3-14b-instruct","name":"Ministral 14B 3.0","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-haiku-20240307-v1:0":{"id":"anthropic.claude-3-haiku-20240307-v1:0","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-02","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25},"limit":{"context":200000,"output":4096}},"global.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"deepseek.r1-v1:0":{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"meta.llama3-1-405b-instruct-v1:0":{"id":"meta.llama3-1-405b-instruct-v1:0","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":2.4},"limit":{"context":128000,"output":4096}},"mistral.voxtral-mini-3b-2507":{"id":"mistral.voxtral-mini-3b-2507","name":"Voxtral Mini 3B 2507","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":4096}},"eu.anthropic.claude-sonnet-4-6":{"id":"eu.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"openai.gpt-oss-120b-1:0":{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"nvidia.nemotron-nano-12b-v2":{"id":"nvidia.nemotron-nano-12b-v2","name":"NVIDIA Nemotron Nano 12B v2 VL BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":4096}},"minimax.minimax-m2.5":{"id":"minimax.minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":98304}},"meta.llama3-3-70b-instruct-v1:0":{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"meta.llama3-1-70b-instruct-v1:0":{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"meta.llama3-2-3b-instruct-v1:0":{"id":"meta.llama3-2-3b-instruct-v1:0","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":131000,"output":4096}},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-opus-4-20250514-v1:0":{"id":"anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"eu.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic.claude-sonnet-4-20250514-v1:0":{"id":"anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"meta.llama3-2-11b-instruct-v1:0":{"id":"meta.llama3-2-11b-instruct-v1:0","name":"Llama 3.2 11B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":4096}},"moonshotai.kimi-k2.5":{"id":"moonshotai.kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":256000,"output":256000}},"openai.gpt-oss-safeguard-20b":{"id":"openai.gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.2},"limit":{"context":128000,"output":4096}},"anthropic.claude-opus-4-6-v1":{"id":"anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"qwen.qwen3-coder-30b-a3b-v1:0":{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":131072}},"minimax.minimax-m2.1":{"id":"minimax.minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen.qwen3-vl-235b-a22b":{"id":"qwen.qwen3-vl-235b-a22b","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"qwen.qwen3-coder-next":{"id":"qwen.qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.8},"limit":{"context":131072,"output":65536}},"anthropic.claude-3-5-haiku-20241022-v1:0":{"id":"anthropic.claude-3-5-haiku-20241022-v1:0","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"nvidia.nemotron-nano-9b-v2":{"id":"nvidia.nemotron-nano-9b-v2","name":"NVIDIA Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.23},"limit":{"context":128000,"output":4096}},"mistral.mistral-large-3-675b-instruct":{"id":"mistral.mistral-large-3-675b-instruct","name":"Mistral Large 3","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":8192}},"qwen.qwen3-235b-a22b-2507-v1:0":{"id":"qwen.qwen3-235b-a22b-2507-v1:0","name":"Qwen3 235B A22B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":131072}},"anthropic.claude-3-7-sonnet-20250219-v1:0":{"id":"anthropic.claude-3-7-sonnet-20250219-v1:0","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"writer.palmyra-x4-v1:0":{"id":"writer.palmyra-x4-v1:0","name":"Palmyra X4","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":122880,"output":8192}}}},"the-grid-ai":{"id":"the-grid-ai","env":["THEGRIDAI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.thegrid.ai/v1","name":"The Grid AI","doc":"https://thegrid.ai/docs","models":{"text-prime":{"id":"text-prime","name":"Text Prime","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":30000},"status":"beta"},"text-standard":{"id":"text-standard","name":"Text Standard","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000},"status":"beta"},"text-max":{"id":"text-max","name":"Text Max","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-24","last_updated":"2026-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":128000},"status":"beta"}}},"baseten":{"id":"baseten","env":["BASETEN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.baseten.co/v1","name":"Baseten","doc":"https://docs.baseten.co/development/model-apis/overview","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":202752,"output":131072}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":200000}},"nvidia/Nemotron-120B-A12B":{"id":"nvidia/Nemotron-120B-A12B","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.75},"limit":{"context":262144,"output":32678}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":164000,"output":131000}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.77,"output":0.77},"limit":{"context":164000,"output":131000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-01","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":163800,"output":131100},"status":"deprecated"},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":128000,"output":128000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-09-05","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-01-30","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":8192}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204000,"output":204000}}}},"zhipuai-coding-plan":{"id":"zhipuai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/coding/paas/v4","name":"Zhipu AI Coding Plan","doc":"https://docs.bigmodel.cn/cn/coding-plan/overview","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.6v-flash":{"id":"glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"alibaba-coding-plan":{"id":"alibaba-coding-plan","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-intl.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan","doc":"https://www.alibabacloud.com/help/en/model-studio/coding-plan","models":{"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"input":196601,"output":24576}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"venice":{"id":"venice","env":["VENICE_API_KEY"],"npm":"venice-ai-sdk-provider","name":"Venice AI","doc":"https://docs.venice.ai","models":{"openai-gpt-4o-mini-2024-07-18":{"id":"openai-gpt-4o-mini-2024-07-18","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1875,"output":0.75,"cache_read":0.09375},"limit":{"context":128000,"output":16384}},"qwen3-next-80b":{"id":"qwen3-next-80b","name":"Qwen 3 Next 80b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.9},"limit":{"context":256000,"output":16384}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen 3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":128000,"output":16384}},"grok-41-fast":{"id":"grok-41-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-12-01","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.57,"cache_read":0.06},"limit":{"context":1000000,"output":30000}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.6,"output":18,"cache_read":0.36,"cache_write":4.5},"limit":{"context":1000000,"output":64000}},"nvidia-nemotron-cascade-2-30b-a3b":{"id":"nvidia-nemotron-cascade-2-30b-a3b","name":"Nemotron Cascade 2 30B A3B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-24","last_updated":"2026-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.8},"limit":{"context":256000,"output":32768}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":3.75,"cache_read":0.07},"limit":{"context":256000,"output":65536}},"qwen3-coder-480b-a35b-instruct-turbo":{"id":"qwen3-coder-480b-a35b-instruct-turbo","name":"Qwen 3 Coder 480B Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":256000,"output":65536}},"qwen3-5-397b-a17b":{"id":"qwen3-5-397b-a17b","name":"Qwen 3.5 397B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5},"limit":{"context":128000,"output":32768}},"zai-org-glm-4.7":{"id":"zai-org-glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-24","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.65,"cache_read":0.11},"limit":{"context":198000,"output":16384}},"openai-gpt-54":{"id":"openai-gpt-54","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.13,"output":18.8,"cache_read":0.313},"limit":{"context":1000000,"output":131072}},"zai-org-glm-4.7-flash":{"id":"zai-org-glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":16384}},"nvidia-nemotron-3-nano-30b-a3b":{"id":"nvidia-nemotron-3-nano-30b-a3b","name":"NVIDIA Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":16384}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3 VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-16","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.5},"limit":{"context":256000,"output":16384}},"openai-gpt-53-codex":{"id":"openai-gpt-53-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":400000,"output":128000}},"claude-sonnet-45":{"id":"claude-sonnet-45","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-01-15","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75,"cache_read":0.375,"cache_write":4.69},"limit":{"context":198000,"output":49500}},"openai-gpt-52":{"id":"openai-gpt-52","name":"GPT-5.2","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-13","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"mistral-small-3-2-24b-instruct":{"id":"mistral-small-3-2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-15","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09375,"output":0.25},"limit":{"context":256000,"output":16384}},"claude-opus-45":{"id":"claude-opus-45","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-06","last_updated":"2026-01-28","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":198000,"output":49500}},"grok-4-20-multi-agent-beta":{"id":"grok-4-20-multi-agent-beta","name":"Grok 4.20 Multi-Agent Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.27,"output":6.8,"cache_read":0.23,"context_over_200k":{"input":4.53,"output":13.6,"cache_read":0.23}},"limit":{"context":2000000,"output":128000}},"minimax-m27":{"id":"minimax-m27","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.375,"output":1.5,"cache_read":0.075},"limit":{"context":198000,"output":32768}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen 3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":3.5},"limit":{"context":128000,"output":16384}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.87,"cache_read":0.03},"limit":{"context":256000,"output":10000}},"qwen3-5-35b-a3b":{"id":"qwen3-5-35b-a3b","name":"Qwen 3.5 35B A3B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-25","last_updated":"2026-03-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3125,"output":1.25,"cache_read":0.15625},"limit":{"context":256000,"output":65536}},"mercury-2":{"id":"mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-20","last_updated":"2026-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3125,"output":0.9375,"cache_read":0.03125},"limit":{"context":128000,"output":50000}},"google-gemma-3-27b-it":{"id":"google-gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-04","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":198000,"output":16384}},"olafangensan-glm-4.7-flash-heretic":{"id":"olafangensan-glm-4.7-flash-heretic","name":"GLM 4.7 Flash Heretic","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.8},"limit":{"context":200000,"output":24000}},"openai-gpt-52-codex":{"id":"openai-gpt-52-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-01-15","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"venice-uncensored-role-play":{"id":"venice-uncensored-role-play","name":"Venice Role Play Uncensored","family":"venice","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-20","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":128000,"output":4096}},"zai-org-glm-5":{"id":"zai-org-glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":198000,"output":32000}},"zai-org-glm-4.6":{"id":"zai-org-glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2024-04-01","last_updated":"2026-04-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":2.75,"cache_read":0.3},"limit":{"context":198000,"output":16384}},"mistral-small-2603":{"id":"mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1875,"output":0.75},"limit":{"context":256000,"output":65536}},"openai-gpt-oss-120b":{"id":"openai-gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":16384}},"qwen3-5-9b":{"id":"qwen3-5-9b","name":"Qwen 3.5 9B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-04-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":32768}},"openai-gpt-54-pro":{"id":"openai-gpt-54-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":37.5,"output":225,"context_over_200k":{"input":75,"output":337.5}},"limit":{"context":1000000,"output":128000}},"aion-labs.aion-2-0":{"id":"aion-labs.aion-2-0","name":"Aion 2.0","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-24","last_updated":"2026-03-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2,"cache_read":0.25},"limit":{"context":128000,"output":32768}},"openai-gpt-54-mini":{"id":"openai-gpt-54-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.9375,"output":5.625,"cache_read":0.09375},"limit":{"context":400000,"output":128000}},"google.gemma-4-31b-it":{"id":"google.gemma-4-31b-it","name":"Google Gemma 4 31B Instruct","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-03","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.175,"output":0.5},"limit":{"context":256000,"output":8192}},"minimax-m25":{"id":"minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.19,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen 3 Coder 480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3},"limit":{"context":256000,"output":65536}},"zai-org-glm-5-1":{"id":"zai-org-glm-5-1","name":"GLM 5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-07","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.75,"output":5.5,"cache_read":0.325},"limit":{"context":200000,"output":24000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":1000000,"output":128000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-12-04","last_updated":"2026-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.33,"output":0.48,"cache_read":0.16},"limit":{"context":160000,"output":32768}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored 1.1","family":"venice","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-03-18","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.9},"limit":{"context":32000,"output":8192}},"qwen-3-6-plus":{"id":"qwen-3-6-plus","name":"Qwen 3.6 Plus Uncensored","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-06","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.625,"output":3.75,"cache_read":0.0625,"cache_write":0.78,"context_over_200k":{"input":2.5,"output":7.5}},"limit":{"context":1000000,"output":65536}},"google.gemma-4-26b-a4b-it":{"id":"google.gemma-4-26b-a4b-it","name":"Google Gemma 4 26B A4B Instruct","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1625,"output":0.5},"limit":{"context":256000,"output":8192}},"openai-gpt-4o-2024-11-20":{"id":"openai-gpt-4o-2024-11-20","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.125,"output":12.5},"limit":{"context":128000,"output":16384}},"llama-3.3-70b":{"id":"llama-3.3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":128000,"output":4096}},"kimi-k2-5":{"id":"kimi-k2-5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-01-27","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":3.5,"cache_read":0.11},"limit":{"context":256000,"output":65536}},"grok-4-20-beta":{"id":"grok-4-20-beta","name":"Grok 4.20 Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.27,"output":6.8,"cache_read":0.23,"context_over_200k":{"input":4.53,"output":13.6,"cache_read":0.23}},"limit":{"context":2000000,"output":128000}},"minimax-m21":{"id":"minimax-m21","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"llama-3.2-3b":{"id":"llama-3.2-3b","name":"Llama 3.2 3B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-10-03","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"arcee-trinity-large-thinking":{"id":"arcee-trinity-large-thinking","name":"Trinity Large Thinking","family":"trinity","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3125,"output":1.125,"cache_read":0.075},"limit":{"context":256000,"output":65536}},"hermes-3-llama-3.1-405b":{"id":"hermes-3-llama-3.1-405b","name":"Hermes 3 Llama 3.1 405b","family":"hermes","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3},"limit":{"context":128000,"output":16384}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.5,"cache_write":0.5,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1000000,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-12-10","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3.2,"cache_read":0.375},"limit":{"context":256000,"output":65536}},"claude-opus-4-6-fast":{"id":"claude-opus-4-6-fast","name":"Claude Opus 4.6 Fast","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":36,"output":180,"cache_read":3.6,"cache_write":45},"limit":{"context":1000000,"output":128000}}}},"aihubmix":{"id":"aihubmix","env":["AIHUBMIX_API_KEY"],"npm":"@aihubmix/ai-sdk-provider","name":"AIHubMix","doc":"https://docs.aihubmix.com","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"coding-glm-5-free":{"id":"coding-glm-5-free","name":"Coding-GLM-5-Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":5.5,"cache_read":0.11,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"coding-glm-4.7":{"id":"coding-glm-4.7","name":"Coding-GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.12},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"gemini-3-pro-preview-search":{"id":"gemini-3-pro-preview-search","name":"Gemini 3 Pro Preview Search","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":2.82},"limit":{"context":204800,"output":131072}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"Kimi-K2-0905":{"id":"Kimi-K2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":64000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5-Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.25},"limit":{"context":128000,"output":16384}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.31},"limit":{"context":2000000,"output":65000}},"coding-minimax-m2.1-free":{"id":"coding-minimax-m2.1-free","name":"Coding MiniMax M2.1 Free","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"deepseek-v3.2-fast":{"id":"deepseek-v3.2-fast","name":"DeepSeek-V3.2-Fast","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3.29},"limit":{"context":128000,"output":128000}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-09","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":65536}},"deepseek-v3.2-think":{"id":"deepseek-v3.2-think","name":"DeepSeek-V3.2-Think","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.02},"limit":{"context":1000000,"output":65000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":2.8},"limit":{"context":262144,"output":262144}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"claude-opus-4-6-think":{"id":"claude-opus-4-6-think","name":"Claude Opus 4.6 Think","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.41},"limit":{"context":128000,"output":32768}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":1.37},"limit":{"context":262144,"output":65536}},"coding-glm-4.7-free":{"id":"coding-glm-4.7-free","name":"Coding GLM 4.7 Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.55},"limit":{"context":262144,"input":262144,"output":65536}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.82,"output":3.29},"limit":{"context":262144,"output":131000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":7,"output":28,"cache_read":3.5},"limit":{"context":400000,"output":128000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":400000,"output":128000}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.66},"limit":{"context":1000000,"output":65536}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-6-think":{"id":"claude-sonnet-4-6-think","name":"Claude Sonnet 4.6 Think","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}}}},"cerebras":{"id":"cerebras","env":["CEREBRAS_API_KEY"],"npm":"@ai-sdk/cerebras","name":"Cerebras","doc":"https://inference-docs.cerebras.ai/models/overview","models":{"llama3.1-8b":{"id":"llama3.1-8b","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":32000,"output":8000}},"qwen-3-235b-a22b-instruct-2507":{"id":"qwen-3-235b-a22b-instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":131000,"output":32000}},"zai-glm-4.7":{"id":"zai-glm-4.7","name":"Z.AI GLM-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.25,"output":2.75,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":40000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.69},"limit":{"context":131072,"output":32768}}}},"firmware":{"id":"firmware","env":["FIRMWARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://app.frogbot.ai/api/v1","name":"Firmware","doc":"https://docs.frogbot.ai","models":{"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":128000}},"gpt-5-4":{"id":"gpt-5-4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":272000,"output":128000}},"deepseek-v3-2":{"id":"deepseek-v3-2","name":"DeepSeek v3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":1.68,"cache_read":0.28},"limit":{"context":128000,"output":8192}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-17","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"zai-glm-5-1":{"id":"zai-glm-5-1","name":"GLM-5","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":198000,"output":8192}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075},"limit":{"context":1048576,"output":65536}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":128000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2},"limit":{"context":131072,"output":32768}},"qwen-3-6-plus":{"id":"qwen-3-6-plus","name":"Qwen 3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.1},"limit":{"context":1000000,"output":64000}},"minimax-m2-5":{"id":"minimax-m2-5","name":"MiniMax-M2.5","family":"minimax","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-01-15","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":192000,"output":8192}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"gpt-5-3-codex":{"id":"gpt-5-3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2026-01-31","release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}}}},"lmstudio":{"id":"lmstudio","env":["LMSTUDIO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"http://127.0.0.1:1234/v1","name":"LMStudio","doc":"https://lmstudio.ai/models","models":{"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-30b":{"id":"qwen/qwen3-coder-30b","name":"Qwen3 Coder 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"qwen/qwen3-30b-a3b-2507":{"id":"qwen/qwen3-30b-a3b-2507","name":"Qwen3 30B A3B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}}}},"lucidquery":{"id":"lucidquery","env":["LUCIDQUERY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://lucidquery.com/api/v1","name":"LucidQuery AI","doc":"https://lucidquery.com/api/docs","models":{"lucidnova-rf1-100b":{"id":"lucidnova-rf1-100b","name":"LucidNova RF1 100B","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-09-16","release_date":"2024-12-28","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":120000,"output":8000}},"lucidquery-nexus-coder":{"id":"lucidquery-nexus-coder","name":"LucidQuery Nexus Coder","family":"lucid","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":250000,"output":60000}}}},"moonshotai-cn":{"id":"moonshotai-cn","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.cn/v1","name":"Moonshot AI (China)","doc":"https://platform.moonshot.cn/docs/api/chat","models":{"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}}}},"azure-cognitive-services":{"id":"azure-cognitive-services","env":["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME","AZURE_COGNITIVE_SERVICES_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure Cognitive Services","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}}}},"cohere":{"id":"cohere","env":["COHERE_API_KEY"],"npm":"@ai-sdk/cohere","name":"Cohere","doc":"https://docs.cohere.com/docs/models","models":{"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Command A Reasoning","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":32000}},"command-r7b-12-2024":{"id":"command-r7b-12-2024","name":"Command R7B","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"c4ai-aya-vision-8b":{"id":"c4ai-aya-vision-8b","name":"Aya Vision 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"command-r-plus-08-2024":{"id":"command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"c4ai-aya-expanse-8b":{"id":"c4ai-aya-expanse-8b","name":"Aya Expanse 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":8000,"output":4000}},"command-r7b-arabic-02-2025":{"id":"command-r7b-arabic-02-2025","name":"Command R7B Arabic","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"command-a-vision-07-2025":{"id":"command-a-vision-07-2025","name":"Command A Vision","family":"command-a","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":8000}},"c4ai-aya-vision-32b":{"id":"c4ai-aya-vision-32b","name":"Aya Vision 32B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"command-a-translate-08-2025":{"id":"command-a-translate-08-2025","name":"Command A Translate","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":8000}},"command-r-08-2024":{"id":"command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"c4ai-aya-expanse-32b":{"id":"c4ai-aya-expanse-32b","name":"Aya Expanse 32B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":128000,"output":4000}},"command-a-03-2025":{"id":"command-a-03-2025","name":"Command A","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}}}},"cloudferro-sherlock":{"id":"cloudferro-sherlock","env":["CLOUDFERRO_SHERLOCK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-sherlock.cloudferro.com/openai/v1/","name":"CloudFerro Sherlock","doc":"https://docs.sherlock.cloudferro.com/","models":{"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10-09","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":70000,"output":70000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":131000,"output":131000}},"speakleash/Bielik-11B-v3.0-Instruct":{"id":"speakleash/Bielik-11B-v3.0-Instruct","name":"Bielik 11B v3.0 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"speakleash/Bielik-11B-v2.6-Instruct":{"id":"speakleash/Bielik-11B-v2.6-Instruct","name":"Bielik 11B v2.6 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196000,"output":196000}}}},"kuae-cloud-coding-plan":{"id":"kuae-cloud-coding-plan","env":["KUAE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-plan-endpoint.kuaecloud.net/v1","name":"KUAE Cloud Coding Plan","doc":"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"xai":{"id":"xai","env":["XAI_API_KEY"],"npm":"@ai-sdk/xai","name":"xAI","doc":"https://docs.x.ai/docs/models","models":{"grok-2-1212":{"id":"grok-2-1212","name":"Grok 2 (1212)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-12-12","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-vision-beta":{"id":"grok-vision-beta","name":"Grok Vision Beta","family":"grok-vision","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":8192,"output":4096}},"grok-3-mini-fast":{"id":"grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-3-mini-latest":{"id":"grok-3-mini-latest","name":"Grok 3 Mini Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-3-fast":{"id":"grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"grok-2-vision-latest":{"id":"grok-2-vision-latest","name":"Grok 2 Vision Latest","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-4.20-0309-reasoning":{"id":"grok-4.20-0309-reasoning","name":"Grok 4.20 (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3-mini-fast-latest":{"id":"grok-3-mini-fast-latest","name":"Grok 3 Mini Fast Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-4-fast":{"id":"grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3-latest":{"id":"grok-3-latest","name":"Grok 3 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-2":{"id":"grok-2","name":"Grok 2","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"grok-4.20-0309-non-reasoning":{"id":"grok-4.20-0309-non-reasoning","name":"Grok 4.20 (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-3-fast-latest":{"id":"grok-3-fast-latest","name":"Grok 3 Fast Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"grok-4.20-multi-agent-0309":{"id":"grok-4.20-multi-agent-0309","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"grok-2-latest":{"id":"grok-2-latest","name":"Grok 2 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-beta":{"id":"grok-beta","name":"Grok Beta","family":"grok-beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":131072,"output":4096}},"grok-2-vision":{"id":"grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-4-1-fast":{"id":"grok-4-1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-2-vision-1212":{"id":"grok-2-vision-1212","name":"Grok 2 Vision (1212)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}}}},"meganova":{"id":"meganova","env":["MEGANOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.meganova.ai/v1","name":"Meganova","doc":"https://docs.meganova.ai","models":{"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3.5-Plus":{"id":"Qwen/Qwen3.5-Plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":16384,"output":16384}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":202752,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56},"limit":{"context":202752,"output":131072}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.9},"limit":{"context":202752,"output":131072}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":65536}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":32000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":16384}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.88},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-10-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.15},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38},"limit":{"context":164000,"output":164000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.6},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.8},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":131072}}}},"google-vertex-anthropic":{"id":"google-vertex-anthropic","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex/anthropic","name":"Vertex (Anthropic)","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude","models":{"claude-haiku-4-5@20251001":{"id":"claude-haiku-4-5@20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-6@default":{"id":"claude-sonnet-4-6@default","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku@20241022":{"id":"claude-3-5-haiku@20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-3-5-sonnet@20241022":{"id":"claude-3-5-sonnet@20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-opus-4-1@20250805":{"id":"claude-opus-4-1@20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-sonnet-4@20250514":{"id":"claude-sonnet-4@20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-7-sonnet@20250219":{"id":"claude-3-7-sonnet@20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4@20250514":{"id":"claude-opus-4@20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-opus-4-5@20251101":{"id":"claude-opus-4-5@20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-5@20250929":{"id":"claude-sonnet-4-5@20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-6@default":{"id":"claude-opus-4-6@default","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}}}},"evroc":{"id":"evroc","env":["EVROC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://models.think.evroc.com/v1","name":"evroc","doc":"https://docs.evroc.com/products/think/overview.html","models":{"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen3 VL 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":100000,"output":100000}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3 Embedding 8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8","name":"Qwen3 30B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.42},"limit":{"context":64000,"output":64000}},"mistralai/devstral-small-2-24b-instruct-2512":{"id":"mistralai/devstral-small-2-24b-instruct-2512","name":"Devstral Small 2 24B Instruct 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.47},"limit":{"context":32768,"output":32768}},"mistralai/Voxtral-Small-24B-2507":{"id":"mistralai/Voxtral-Small-24B-2507","name":"Voxtral Small 24B","family":"voxtral","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":32000,"output":32000}},"mistralai/Magistral-Small-2509":{"id":"mistralai/Magistral-Small-2509","name":"Magistral Small 1.2 24B","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":2.36},"limit":{"context":131072,"output":131072}},"microsoft/Phi-4-multimodal-instruct":{"id":"microsoft/Phi-4-multimodal-instruct","name":"Phi-4 15B","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.47},"limit":{"context":32000,"output":32000}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB Whisper","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":448}},"nvidia/Llama-3.3-70B-Instruct-FP8":{"id":"nvidia/Llama-3.3-70B-Instruct-FP8","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.18,"output":1.18},"limit":{"context":131072,"output":32768}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper 3 Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":65536,"output":65536}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":1.47,"output":5.9},"limit":{"context":262144,"output":262144}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"E5 Multi-Lingual Large Embeddings 0.6B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":512,"output":512}}}},"synthetic":{"id":"synthetic","env":["SYNTHETIC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.synthetic.new/openai/v1","name":"Synthetic","doc":"https://synthetic.new/pricing","models":{"hf:meta-llama/Llama-3.1-405B-Instruct":{"id":"hf:meta-llama/Llama-3.1-405B-Instruct","name":"Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":328000,"output":4096}},"hf:meta-llama/Llama-3.3-70B-Instruct":{"id":"hf:meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-8B-Instruct":{"id":"hf:meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-70B-Instruct":{"id":"hf:meta-llama/Llama-3.1-70B-Instruct","name":"Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":524000,"output":4096}},"hf:MiniMaxAI/MiniMax-M2":{"id":"hf:MiniMaxAI/MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":196608,"output":131000}},"hf:MiniMaxAI/MiniMax-M2.5":{"id":"hf:MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-07","last_updated":"2026-02-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.6},"limit":{"context":191488,"output":65536}},"hf:MiniMaxAI/MiniMax-M2.1":{"id":"hf:MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":204800,"output":131072}},"hf:Qwen/Qwen3.5-397B-A17B":{"id":"hf:Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-97B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.6},"limit":{"context":262144,"output":65536},"status":"beta"},"hf:Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"hf:Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"hf:Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":256000,"output":32000}},"hf:deepseek-ai/DeepSeek-V3.1":{"id":"hf:deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3-0324":{"id":"hf:deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 (0324)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3":{"id":"hf:deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-R1":{"id":"hf:deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-R1-0528":{"id":"hf:deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 (0528)","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":8},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.2":{"id":"hf:deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4,"cache_read":0.27,"cache_write":0},"limit":{"context":162816,"input":162816,"output":8000}},"hf:deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"hf:deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:openai/gpt-oss-120b":{"id":"hf:openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"hf:moonshotai/Kimi-K2-Thinking":{"id":"hf:moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"hf:moonshotai/Kimi-K2-Instruct-0905":{"id":"hf:moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":1.2},"limit":{"context":262144,"output":32768}},"hf:moonshotai/Kimi-K2.5":{"id":"hf:moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4":{"id":"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1,"cache_read":0.3},"limit":{"context":262144,"output":65536}},"hf:nvidia/Kimi-K2.5-NVFP4":{"id":"hf:nvidia/Kimi-K2.5-NVFP4","name":"Kimi K2.5 (NVFP4)","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:zai-org/GLM-4.7-Flash":{"id":"hf:zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-18","last_updated":"2026-01-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.06},"limit":{"context":196608,"output":65536}},"hf:zai-org/GLM-4.7":{"id":"hf:zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}},"hf:zai-org/GLM-5":{"id":"hf:zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":1},"limit":{"context":196608,"output":65536}},"hf:zai-org/GLM-4.6":{"id":"hf:zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}}}},"nvidia":{"id":"nvidia","env":["NVIDIA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://integrate.api.nvidia.com/v1","name":"Nvidia","doc":"https://docs.api.nvidia.com/nim/","models":{"black-forest-labs/flux.1-dev":{"id":"black-forest-labs/flux.1-dev","name":"FLUX.1-dev","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":0}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":16384}},"mistralai/codestral-22b-instruct-v0.1":{"id":"mistralai/codestral-22b-instruct-v0.1","name":"Codestral 22b Instruct V0.1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-29","last_updated":"2024-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B Instruct 2512","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral-2-123B-Instruct-2512","family":"devstral","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B Instruct 2512","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-3.1-24b-instruct-2503":{"id":"mistralai/mistral-small-3.1-24b-instruct-2503","name":"Mistral Small 3.1 24b Instruct 2503","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mamba-codestral-7b-v0.1":{"id":"mistralai/mamba-codestral-7b-v0.1","name":"Mamba Codestral 7b V0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-2-instruct":{"id":"mistralai/mistral-large-2-instruct","name":"Mistral Large 2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi 3 Medium 4k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4000,"output":4096}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi 3.5 Moe Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-17","last_updated":"2024-08-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-Mini","family":"phi","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi 3 Small 8k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":4096}},"microsoft/phi-3-vision-128k-instruct":{"id":"microsoft/phi-3-vision-128k-instruct","name":"Phi 3 Vision 128k Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-19","last_updated":"2024-05-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi 3.5 Vision Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi 3 Small 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi 3 Medium 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.3-nemotron-super-49b-v1":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1","name":"Llama 3.3 Nemotron Super 49b V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemotron-4-340b-instruct":{"id":"nvidia/nemotron-4-340b-instruct","name":"Nemotron 4 340b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-13","last_updated":"2024-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama3-chatqa-1.5-70b":{"id":"nvidia/llama3-chatqa-1.5-70b","name":"Llama3 Chatqa 1.5 70b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-28","last_updated":"2024-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"Llama 3.3 Nemotron Super 49b V1.5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"nvidia/parakeet-tdt-0.6b-v2":{"id":"nvidia/parakeet-tdt-0.6b-v2","name":"Parakeet TDT 0.6B v2","family":"parakeet","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"nemotron-3-nano-30b-a3b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nvidia/llama-3.1-nemotron-ultra-253b-v1":{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nvidia/cosmos-nemotron-34b":{"id":"nvidia/cosmos-nemotron-34b","name":"Cosmos Nemotron 34B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/llama-embed-nemotron-8b":{"id":"nvidia/llama-embed-nemotron-8b","name":"Llama Embed Nemotron 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-03","release_date":"2025-03-18","last_updated":"2025-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":2048}},"nvidia/llama-3.1-nemotron-51b-instruct":{"id":"nvidia/llama-3.1-nemotron-51b-instruct","name":"Llama 3.1 Nemotron 51b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-22","last_updated":"2024-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"Llama 3.1 Nemotron 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemoretriever-ocr-v1":{"id":"nvidia/nemoretriever-ocr-v1","name":"NeMo Retriever OCR v1","family":"nemoretriever","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"deepseek-ai/deepseek-r1":{"id":"deepseek-ai/deepseek-r1","name":"Deepseek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.1":{"id":"deepseek-ai/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-20","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek-ai/deepseek-coder-6.7b-instruct":{"id":"deepseek-ai/deepseek-coder-6.7b-instruct","name":"Deepseek Coder 6.7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2023-10-29","last_updated":"2023-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.2":{"id":"deepseek-ai/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":163840,"output":65536}},"deepseek-ai/deepseek-r1-0528":{"id":"deepseek-ai/deepseek-r1-0528","name":"Deepseek R1 0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.1-terminus":{"id":"deepseek-ai/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"minimaxai/minimax-m2.1":{"id":"minimaxai/minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"minimaxai/minimax-m2.5":{"id":"minimaxai/minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"z-ai/glm4.7":{"id":"z-ai/glm4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"z-ai/glm5":{"id":"z-ai/glm5","name":"GLM5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":131000}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17b 16e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-02","last_updated":"2025-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-26","last_updated":"2024-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-8b-instruct":{"id":"meta/llama3-8b-instruct","name":"Llama3 8b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-70b-instruct":{"id":"meta/llama3-70b-instruct","name":"Llama3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/codellama-70b":{"id":"meta/codellama-70b","name":"Codellama 70b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-29","last_updated":"2024-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11b Vision Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.1-70b-instruct":{"id":"meta/llama-3.1-70b-instruct","name":"Llama 3.1 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-maverick-17b-128e-instruct":{"id":"meta/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17b 128e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.1-405b-instruct":{"id":"meta/llama-3.1-405b-instruct","name":"Llama 3.1 405b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen2.5 Coder 7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen2.5-coder-32b-instruct":{"id":"qwen/qwen2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-06","last_updated":"2024-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":8192}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwq 32b","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma 2 2b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n E4b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-03","last_updated":"2025-06-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-1b-it":{"id":"google/gemma-3-1b-it","name":"Gemma 3 1b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/codegemma-7b":{"id":"google/codegemma-7b","name":"Codegemma 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-03-21","last_updated":"2024-03-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma-4-31B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":16384}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/codegemma-1.1-7b":{"id":"google/codegemma-1.1-7b","name":"Codegemma 1.1 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-04-30","last_updated":"2024-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e2b-it":{"id":"google/gemma-3n-e2b-it","name":"Gemma 3n E2b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Gemma 2 27b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-01-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":262144}}}},"inference":{"id":"inference","env":["INFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.net/v1","name":"Inference","doc":"https://inference.net/models","models":{"mistral/mistral-nemo-12b-instruct":{"id":"mistral/mistral-nemo-12b-instruct","name":"Mistral Nemo 12B Instruct","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.038,"output":0.1},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.055,"output":0.055},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-3b-instruct":{"id":"meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16000,"output":4096}},"meta/llama-3.1-8b-instruct":{"id":"meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.025,"output":0.025},"limit":{"context":16000,"output":4096}},"qwen/qwen-2.5-7b-vision-instruct":{"id":"qwen/qwen-2.5-7b-vision-instruct","name":"Qwen 2.5 7B Vision Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":125000,"output":4096}},"qwen/qwen3-embedding-4b":{"id":"qwen/qwen3-embedding-4b","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"google/gemma-3":{"id":"google/gemma-3","name":"Google Gemma 3","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.3},"limit":{"context":125000,"output":4096}},"osmosis/osmosis-structure-0.6b":{"id":"osmosis/osmosis-structure-0.6b","name":"Osmosis Structure 0.6B","family":"osmosis","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":4000,"output":2048}}}},"inception":{"id":"inception","env":["INCEPTION_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inceptionlabs.ai/v1/","name":"Inception","doc":"https://platform.inceptionlabs.ai/docs","models":{"mercury-edit":{"id":"mercury-edit","name":"Mercury Edit","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":8192}},"mercury-2":{"id":"mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"mercury":{"id":"mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-06-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}},"mercury-coder":{"id":"mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-02-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}}}},"openai":{"id":"openai","env":["OPENAI_API_KEY"],"npm":"@ai-sdk/openai","name":"OpenAI","doc":"https://platform.openai.com/docs/models","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-05-13":{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat (latest)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2022-12","release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"o4-mini-deep-research":{"id":"o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":1.5,"output":9,"cache_read":0.15},"provider":{"body":{"service_tier":"priority"}}}}}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-image-1":{"id":"gpt-image-1","name":"gpt-image-1","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-24","last_updated":"2025-04-24","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":128000,"output":32768}},"gpt-4o-2024-08-06":{"id":"gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-image-1-mini":{"id":"gpt-image-1-mini","name":"gpt-image-1-mini","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"o1":{"id":"o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"context_over_200k":{"input":60,"output":270}},"limit":{"context":1050000,"input":922000,"output":128000}},"gpt-3.5-turbo":{"id":"gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"o3-deep-research":{"id":"o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"o1-pro":{"id":"o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"codex-mini-latest":{"id":"codex-mini-latest","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":5,"output":30,"cache_read":0.5},"provider":{"body":{"service_tier":"priority"}}}}}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":100000,"output":32000}},"chatgpt-image-latest":{"id":"chatgpt-image-latest","name":"chatgpt-image-latest","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":272000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-image-1.5":{"id":"gpt-image-1.5","name":"gpt-image-1.5","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"requesty":{"id":"requesty","env":["REQUESTY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://router.requesty.ai/v1","name":"Requesty","doc":"https://requesty.ai/solution/llm-routing/models","models":{"xai/grok-4-fast":{"id":"xai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.2},"limit":{"context":2000000,"output":64000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":3},"limit":{"context":256000,"output":64000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":128000,"output":32000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":16000,"output":4000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","audio","image","video"],"output":["text","audio","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":2.375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.55},"limit":{"context":1048576,"output":65536}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":62000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3-7-sonnet":{"id":"anthropic/claude-3-7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}}}},"vultr":{"id":"vultr","env":["VULTR_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.vultrinference.com/v1","name":"Vultr","doc":"https://api.vultrinference.com/","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-02-11","last_updated":"2025-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":194000,"output":4096}},"GLM-5-FP8":{"id":"GLM-5-FP8","name":"GLM 5 FP8","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":3.1},"limit":{"context":200000,"output":131072}},"DeepSeek-V3.2":{"id":"DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":127000,"output":4096}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":129000,"output":4096}},"Kimi-K2.5":{"id":"Kimi-K2.5","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.75},"limit":{"context":254000,"output":32768}}}},"alibaba-coding-plan-cn":{"id":"alibaba-coding-plan-cn","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan (China)","doc":"https://help.aliyun.com/zh/model-studio/coding-plan","models":{"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"output":24576}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"mistral":{"id":"mistral","env":["MISTRAL_API_KEY"],"npm":"@ai-sdk/mistral","name":"Mistral","doc":"https://docs.mistral.ai/getting-started/models/","models":{"mistral-small-latest":{"id":"mistral-small-latest","name":"Mistral Small (latest)","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":256000,"output":256000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"mistral-large-2512":{"id":"mistral-large-2512","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"labs-devstral-small-2512":{"id":"labs-devstral-small-2512","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"magistral-medium-latest":{"id":"magistral-medium-latest","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}},"open-mixtral-8x7b":{"id":"open-mixtral-8x7b","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"output":32000}},"pixtral-large-latest":{"id":"pixtral-large-latest","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 2.1","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":16384}},"codestral-latest":{"id":"codestral-latest","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"mistral-large-latest":{"id":"mistral-large-latest","name":"Mistral Large (latest)","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"mistral-small-2506":{"id":"mistral-small-2506","name":"Mistral Small 3.2","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"pixtral-12b":{"id":"pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"ministral-8b-latest":{"id":"ministral-8b-latest","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"mistral-embed":{"id":"mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8000,"output":3072}},"magistral-small":{"id":"magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral-small-2603":{"id":"mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":256000,"output":256000}},"ministral-3b-latest":{"id":"ministral-3b-latest","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"open-mixtral-8x22b":{"id":"open-mixtral-8x22b","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"devstral-small-2505":{"id":"devstral-small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"devstral-medium-2507":{"id":"devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"mistral-medium-latest":{"id":"mistral-medium-latest","name":"Mistral Medium (latest)","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":16384}},"open-mistral-7b":{"id":"open-mistral-7b","name":"Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.25},"limit":{"context":8000,"output":8000}},"devstral-medium-latest":{"id":"devstral-medium-latest","name":"Devstral 2 (latest)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"devstral-small-2507":{"id":"devstral-small-2507","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"mistral-medium-2508":{"id":"mistral-medium-2508","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}}}},"ovhcloud":{"id":"ovhcloud","env":["OVHCLOUD_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1","name":"OVHcloud AI Endpoints","doc":"https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//","models":{"mixtral-8x7b-instruct-v0.1":{"id":"mixtral-8x7b-instruct-v0.1","name":"Mixtral-8x7B-Instruct-v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"output":32768}},"qwen2.5-coder-32b-instruct":{"id":"qwen2.5-coder-32b-instruct","name":"Qwen2.5-Coder-32B-Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.96,"output":0.96},"limit":{"context":32768,"output":32768}},"meta-llama-3_3-70b-instruct":{"id":"meta-llama-3_3-70b-instruct","name":"Meta-Llama-3_3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"mistral-7b-instruct-v0.3":{"id":"mistral-7b-instruct-v0.3","name":"Mistral-7B-Instruct-v0.3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":65536,"output":65536}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek-R1-Distill-Llama-70B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-30","last_updated":"2025-01-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.25},"limit":{"context":32768,"output":32768}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.01,"output":1.01},"limit":{"context":32768,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.26},"limit":{"context":262144,"output":262144}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.18},"limit":{"context":131072,"output":131072}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral-Small-3.2-24B-Instruct-2506","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.31},"limit":{"context":131072,"output":131072}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.47},"limit":{"context":131072,"output":131072}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral-Nemo-Instruct-2407","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":65536,"output":65536}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-11","last_updated":"2025-06-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":131072,"output":131072}}}},"friendli":{"id":"friendli","env":["FRIENDLI_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.friendli.ai/serverless/v1","name":"Friendli","doc":"https://friendli.ai/docs/guides/serverless_endpoints/introduction","models":{"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4},"limit":{"context":202752,"output":202752}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":202752}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":0.6},"limit":{"context":131072,"output":131072}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":8000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}}}},"cortecs":{"id":"cortecs","env":["CORTECS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cortecs.ai/v1","name":"Cortecs","doc":"https://api.cortecs.ai/v1/models","models":{"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.09,"output":5.43},"limit":{"context":200000,"output":200000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.76},"limit":{"context":256000,"output":256000}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":1.654},"limit":{"context":128000,"output":128000}},"glm-4.7":{"id":"glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.23},"limit":{"context":198000,"output":198000}},"glm-5":{"id":"glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.08,"output":3.44},"limit":{"context":202752,"output":202752}},"nova-pro-v1":{"id":"nova-pro-v1","name":"Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.016,"output":4.061},"limit":{"context":300000,"output":5000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.099,"output":0.33},"limit":{"context":16384,"output":16384}},"claude-4-5-sonnet":{"id":"claude-4-5-sonnet","name":"Claude 4.5 Sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.259,"output":16.296},"limit":{"context":200000,"output":200000}},"kimi-k2-instruct":{"id":"kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-07-11","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":2.646},"limit":{"context":131000,"output":131000}},"minimax-m2":{"id":"minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-11","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.57},"limit":{"context":400000,"output":400000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.654,"output":11.024},"limit":{"context":1048576,"output":65535}},"claude-opus4-6":{"id":"claude-opus4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":1000000,"output":1000000}},"devstral-small-2512":{"id":"devstral-small-2512","name":"Devstral Small 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.34},"limit":{"context":196000,"output":196000}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":2.46},"limit":{"context":131072,"output":131072}},"claude-opus4-5":{"id":"claude-opus4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":200000,"output":200000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.307,"output":16.536},"limit":{"context":200000,"output":64000}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.164,"output":1.311},"limit":{"context":128000,"output":128000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.34},"limit":{"context":131072,"output":131072}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next 80B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.158,"output":0.84},"limit":{"context":256000,"output":65536}},"claude-4-6-sonnet":{"id":"claude-4-6-sonnet","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.59,"output":17.92},"limit":{"context":1000000,"output":1000000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.441,"output":1.984},"limit":{"context":262000,"output":262000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":1.18},"limit":{"context":196608,"output":196608}},"intellect-3":{"id":"intellect-3","name":"INTELLECT 3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.219,"output":1.202},"limit":{"context":128000,"output":128000}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.53},"limit":{"context":203000,"output":203000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT Oss 120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.354,"output":9.417},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.656,"output":2.731},"limit":{"context":262000,"output":262000}},"llama-3.1-405b-instruct":{"id":"llama-3.1-405b-instruct","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}}}},"siliconflow":{"id":"siliconflow","env":["SILICONFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.com/v1","name":"SiliconFlow","doc":"https://cloud.siliconflow.com/models","models":{"nex-agi/DeepSeek-V3.1-Nex-N1":{"id":"nex-agi/DeepSeek-V3.1-Nex-N1","name":"nex-agi/DeepSeek-V3.1-Nex-N1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen/Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.42},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-7B-Instruct":{"id":"Qwen/Qwen2.5-VL-7B-Instruct","name":"Qwen/Qwen2.5-VL-7B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"zai-org/GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131000,"output":131000}},"zai-org/GLM-5V-Turbo":{"id":"zai-org/GLM-5V-Turbo","name":"zai-org/GLM-5V-Turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_write":0},"limit":{"context":200000,"output":131072}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"zai-org/GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_write":0},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"meta-llama/Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":33000,"output":4000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"deepseek-ai/DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"deepseek-ai/DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"openai/gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.18},"limit":{"context":131000,"output":8000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"openai/gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.45},"limit":{"context":131000,"output":8000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"moonshotai/Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":2.29},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}}}},"vercel":{"id":"vercel","env":["AI_GATEWAY_API_KEY"],"npm":"@ai-sdk/gateway","name":"Vercel AI Gateway","doc":"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway","models":{"alibaba/qwen3-coder-plus":{"id":"alibaba/qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1000000,"output":1000000}},"alibaba/qwen3-embedding-8b":{"id":"alibaba/qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen-3-30b":{"id":"alibaba/qwen-3-30b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":40960,"output":16384}},"alibaba/qwen-3-235b":{"id":"alibaba/qwen-3-235b","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":40960,"output":16384}},"alibaba/qwen3.5-flash":{"id":"alibaba/qwen3.5-flash","name":"Qwen 3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.001,"cache_write":0.125},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3.6-plus":{"id":"alibaba/qwen3.6-plus","name":"Qwen 3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.09999999999999999,"cache_write":0.625},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3-max":{"id":"alibaba/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"alibaba/qwen3-embedding-0.6b":{"id":"alibaba/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen-3-32b":{"id":"alibaba/qwen-3-32b","name":"Qwen 3.32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-next-80b-a3b-thinking":{"id":"alibaba/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":65536}},"alibaba/qwen3-vl-thinking":{"id":"alibaba/qwen3-vl-thinking","name":"Qwen3 VL Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":8.4},"limit":{"context":131072,"output":129024}},"alibaba/qwen3-235b-a22b-thinking":{"id":"alibaba/qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9},"limit":{"context":262114,"output":262114}},"alibaba/qwen3-next-80b-a3b-instruct":{"id":"alibaba/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":262144,"output":32768}},"alibaba/qwen3-coder-next":{"id":"alibaba/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":256000,"output":256000}},"alibaba/qwen3-embedding-4b":{"id":"alibaba/qwen3-embedding-4b","name":"Qwen3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen3-max-thinking":{"id":"alibaba/qwen3-max-thinking","name":"Qwen 3 Max Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":256000,"output":65536}},"alibaba/qwen3-coder":{"id":"alibaba/qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.38,"output":1.53},"limit":{"context":262144,"output":66536}},"alibaba/qwen3-max-preview":{"id":"alibaba/qwen3-max-preview","name":"Qwen3 Max Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"alibaba/qwen3.5-plus":{"id":"alibaba/qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04,"cache_write":0.5},"limit":{"context":1000000,"output":64000}},"alibaba/qwen-3-14b":{"id":"alibaba/qwen-3-14b","name":"Qwen3-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-vl-instruct":{"id":"alibaba/qwen3-vl-instruct","name":"Qwen3 VL Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":129024}},"alibaba/qwen3-coder-30b-a3b":{"id":"alibaba/qwen3-coder-30b-a3b","name":"Qwen 3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":8000}},"perplexity/sonar-reasoning":{"id":"perplexity/sonar-reasoning","name":"Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":8000}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":8000}},"deepseek/deepseek-v3.2-thinking":{"id":"deepseek/deepseek-v3.2-thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1},"limit":{"context":163840,"output":128000}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4,"cache_read":0.22},"limit":{"context":163842,"output":8000}},"deepseek/deepseek-v3":{"id":"deepseek/deepseek-v3","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.77,"output":0.77},"limit":{"context":163840,"output":16384}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.15},"limit":{"context":131072,"output":131072}},"arcee-ai/trinity-large-thinking":{"id":"arcee-ai/trinity-large-thinking","name":"Trinity Large Thinking","family":"trinity","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.8999999999999999},"limit":{"context":262100,"output":80000}},"arcee-ai/trinity-large-preview":{"id":"arcee-ai/trinity-large-preview","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131000,"output":131000}},"recraft/recraft-v3":{"id":"recraft/recraft-v3","name":"Recraft V3","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"recraft/recraft-v2":{"id":"recraft/recraft-v2","name":"Recraft V2","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"voyage/voyage-3-large":{"id":"voyage/voyage-3-large","name":"voyage-3-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-large":{"id":"voyage/voyage-4-large","name":"voyage-4-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-3.5-lite":{"id":"voyage/voyage-3.5-lite","name":"voyage-3.5-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-code-3":{"id":"voyage/voyage-code-3","name":"voyage-code-3","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-finance-2":{"id":"voyage/voyage-finance-2","name":"voyage-finance-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-lite":{"id":"voyage/voyage-4-lite","name":"voyage-4-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-4":{"id":"voyage/voyage-4","name":"voyage-4","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-code-2":{"id":"voyage/voyage-code-2","name":"voyage-code-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-law-2":{"id":"voyage/voyage-law-2","name":"voyage-law-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-3.5":{"id":"voyage/voyage-3.5","name":"voyage-3.5","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0},"limit":{"context":8192,"output":1536}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"zai/glm-5v-turbo":{"id":"zai/glm-5v-turbo","name":"GLM 5V Turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24},"limit":{"context":200000,"output":128000}},"zai/glm-4.7":{"id":"zai/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":120000}},"zai/glm-5":{"id":"zai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai/glm-4.7-flashx":{"id":"zai/glm-4.7-flashx","name":"GLM 4.7 FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai/glm-4.6v-flash":{"id":"zai/glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":24000}},"zai/glm-4.5":{"id":"zai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":131072}},"zai/glm-4.5-air":{"id":"zai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"zai/glm-5-turbo":{"id":"zai/glm-5-turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24},"limit":{"context":202800,"output":131100}},"zai/glm-4.5v":{"id":"zai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":66000,"output":66000}},"zai/glm-4.6":{"id":"zai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":200000,"output":96000}},"zai/glm-4.6v":{"id":"zai/glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9,"cache_read":0.05},"limit":{"context":128000,"output":24000}},"zai/glm-4.7-flash":{"id":"zai/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.39999999999999997},"limit":{"context":200000,"output":131000}},"cohere/command-a":{"id":"cohere/command-a","name":"Command A","family":"command","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"cohere/embed-v4.0":{"id":"cohere/embed-v4.0","name":"Embed v4.0","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"INTELLECT 3","family":"intellect","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"xai/grok-4.20-non-reasoning":{"id":"xai/grok-4.20-non-reasoning","name":"Grok 4.20 Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-non-reasoning-beta":{"id":"xai/grok-4.20-non-reasoning-beta","name":"Grok 4.20 Beta Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-reasoning":{"id":"xai/grok-4.20-reasoning","name":"Grok 4.20 Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image":{"id":"xai/grok-imagine-image","name":"Grok Imagine Image","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4.20-multi-agent-beta":{"id":"xai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi Agent Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image-pro":{"id":"xai/grok-imagine-image-pro","name":"Grok Imagine Image Pro","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":256000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4.20-reasoning-beta":{"id":"xai/grok-4.20-reasoning-beta","name":"Grok 4.20 Beta Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-multi-agent":{"id":"xai/grok-4.20-multi-agent","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-2-vision":{"id":"xai/grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"xai/grok-3-fast":{"id":"xai/grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"xai/grok-3-mini-fast":{"id":"xai/grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"NVIDIA Nemotron 3 Super 120B A12B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.65},"limit":{"context":256000,"output":32000}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nemotron 3 Nano 30B A3B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"Nvidia Nemotron Nano 12B V2 VL","family":"nemotron","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B V2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.024999999999999998},"limit":{"context":128000,"output":128000}},"inception/mercury-coder-small":{"id":"inception/mercury-coder-small","name":"Mercury Coder Small Beta","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT 4o Mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"input":111616,"output":16384}},"openai/codex-mini":{"id":"openai/codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.38},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 ","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"openai/text-embedding-3-large":{"id":"openai/text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT 5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/text-embedding-ada-002":{"id":"openai/text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3 Pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT 5.4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT 5.4 Nano","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-thinking":{"id":"openai/gpt-5.1-thinking","name":"GPT 5.1 Thinking","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT 5.4 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":12289,"output":4096}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"input":100000,"output":100000}},"openai/text-embedding-3-small":{"id":"openai/text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT 5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":131072,"input":98304,"output":32768}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":128000,"output":272000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"gpt-oss-safeguard-20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3,"cache_read":0.04},"limit":{"context":131072,"input":65536,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":8192,"input":4096,"output":4096}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1 Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"amazon/titan-embed-text-v2":{"id":"amazon/titan-embed-text-v2","name":"Titan Text Embeddings V2","family":"titan-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-04","last_updated":"2024-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"amazon/nova-2-lite":{"id":"amazon/nova-2-lite","name":"Nova 2 Lite","family":"nova","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":1000000}},"amazon/nova-pro":{"id":"amazon/nova-pro","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"amazon/nova-lite":{"id":"amazon/nova-lite","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"amazon/nova-micro":{"id":"amazon/nova-micro","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"mistral/mistral-nemo":{"id":"mistral/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"mistral/ministral-14b":{"id":"mistral/ministral-14b","name":"Ministral 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":256000,"output":256000}},"mistral/codestral-embed":{"id":"mistral/codestral-embed","name":"Codestral Embed","family":"codestral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"mistral/mistral-medium":{"id":"mistral/mistral-medium","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":64000}},"mistral/mistral-embed":{"id":"mistral/mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"mistral/devstral-2":{"id":"mistral/devstral-2","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/mistral-large-3":{"id":"mistral/mistral-large-3","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"mistral/devstral-small-2":{"id":"mistral/devstral-small-2","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/devstral-small":{"id":"mistral/devstral-small","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":64000}},"mistral/ministral-8b":{"id":"mistral/ministral-8b","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"mistral/magistral-medium":{"id":"mistral/magistral-medium","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}},"mistral/mistral-small":{"id":"mistral/mistral-small","name":"Mistral Small (latest)","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":256000,"output":256000}},"mistral/magistral-small":{"id":"mistral/magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral/pixtral-12b":{"id":"mistral/pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"mistral/mixtral-8x22b-instruct":{"id":"mistral/mixtral-8x22b-instruct","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"mistral/pixtral-large":{"id":"mistral/pixtral-large","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral/ministral-3b":{"id":"mistral/ministral-3b","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"mistral/codestral":{"id":"mistral/codestral","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"meta/llama-3.2-1b":{"id":"meta/llama-3.2-1b","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":8192}},"meta/llama-3.1-8b":{"id":"meta/llama-3.1-8b","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.05},"limit":{"context":131072,"output":16384}},"meta/llama-3.2-90b":{"id":"meta/llama-3.2-90b","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-3b":{"id":"meta/llama-3.2-3b","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-11b":{"id":"meta/llama-3.2-11b","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":8192}},"meta/llama-3.1-70b":{"id":"meta/llama-3.1-70b","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta/llama-3.3-70b":{"id":"meta/llama-3.3-70b","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-maverick":{"id":"meta/llama-4-maverick","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-scout":{"id":"meta/llama-4-scout","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"vercel/v0-1.5-md":{"id":"vercel/v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"vercel/v0-1.0-md":{"id":"vercel/v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"Minimax M2.7","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 High Speed","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131100}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.15,"cache_read":0.03,"cache_write":0.38},"limit":{"context":262114,"output":262114}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.1-lightning":{"id":"minimax/minimax-m2.1-lightning","name":"MiniMax M2.1 Lightning","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.4,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"MiniMax M2.5 High Speed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4,"cache_read":0.03,"cache_write":0.375},"limit":{"context":0,"output":0}},"kwaipilot/kat-coder-pro-v1":{"id":"kwaipilot/kat-coder-pro-v1","name":"KAT-Coder-Pro V1","family":"kat-coder","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"kwaipilot/kat-coder-pro-v2":{"id":"kwaipilot/kat-coder-pro-v2","name":"Kat Coder Pro V2","family":"kat-coder","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":256000}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1000000,"output":65000}},"google/gemini-3-pro-image":{"id":"google/gemini-3-pro-image","name":"Nano Banana Pro (Gemini 3 Pro Image)","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":65536,"output":32768}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"google/imagen-4.0-ultra-generate-001":{"id":"google/imagen-4.0-ultra-generate-001","name":"Imagen 4 Ultra","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-embedding-001":{"id":"google/gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma 4 31B IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.39999999999999997},"limit":{"context":262144,"output":131072}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Nano Banana (Gemini 2.5 Flash Image)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/text-embedding-005":{"id":"google/text-embedding-005","name":"Text Embedding 005","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08","last_updated":"2024-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/text-multilingual-embedding-002":{"id":"google/text-multilingual-embedding-002","name":"Text Multilingual Embedding 002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image Preview (Nano Banana 2)","family":"gemini","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":131072,"output":32768}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1000000,"output":64000}},"google/imagen-4.0-generate-001":{"id":"google/imagen-4.0-generate-001","name":"Imagen 4","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"google/gemini-embedding-2":{"id":"google/gemini-embedding-2","name":"Gemini Embedding 2","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/gemma-4-26b-a4b-it":{"id":"google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.39999999999999997},"limit":{"context":262144,"output":131072}},"google/imagen-4.0-fast-generate-001":{"id":"google/imagen-4.0-fast-generate-001","name":"Imagen 4 Fast","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash-image-preview":{"id":"google/gemini-2.5-flash-image-preview","name":"Nano Banana Preview (Gemini 2.5 Flash Image Preview)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"moonshotai/kimi-k2-turbo":{"id":"moonshotai/kimi-k2-turbo","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.4,"output":10},"limit":{"context":256000,"output":16384}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262114,"output":262114}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":131072,"output":16384}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.47,"output":2,"cache_read":0.14},"limit":{"context":216144,"output":216144}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"anthropic/claude-3.5-sonnet-20240620":{"id":"anthropic/claude-3.5-sonnet-20240620","name":"Claude 3.5 Sonnet (2024-06-20)","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3,"cache_read":0.19999999999999998},"limit":{"context":1000000,"output":128000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.29},"limit":{"context":262144,"output":32000}},"bytedance/seed-1.6":{"id":"bytedance/seed-1.6","name":"Seed 1.6","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":32000}},"bytedance/seed-1.8":{"id":"bytedance/seed-1.8","name":"Seed 1.8","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":64000}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"LongCat Flash Chat","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-30","last_updated":"2025-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"meituan/longcat-flash-thinking":{"id":"meituan/longcat-flash-thinking","name":"LongCat Flash Thinking","family":"longcat","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":1.5},"limit":{"context":128000,"output":8192}},"meituan/longcat-flash-thinking-2601":{"id":"meituan/longcat-flash-thinking-2601","name":"LongCat Flash Thinking 2601","family":"longcat","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32768,"output":32768}},"bfl/flux-pro-1.0-fill":{"id":"bfl/flux-pro-1.0-fill","name":"FLUX.1 Fill [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1":{"id":"bfl/flux-pro-1.1","name":"FLUX1.1 [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-pro":{"id":"bfl/flux-kontext-pro","name":"FLUX.1 Kontext Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-max":{"id":"bfl/flux-kontext-max","name":"FLUX.1 Kontext Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1-ultra":{"id":"bfl/flux-pro-1.1-ultra","name":"FLUX1.1 [pro] Ultra","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}}}},"minimax":{"id":"minimax","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax (minimax.io)","doc":"https://platform.minimax.io/docs/guides/quickstart","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"llmgateway":{"id":"llmgateway","env":["LLMGATEWAY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.llmgateway.io/v1","name":"LLM Gateway","doc":"https://llmgateway.io/docs","models":{"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131100}},"gpt-4o-mini-search-preview":{"id":"gpt-4o-mini-search-preview","name":"GPT-4o Mini Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-4-20-beta-0309-non-reasoning":{"id":"grok-4-20-beta-0309-non-reasoning","name":"Grok 4.20 Beta Non-Reasoning (0309)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":2000000,"output":30000}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":6,"output":60},"limit":{"context":1000000,"output":66000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":32000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview (09-2025)","family":"gemini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65535}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-21","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":8192},"status":"beta"},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":32768}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":128000,"output":16384}},"mistral-large-2512":{"id":"mistral-large-2512","name":"Mistral Large 3","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":16384}},"llama-4-scout":{"id":"llama-4-scout","name":"Llama 4 Scout","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.59},"limit":{"context":32768,"output":16384},"status":"beta"},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"minimax-m2.7-highspeed":{"id":"minimax-m2.7-highspeed","name":"MiniMax M2.7 Highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06},"limit":{"context":204800,"output":131100}},"hermes-2-pro-llama-3-8b":{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192},"status":"beta"},"qwen-coder-plus":{"id":"qwen-coder-plus","name":"Qwen Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":131072,"output":8192}},"auto":{"id":"auto","name":"Auto Route","family":"auto","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"gemma-3n-e4b-it":{"id":"gemma-3n-e4b-it","name":"Gemma 3n E4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude 3.5 Sonnet (2024-10-22)","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":8192},"status":"deprecated"},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":272000}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4},"limit":{"context":131072,"output":8192}},"glm-4.6v-flashx":{"id":"glm-4.6v-flashx","name":"GLM-4.6V FlashX","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.4,"cache_read":0},"limit":{"context":128000,"output":16000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.03},"limit":{"context":1048576,"output":65536}},"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen VL Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.21,"output":0.64},"limit":{"context":131072,"output":32000}},"gemma-2-27b-it-together":{"id":"gemma-2-27b-it-together","name":"Gemma 2 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.08},"limit":{"context":8192,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131100}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":16384}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"output":8192}},"codestral-2508":{"id":"codestral-2508","name":"Codestral","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":16384}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7 FlashX","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"gemma-3-1b-it":{"id":"gemma-3-1b-it","name":"Gemma 3 1B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro (Preview)","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"qwen35-397b-a17b":{"id":"qwen35-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":65536}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.6,"output":6.4},"limit":{"context":131072,"output":32000}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"output":16384}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1048576,"output":8192},"status":"deprecated"},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash (Preview)","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65535}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":131072,"output":32000}},"glm-4-32b-0414-128k":{"id":"glm-4-32b-0414-128k","name":"GLM-4 32B (0414-128k)","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":16384}},"seed-1-6-flash-250715":{"id":"seed-1-6-flash-250715","name":"Seed 1.6 Flash (250715)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":16384}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen Omni Turbo","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-26","last_updated":"2025-03-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":32768,"output":8192}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":400000,"output":128000}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Claude 3 Haiku (2024-03-07)","family":"claude","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03},"limit":{"context":200000,"output":4096}},"seed-1-6-250615":{"id":"seed-1-6-250615","name":"Seed 1.6 (250615)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":16384}},"qwen3-vl-235b-a22b-thinking":{"id":"qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"qwen3-vl-30b-a3b-thinking":{"id":"qwen3-vl-30b-a3b-thinking","name":"Qwen3 VL 30B A3B Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1},"limit":{"context":131072,"output":32768}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"output":128000}},"minimax-m2":{"id":"minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1,"cache_read":0.03},"limit":{"context":196608,"output":131072}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5 (2025-09-29)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-09","last_updated":"2024-09-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":1000000,"output":32000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":16384}},"cogview-4":{"id":"cogview-4","name":"CogView-4","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-03-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen2-5-vl-32b-instruct":{"id":"qwen2-5-vl-32b-instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.2},"limit":{"context":131072,"output":32768}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"sonar-pro":{"id":"sonar-pro","name":"Sonar Pro","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-07","last_updated":"2025-03-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":16384}},"pixtral-large-latest":{"id":"pixtral-large-latest","name":"Pixtral Large Latest","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-11-18","last_updated":"2024-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":12},"limit":{"context":128000,"output":16384}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"output":128000}},"qwen3-vl-8b-instruct":{"id":"qwen3-vl-8b-instruct","name":"Qwen3 VL 8B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":8192}},"claude-3-7-sonnet":{"id":"claude-3-7-sonnet","name":"Claude 3.7 Sonnet","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":8192}},"grok-4-20-beta-0309-reasoning":{"id":"grok-4-20-beta-0309-reasoning","name":"Grok 4.20 Beta Reasoning (0309)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":2000000,"output":30000}},"grok-imagine-image":{"id":"grok-imagine-image","name":"Grok Imagine Image","family":"grok","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-02","last_updated":"2026-03-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o Mini","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"gemini-pro-latest":{"id":"gemini-pro-latest","name":"Gemini Pro Latest","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-27","last_updated":"2026-02-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.08},"limit":{"context":400000,"output":128000}},"claude-3-5-haiku":{"id":"claude-3-5-haiku","name":"Claude 3.5 Haiku","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08},"limit":{"context":200000,"output":8192},"status":"deprecated"},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":15,"cache_read":0.6},"limit":{"context":256000,"output":32800}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1},"limit":{"context":196608,"output":131072}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":65536,"output":32768}},"mixtral-8x7b-instruct-together":{"id":"mixtral-8x7b-instruct-together","name":"Mixtral 8x7B Instruct","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2023-12-10","last_updated":"2023-12-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.06},"limit":{"context":32768,"output":16384}},"qwen-max-latest":{"id":"qwen-max-latest","name":"Qwen Max Latest","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.6,"output":6.4},"limit":{"context":131072,"output":32000}},"o4-mini":{"id":"o4-mini","name":"o4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":16384}},"glm-4.6v-flash":{"id":"glm-4.6v-flash","name":"GLM-4.6V Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"output":128000}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-02","last_updated":"2025-10-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.03},"limit":{"context":32768,"output":32768}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"mistral-large-latest":{"id":"mistral-large-latest","name":"Mistral Large Latest","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":12},"limit":{"context":128000,"output":16384}},"mistral-small-2506":{"id":"mistral-small-2506","name":"Mistral Small 3.2","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"seedream-4-0":{"id":"seedream-4-0","name":"Seedream 4.0","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"output":128000}},"minimax-text-01":{"id":"minimax-text-01","name":"MiniMax Text 01","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000000,"output":131072}},"qwen3-32b-fp8":{"id":"qwen3-32b-fp8","name":"Qwen3 32B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03},"limit":{"context":1048576,"output":65535}},"llama-4-scout-17b-instruct":{"id":"llama-4-scout-17b-instruct","name":"Llama 4 Scout 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":8192,"output":2048},"status":"beta"},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"output":16400}},"qwen3-4b-fp8":{"id":"qwen3-4b-fp8","name":"Qwen3 4B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":128000,"output":20000}},"veo-3.1-generate-preview":{"id":"veo-3.1-generate-preview","name":"Veo 3.1","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-14","last_updated":"2026-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":1},"status":"beta"},"llama-guard-4-12b":{"id":"llama-guard-4-12b","name":"Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":131072,"output":16384}},"gemma-3n-e2b-it":{"id":"gemma-3n-e2b-it","name":"Gemma 3n E2B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-image-preview":{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":65536,"output":65536}},"ministral-8b-2512":{"id":"ministral-8b-2512","name":"Ministral 8B","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"output":16384}},"grok-4-fast":{"id":"grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"gemma-3-27b":{"id":"gemma-3-27b","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.27},"limit":{"context":128000,"output":16384}},"grok-imagine-image-pro":{"id":"grok-imagine-image-pro","name":"Grok Imagine Image Pro","family":"grok","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-02","last_updated":"2026-03-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-vl-flash":{"id":"qwen3-vl-flash","name":"Qwen3 VL Flash","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":262144,"output":32768}},"llama-3.1-70b-instruct":{"id":"llama-3.1-70b-instruct","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":2048},"status":"beta"},"seed-1-8-251228":{"id":"seed-1-8-251228","name":"Seed 1.8 (251228)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":16384}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":8192},"status":"beta"},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":6},"limit":{"context":131072,"output":32768},"status":"beta"},"seed-1-6-250915":{"id":"seed-1-6-250915","name":"Seed 1.6 (250915)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":16384}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"output":10000}},"glm-4.5-x":{"id":"glm-4.5-x","name":"GLM-4.5 X","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":8.9,"cache_read":0.45},"limit":{"context":128000,"output":16384},"status":"beta"},"veo-3.1-fast-generate-preview":{"id":"veo-3.1-fast-generate-preview","name":"Veo 3.1 Fast","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-14","last_updated":"2026-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":1},"status":"beta"},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gemma-3-4b-it":{"id":"gemma-3-4b-it","name":"Gemma 3 4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"qwen-image-max":{"id":"qwen-image-max","name":"Qwen Image Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-04","last_updated":"2025-08-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-30b-a3b-thinking-2507":{"id":"qwen3-30b-a3b-thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":8192}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"o1":{"id":"o1","name":"o1","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":16384}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5 Air","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.1,"cache_read":0.03},"limit":{"context":128000,"output":16384}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"output":128000}},"claude-3-5-sonnet":{"id":"claude-3-5-sonnet","name":"Claude 3.5 Sonnet","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":16384}},"gpt-3.5-turbo":{"id":"gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2022-11-30","last_updated":"2022-11-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"output":16384}},"o3-mini":{"id":"o3-mini","name":"o3 Mini","family":"gpt","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":16384}},"qwen-image-max-2025-12-30":{"id":"qwen-image-max-2025-12-30","name":"Qwen Image Max 2025-12-30","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-31","last_updated":"2025-12-31","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen VL Max","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":32000}},"sonar":{"id":"sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":130000,"output":16384}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.5,"cache_read":0.06},"limit":{"context":1000000,"output":65536}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.11},"limit":{"context":128000,"output":32768}},"ministral-3b-2512":{"id":"ministral-3b-2512","name":"Ministral 3B","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":16384}},"grok-4-20-multi-agent-beta-0309":{"id":"grok-4-20-multi-agent-beta-0309","name":"Grok 4.20 Multi-Agent Beta (0309)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":2000000,"output":30000}},"qwen-plus-latest":{"id":"qwen-plus-latest","name":"Qwen Plus Latest","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-09","last_updated":"2024-09-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":1000000,"output":32000}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":128000,"output":16000}},"seedream-4-5":{"id":"seedream-4-5","name":"Seedream 4.5","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"llama-3.1-nemotron-ultra-253b":{"id":"llama-3.1-nemotron-ultra-253b","name":"Llama 3.1 Nemotron Ultra 253B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-07","last_updated":"2025-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":128000,"output":16384}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":256000}},"llama-4-maverick-17b-instruct":{"id":"llama-4-maverick-17b-instruct","name":"Llama 4 Maverick 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.97},"limit":{"context":8192,"output":2048},"status":"beta"},"grok-4-0709":{"id":"grok-4-0709","name":"Grok 4 (0709)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":256000}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":129024,"output":32768}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"qwen-image":{"id":"qwen-image","name":"Qwen Image","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-04","last_updated":"2025-08-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen-image-edit-plus":{"id":"qwen-image-edit-plus","name":"Qwen Image Edit Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":16384}},"qwen3-30b-a3b-fp8":{"id":"qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"minimax-m2.1-lightning":{"id":"minimax-m2.1-lightning","name":"MiniMax M2.1 Lightning","family":"minimax","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.48},"limit":{"context":196608,"output":131072}},"claude-3-haiku":{"id":"claude-3-haiku","name":"Claude 3 Haiku","family":"claude","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03},"limit":{"context":200000,"output":4096}},"glm-image":{"id":"glm-image","name":"GLM-Image","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-14","last_updated":"2025-01-14","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9,"cache_read":0.05},"limit":{"context":128000,"output":16000}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":65536}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5},"limit":{"context":200000,"output":32000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5 (2025-10-01)","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"qwen-image-edit-max":{"id":"qwen-image-edit-max","name":"Qwen Image Edit Max","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-16","last_updated":"2026-01-16","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5 Flash","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"llama-3.2-3b-instruct":{"id":"llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.05},"limit":{"context":32768,"output":32000},"status":"beta"},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.68,"cache_read":0.06},"limit":{"context":262144,"output":262144}},"qwen-image-plus":{"id":"qwen-image-plus","name":"Qwen Image Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-04","last_updated":"2025-08-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3 VL Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.6,"cache_read":0.04},"limit":{"context":262144,"output":32768}},"grok-4-1-fast":{"id":"grok-4-1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4 (2025-05-14)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":16384}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.8},"limit":{"context":262000,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":1000000,"output":128000}},"gpt-4o-search-preview":{"id":"gpt-4o-search-preview","name":"GPT-4o Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"custom":{"id":"custom","name":"Custom Model","family":"auto","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1000000,"output":16384}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude 3.7 Sonnet (2025-02-19)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":8192}},"qwen3-vl-30b-a3b-instruct":{"id":"qwen3-vl-30b-a3b-instruct","name":"Qwen3 VL 30B A3B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-10-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":131072,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":8192}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"o3":{"id":"o3","name":"o3","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":16384}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":163840,"output":16384}},"qwen3-235b-a22b-fp8":{"id":"qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":32766}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"minimax-m2.5-highspeed":{"id":"minimax-m2.5-highspeed","name":"MiniMax M2.5 Highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":1000000,"output":8192}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3,"cache_read":0.5},"limit":{"context":131072,"output":16384}},"llama-3-8b-instruct":{"id":"llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":8192,"output":8192}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"qwen3-vl-235b-a22b-instruct":{"id":"qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65535}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7 Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"gemini-2.5-flash-image-preview":{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-02","last_updated":"2025-10-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.75},"limit":{"context":131072,"output":32766}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat Latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4 (2025-05-14)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5},"limit":{"context":200000,"output":16384}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-26","last_updated":"2025-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":32768,"output":8192}},"qwen25-coder-7b":{"id":"qwen25-coder-7b","name":"Qwen2.5 Coder 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.03},"limit":{"context":32768,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":2048},"status":"beta"},"llama-3-70b-instruct":{"id":"llama-3-70b-instruct","name":"Llama 3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek R1 (0528)","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4},"limit":{"context":64000,"output":16384},"status":"beta"},"glm-4.5-airx":{"id":"glm-4.5-airx","name":"GLM-4.5 AirX","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.5,"cache_read":0.22},"limit":{"context":128000,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1000000,"output":16384}},"devstral-small-2507":{"id":"devstral-small-2507","name":"Devstral Small 1.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-21","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-02-25","last_updated":"2025-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3},"limit":{"context":1048576,"output":8192},"status":"deprecated"},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1000000,"output":16384}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":272000}},"grok-3":{"id":"grok-3","name":"Grok-3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":131072,"output":16384}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-10-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"ministral-14b-2512":{"id":"ministral-14b-2512","name":"Ministral 14B","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"output":16384}},"llama-3.2-11b-instruct":{"id":"llama-3.2-11b-instruct","name":"Llama 3.2 11B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.33},"limit":{"context":128000,"output":16384},"status":"beta"},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-07","last_updated":"2025-03-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":16384}},"claude-3-opus":{"id":"claude-3-opus","name":"Claude 3 Opus","family":"claude","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5},"limit":{"context":200000,"output":4096}}}},"google-vertex":{"id":"google-vertex","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex","name":"Vertex","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/models","models":{"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":65536,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"zai-org/glm-5-maas":{"id":"zai-org/glm-5-maas","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.1},"limit":{"context":202752,"output":131072},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"zai-org/glm-4.7-maas":{"id":"zai-org/glm-4.7-maas","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-06","last_updated":"2026-01-06","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"deepseek-ai/deepseek-v3.2-maas":{"id":"deepseek-ai/deepseek-v3.2-maas","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-04-04","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.056},"limit":{"context":163840,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"deepseek-ai/deepseek-v3.1-maas":{"id":"deepseek-ai/deepseek-v3.1-maas","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":163840,"output":32768},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"openai/gpt-oss-120b-maas":{"id":"openai/gpt-oss-120b-maas","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-20b-maas":{"id":"openai/gpt-oss-20b-maas","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.25},"limit":{"context":131072,"output":32768}},"meta/llama-3.3-70b-instruct-maas":{"id":"meta/llama-3.3-70b-instruct-maas","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"meta/llama-4-maverick-17b-128e-instruct-maas":{"id":"meta/llama-4-maverick-17b-128e-instruct-maas","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.15},"limit":{"context":524288,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"qwen/qwen3-235b-a22b-instruct-2507-maas":{"id":"qwen/qwen3-235b-a22b-instruct-2507-maas","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":16384},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"moonshotai/kimi-k2-thinking-maas":{"id":"moonshotai/kimi-k2-thinking-maas","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}}}},"cloudflare-workers-ai":{"id":"cloudflare-workers-ai","env":["CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1","name":"Cloudflare Workers AI","doc":"https://developers.cloudflare.com/workers-ai/models/","models":{"@cf/zai-org/glm-4.7-flash":{"id":"@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"@cf/nvidia/nemotron-3-120b-a12b":{"id":"@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"@cf/openai/gpt-oss-20b":{"id":"@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"@cf/openai/gpt-oss-120b":{"id":"@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"@cf/google/gemma-4-26b-a4b-it":{"id":"@cf/google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":256000,"output":16384}},"@cf/moonshotai/kimi-k2.5":{"id":"@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}}}},"groq":{"id":"groq","env":["GROQ_API_KEY"],"npm":"@ai-sdk/groq","name":"Groq","doc":"https://console.groq.com/docs/models","models":{"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"mistral-saba-24b":{"id":"mistral-saba-24b","name":"Mistral Saba 24B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-02-06","last_updated":"2025-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.79,"output":0.79},"limit":{"context":32768,"output":32768},"status":"deprecated"},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":0.99},"limit":{"context":131072,"output":8192},"status":"deprecated"},"llama-guard-3-8b":{"id":"llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":131072,"output":32768}},"allam-2-7b":{"id":"allam-2-7b","name":"ALLaM-2-7b","family":"allam","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-09","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":4096}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper Large V3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":448,"output":448}},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":131072,"output":131072}},"llama3-70b-8192":{"id":"llama3-70b-8192","name":"Llama 3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":8192,"output":8192},"status":"deprecated"},"qwen-qwq-32b":{"id":"qwen-qwq-32b","name":"Qwen QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-27","last_updated":"2024-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.39},"limit":{"context":131072,"output":16384},"status":"deprecated"},"whisper-large-v3-turbo":{"id":"whisper-large-v3-turbo","name":"Whisper Large v3 Turbo","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":448,"output":448}},"llama3-8b-8192":{"id":"llama3-8b-8192","name":"Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":8192,"output":8192},"status":"deprecated"},"canopylabs/orpheus-arabic-saudi":{"id":"canopylabs/orpheus-arabic-saudi","name":"Orpheus Arabic Saudi","family":"canopylabs","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-12-16","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":40,"output":0},"limit":{"context":4000,"output":50000}},"canopylabs/orpheus-v1-english":{"id":"canopylabs/orpheus-v1-english","name":"Orpheus V1 English","family":"canopylabs","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-12-19","release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4000,"output":50000}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.34},"limit":{"context":131072,"output":8192}},"meta-llama/llama-prompt-guard-2-22m":{"id":"meta-llama/llama-prompt-guard-2-22m","name":"Llama Prompt Guard 2 22M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":512,"output":512}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":131072,"output":1024},"status":"deprecated"},"meta-llama/llama-4-maverick-17b-128e-instruct":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":8192},"status":"deprecated"},"meta-llama/llama-prompt-guard-2-86m":{"id":"meta-llama/llama-prompt-guard-2-86m","name":"Llama Prompt Guard 2 86M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":512,"output":512}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"Safety GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3,"cache_read":0.037},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":65536}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11-08","release_date":"2024-12-23","last_updated":"2024-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":40960}},"groq/compound":{"id":"groq/compound","name":"Compound","family":"groq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09-04","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"groq/compound-mini":{"id":"groq/compound-mini","name":"Compound Mini","family":"groq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09-04","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}}}},"azure":{"id":"azure","env":["AZURE_RESOURCE_NAME","AZURE_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"gpt-5.3-chat":{"id":"gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"grok-4-20-non-reasoning":{"id":"grok-4-20-non-reasoning","name":"Grok 4.20 (Non-Reasoning)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":262000,"output":8192},"status":"beta"},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"grok-4-20-reasoning":{"id":"grok-4-20-reasoning","name":"Grok 4.20 (Reasoning)","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":262000,"output":8192},"status":"beta"},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}}}},"fastrouter":{"id":"fastrouter","env":["FASTROUTER_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://go.fastrouter.ai/api/v1","name":"FastRouter","doc":"https://fastrouter.ai/models","models":{"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"deepseek-ai/deepseek-r1-distill-llama-70b":{"id":"deepseek-ai/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":131072}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":65536}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":204800,"output":131072}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"stackit":{"id":"stackit","env":["STACKIT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1","name":"STACKIT","doc":"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models","models":{"Qwen/Qwen3-VL-Embedding-8B":{"id":"Qwen/Qwen3-VL-Embedding-8B","name":"Qwen3-VL Embedding 8B","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8","name":"Qwen3-VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.64,"output":1.91},"limit":{"context":218000,"output":8192}},"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8":{"id":"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.27},"limit":{"context":128000,"output":8192}},"neuralmagic/Mistral-Nemo-Instruct-2407-FP8":{"id":"neuralmagic/Mistral-Nemo-Instruct-2407-FP8","name":"Mistral Nemo","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":131000,"output":8192}},"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic":{"id":"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-05-17","last_updated":"2025-05-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":37000,"output":8192}},"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"E5 Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":4096,"output":4096}}}},"tencent-coding-plan":{"id":"tencent-coding-plan","env":["TENCENT_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.lkeap.cloud.tencent.com/coding/v3","name":"Tencent Coding Plan (China)","doc":"https://cloud.tencent.com/document/product/1772/128947","models":{"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"hunyuan-turbos":{"id":"hunyuan-turbos","name":"Hunyuan-TurboS","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-t1":{"id":"hunyuan-t1","name":"Hunyuan-T1","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-instruct":{"id":"hunyuan-2.0-instruct","name":"Tencent HY 2.0 Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":32768}},"tc-code-latest":{"id":"tc-code-latest","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-thinking":{"id":"hunyuan-2.0-thinking","name":"Tencent HY 2.0 Think","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}}}},"privatemode-ai":{"id":"privatemode-ai","env":["PRIVATEMODE_API_KEY","PRIVATEMODE_ENDPOINT"],"npm":"@ai-sdk/openai-compatible","api":"http://localhost:8080/v1","name":"Privatemode AI","doc":"https://docs.privatemode.ai/api/overview","models":{"gemma-3-27b":{"id":"gemma-3-27b","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper large-v3","family":"whisper","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2023-09-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"qwen3-embedding-4b":{"id":"qwen3-embedding-4b","name":"Qwen3-Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-06","last_updated":"2025-06-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":2560}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"qwen3-coder-30b-a3b":{"id":"qwen3-coder-30b-a3b","name":"Qwen3-Coder 30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}}}},"google":{"id":"google","env":["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],"npm":"@ai-sdk/google","name":"Google","doc":"https://ai.google.dev/gemini-api/docs/pricing","models":{"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-live-2.5-flash-preview-native-audio":{"id":"gemini-live-2.5-flash-preview-native-audio","name":"Gemini Live 2.5 Flash Preview Native Audio","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-09-18","modalities":{"input":["text","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":131072,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-1.5-flash":{"id":"gemini-1.5-flash","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.01875},"limit":{"context":1000000,"output":8192}},"gemini-1.5-pro":{"id":"gemini-1.5-pro","name":"Gemini 1.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-02-15","last_updated":"2024-02-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.3125},"limit":{"context":1000000,"output":8192}},"gemma-3n-e4b-it":{"id":"gemma-3n-e4b-it","name":"Gemma 3n 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-tts":{"id":"gemini-2.5-flash-preview-tts","name":"Gemini 2.5 Flash Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0.5,"output":10},"limit":{"context":8000,"output":16000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B","family":"gemma","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":256000,"output":8192}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"input_audio":0.3},"limit":{"context":1048576,"output":65536}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Gemma 3 12B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemma-3n-e2b-it":{"id":"gemma-3n-e2b-it","name":"Gemma 3n 2B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"gemini-3.1-flash-image-preview":{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":60},"limit":{"context":131072,"output":32768}},"gemma-3-4b-it":{"id":"gemma-3-4b-it","name":"Gemma 3 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-tts":{"id":"gemini-2.5-pro-preview-tts","name":"Gemini 2.5 Pro Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":1,"output":20},"limit":{"context":8000,"output":16000}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemma-3-27b-it":{"id":"gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemma-4-26b-it":{"id":"gemma-4-26b-it","name":"Gemma 4 26B","family":"gemma","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":256000,"output":8192}},"gemini-2.5-flash-image-preview":{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-1.5-flash-8b":{"id":"gemini-1.5-flash-8b","name":"Gemini 1.5 Flash-8B","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-03","last_updated":"2024-10-03","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.0375,"output":0.15,"cache_read":0.01},"limit":{"context":1000000,"output":8192}},"gemini-live-2.5-flash":{"id":"gemini-live-2.5-flash","name":"Gemini Live 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":128000,"output":8000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}}}},"drun":{"id":"drun","env":["DRUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://chat.d.run/v1","name":"D.Run (China)","doc":"https://www.d.run","models":{"public/deepseek-r1":{"id":"public/deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32000}},"public/minimax-m25":{"id":"public/minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.16},"limit":{"context":204800,"output":131072}},"public/deepseek-v3":{"id":"public/deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":131072,"output":8192}}}},"moonshotai":{"id":"moonshotai","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.ai/v1","name":"Moonshot AI","doc":"https://platform.moonshot.ai/docs/api/chat","models":{"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}}}},"berget":{"id":"berget","env":["BERGET_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.berget.ai/v1","name":"Berget.AI","doc":"https://api.berget.ai","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.3},"limit":{"context":128000,"output":8192}},"BAAI/bge-reranker-v2-m3":{"id":"BAAI/bge-reranker-v2-m3","name":"bge-reranker-v2-m3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-23","last_updated":"2025-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":512,"output":512}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":32000,"output":8192}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":8192}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB-Whisper-Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":480000,"output":4800}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":8192}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"Multilingual-E5-large-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}},"intfloat/multilingual-e5-large":{"id":"intfloat/multilingual-e5-large","name":"Multilingual-E5-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-09","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}}}},"github-models":{"id":"github-models","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://models.github.ai/inference","name":"GitHub Models","doc":"https://docs.github.com/en/github-models","models":{"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"ai21-labs/ai21-jamba-1.5-mini":{"id":"ai21-labs/ai21-jamba-1.5-mini","name":"AI21 Jamba 1.5 Mini","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"ai21-labs/ai21-jamba-1.5-large":{"id":"ai21-labs/ai21-jamba-1.5-large","name":"AI21 Jamba 1.5 Large","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"microsoft/phi-3.5-mini-instruct":{"id":"microsoft/phi-3.5-mini-instruct","name":"Phi-3.5-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi-3-medium instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi-3.5-MoE instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-mini-128k-instruct":{"id":"microsoft/phi-3-mini-128k-instruct","name":"Phi-3-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-reasoning":{"id":"microsoft/phi-4-reasoning","name":"Phi-4-Reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi-3-small instruct (8k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi-3.5-vision instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-mini-4k-instruct":{"id":"microsoft/phi-3-mini-4k-instruct","name":"Phi-3-mini instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-4-mini-reasoning":{"id":"microsoft/phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi-3-small instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi-3-medium instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16000,"output":4096}},"microsoft/phi-4-multimodal-instruct":{"id":"microsoft/phi-4-multimodal-instruct","name":"Phi-4-multimodal-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/mai-ds-r1":{"id":"microsoft/mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"cohere/cohere-command-r-08-2024":{"id":"cohere/cohere-command-r-08-2024","name":"Cohere Command R 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-a":{"id":"cohere/cohere-command-a","name":"Cohere Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus":{"id":"cohere/cohere-command-r-plus","name":"Cohere Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-04-04","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r":{"id":"cohere/cohere-command-r","name":"Cohere Command R","family":"command-r","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-11","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus-08-2024":{"id":"cohere/cohere-command-r-plus-08-2024","name":"Cohere Command R+ 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/o1-mini":{"id":"openai/o1-mini","name":"OpenAI o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":65536}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3.1-8b-instruct":{"id":"meta/meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3-70b-instruct":{"id":"meta/meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/llama-3.2-90b-vision-instruct":{"id":"meta/llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3.1-405b-instruct":{"id":"meta/meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3.1-70b-instruct":{"id":"meta/meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3-8b-instruct":{"id":"meta/meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"core42/jais-30b-chat":{"id":"core42/jais-30b-chat","name":"JAIS 30b Chat","family":"jais","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2023-08-30","last_updated":"2023-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"mistral-ai/mistral-nemo":{"id":"mistral-ai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/ministral-3b":{"id":"mistral-ai/ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/mistral-large-2411":{"id":"mistral-ai/mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-small-2503":{"id":"mistral-ai/mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-medium-2505":{"id":"mistral-ai/mistral-medium-2505","name":"Mistral Medium 3 (25.05)","family":"mistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/codestral-2501":{"id":"mistral-ai/codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":8192}}}},"togetherai":{"id":"togetherai","env":["TOGETHER_API_KEY"],"npm":"@ai-sdk/togetherai","name":"Together AI","doc":"https://docs.together.ai/docs/serverless-models","models":{"essentialai/Rnj-1-Instruct":{"id":"essentialai/Rnj-1-Instruct","name":"Rnj-1 Instruct","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":130000}},"Qwen/Qwen3-Coder-Next-FP8":{"id":"Qwen/Qwen3-Coder-Next-FP8","name":"Qwen3 Coder Next FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-03","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-tput","name":"Qwen3 235B A22B Instruct 2507 FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":262144}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4},"limit":{"context":202752,"output":131072}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.88,"output":0.88},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":163839,"output":163839}},"deepseek-ai/DeepSeek-V3-1":{"id":"deepseek-ai/DeepSeek-V3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}},"google/gemma-4-31B-it":{"id":"google/gemma-4-31B-it","name":"Gemma 4 31B Instruct","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.5},"limit":{"context":262144,"output":131072}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}}}},"qihang-ai":{"id":"qihang-ai","env":["QIHANG_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qhaigc.net/v1","name":"QiHang","doc":"https://www.qhaigc.net/docs","models":{"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.71,"output":3.57},"limit":{"context":200000,"output":32000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.43,"context_over_200k":{"input":0.07,"output":0.43}},"limit":{"context":1048576,"output":65536}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.29},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.57,"output":3.43},"limit":{"context":1000000,"output":65000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":2.14},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.14},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.71,"context_over_200k":{"input":0.09,"output":0.71}},"limit":{"context":1048576,"output":65536}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.71},"limit":{"context":200000,"output":64000}}}},"anthropic":{"id":"anthropic","env":["ANTHROPIC_API_KEY"],"npm":"@ai-sdk/anthropic","name":"Anthropic","doc":"https://docs.anthropic.com/en/docs/about-claude/models","models":{"claude-3-sonnet-20240229":{"id":"claude-3-sonnet-20240229","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-opus-20240229":{"id":"claude-3-opus-20240229","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"claude-opus-4-0":{"id":"claude-opus-4-0","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku-latest":{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-sonnet-4-0":{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":30,"output":150,"cache_read":3,"cache_write":37.5},"provider":{"body":{"speed":"fast"},"headers":{"anthropic-beta":"fast-mode-2026-02-01"}}}}}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}}}},"modelscope":{"id":"modelscope","env":["MODELSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-inference.modelscope.cn/v1","name":"ModelScope","doc":"https://modelscope.cn/docs/model-service/API-Inference/intro","models":{"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"ZhipuAI/GLM-4.5":{"id":"ZhipuAI/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":98304}},"ZhipuAI/GLM-4.6":{"id":"ZhipuAI/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":98304}}}},"gitlab":{"id":"gitlab","env":["GITLAB_TOKEN"],"npm":"gitlab-ai-provider","name":"GitLab Duo","doc":"https://docs.gitlab.com/user/duo_agent_platform/","models":{"duo-chat-gpt-5-4-nano":{"id":"duo-chat-gpt-5-4-nano","name":"Agentic Chat (GPT-5.4 Nano)","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-mini":{"id":"duo-chat-gpt-5-mini","name":"Agentic Chat (GPT-5 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-6":{"id":"duo-chat-sonnet-4-6","name":"Agentic Chat (Claude Sonnet 4.6)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}},"duo-chat-gpt-5-2":{"id":"duo-chat-gpt-5-2","name":"Agentic Chat (GPT-5.2)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-codex":{"id":"duo-chat-gpt-5-codex","name":"Agentic Chat (GPT-5 Codex)","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-1":{"id":"duo-chat-gpt-5-1","name":"Agentic Chat (GPT-5.1)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-2-codex":{"id":"duo-chat-gpt-5-2-codex","name":"Agentic Chat (GPT-5.2 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-5":{"id":"duo-chat-sonnet-4-5","name":"Agentic Chat (Claude Sonnet 4.5)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-4":{"id":"duo-chat-gpt-5-4","name":"Agentic Chat (GPT-5.4)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1050000,"input":922000,"output":128000}},"duo-chat-haiku-4-5":{"id":"duo-chat-haiku-4-5","name":"Agentic Chat (Claude Haiku 4.5)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-3-codex":{"id":"duo-chat-gpt-5-3-codex","name":"Agentic Chat (GPT-5.3 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-4-mini":{"id":"duo-chat-gpt-5-4-mini","name":"Agentic Chat (GPT-5.4 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-opus-4-5":{"id":"duo-chat-opus-4-5","name":"Agentic Chat (Claude Opus 4.5)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-opus-4-6":{"id":"duo-chat-opus-4-6","name":"Agentic Chat (Claude Opus 4.6)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}}}},"xiaomi":{"id":"xiaomi","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.xiaomimimo.com/v1","name":"Xiaomi","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":256000,"output":128000}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2},"limit":{"context":1000000,"output":128000}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-16","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":256000,"output":64000}}}},"clarifai":{"id":"clarifai","env":["CLARIFAI_PAT"],"npm":"@ai-sdk/openai-compatible","api":"https://api.clarifai.com/v2/ext/openai/v1","name":"Clarifai","doc":"https://docs.clarifai.com/compute/inference/","models":{"arcee_ai/AFM/models/trinity-mini":{"id":"arcee_ai/AFM/models/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"mistralai/completion/models/Ministral-3-14B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-14B-Reasoning-2512","name":"Ministral 3 14B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":1.7},"limit":{"context":262144,"output":262144}},"mistralai/completion/models/Ministral-3-3B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-3B-Reasoning-2512","name":"Ministral 3 3B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.039,"output":0.54825},"limit":{"context":262144,"output":262144}},"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR":{"id":"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR","name":"DeepSeek OCR","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":8192,"output":8192}},"openai/chat-completion/models/gpt-oss-20b":{"id":"openai/chat-completion/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.18},"limit":{"context":131072,"output":16384}},"openai/chat-completion/models/gpt-oss-120b-high-throughput":{"id":"openai/chat-completion/models/gpt-oss-120b-high-throughput","name":"GPT OSS 120B High Throughput","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":16384}},"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput":{"id":"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput","name":"MiniMax-M2.5 High Throughput","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct":{"id":"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11458,"output":0.74812},"limit":{"context":262144,"output":65536}},"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.36,"output":1.3},"limit":{"context":262144,"output":131072}},"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":262144,"output":262144}},"clarifai/main/models/mm-poly-8b":{"id":"clarifai/main/models/mm-poly-8b","name":"MM Poly 8B","family":"mm-poly","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.658,"output":1.11},"limit":{"context":32768,"output":4096}}}},"minimax-cn":{"id":"minimax-cn","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/guides/quickstart","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"xiaomi-token-plan-ams":{"id":"xiaomi-token-plan-ams","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://token-plan-ams.xiaomimimo.com/v1","name":"Xiaomi Token Plan (Europe)","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}},"mimo-v2-tts":{"id":"mimo-v2-tts","name":"MiMo-V2-TTS","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["audio"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":16000}},"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":128000}}}},"zhipuai":{"id":"zhipuai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/paas/v4","name":"Zhipu AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":22,"cache_read":1.2,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":24,"cache_read":1.3,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"nova":{"id":"nova","env":["NOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.nova.amazon.com/v1","name":"Nova","doc":"https://nova.amazon.com/dev/documentation","models":{"nova-2-lite-v1":{"id":"nova-2-lite-v1","name":"Nova 2 Lite","family":"nova-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}},"nova-2-pro-v1":{"id":"nova-2-pro-v1","name":"Nova 2 Pro","family":"nova-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2026-01-03","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}}}}} diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 111832099..dea8cf936 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -774,7 +774,10 @@ export namespace ProviderTransform { result["chat_template_args"] = { enable_thinking: true } } - if (["zai", "zhipuai"].includes(input.model.providerID) && input.model.api.npm === "@ai-sdk/openai-compatible") { + if ( + ["zai", "zhipuai"].some((id) => input.model.providerID.includes(id)) && + input.model.api.npm === "@ai-sdk/openai-compatible" + ) { result["thinking"] = { type: "enabled", clear_thinking: false, diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 0aee396f4..3a001e275 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -104,6 +104,58 @@ describe("ProviderTransform.options - setCacheKey", () => { }) }) +describe("ProviderTransform.options - zai/zhipuai thinking", () => { + const sessionID = "test-session-123" + + const createModel = (providerID: string) => + ({ + id: `${providerID}/glm-4.6`, + providerID, + api: { + id: "glm-4.6", + url: "https://open.bigmodel.cn/api/paas/v4", + npm: "@ai-sdk/openai-compatible", + }, + name: "GLM 4.6", + capabilities: { + temperature: true, + reasoning: true, + attachment: true, + toolcall: true, + input: { text: true, audio: false, image: true, video: false, pdf: true }, + output: { text: true, audio: false, image: false, video: false, pdf: false }, + interleaved: false, + }, + cost: { + input: 0.001, + output: 0.002, + cache: { read: 0.0001, write: 0.0002 }, + }, + limit: { + context: 128000, + output: 8192, + }, + status: "active", + options: {}, + headers: {}, + }) as any + + for (const providerID of ["zai-coding-plan", "zai", "zhipuai-coding-plan", "zhipuai"]) { + test(`${providerID} should set thinking cfg`, () => { + const result = ProviderTransform.options({ + model: createModel(providerID), + sessionID, + providerOptions: {}, + }) + + expect(result.thinking).toEqual({ + type: "enabled", + clear_thinking: false, + }) + }) + } +}) + describe("ProviderTransform.options - google thinkingConfig gating", () => { const sessionID = "test-session-123" diff --git a/patches/install-korean-ime-fix.sh b/patches/install-korean-ime-fix.sh new file mode 100755 index 000000000..8d6c60b64 --- /dev/null +++ b/patches/install-korean-ime-fix.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash +set -euo pipefail + +# opencode Korean IME Fix Installer +# https://github.com/anomalyco/opencode/issues/14371 +# +# Patches opencode to prevent Korean (and other CJK) IME last character +# truncation when pressing Enter in Kitty and other terminals. +# +# Usage: +# curl -fsSL https://raw.githubusercontent.com/claudianus/opencode/fix-zhipuai-coding-plan-thinking/patches/install-korean-ime-fix.sh | bash +# # or from a cloned repo: +# ./patches/install-korean-ime-fix.sh + +RED='\033[0;31m' +GREEN='\033[0;32m' +ORANGE='\033[38;5;214m' +MUTED='\033[0;2m' +NC='\033[0m' + +OPENCODE_DIR="${OPENCODE_DIR:-$HOME/.opencode}" +OPENCODE_SRC="${OPENCODE_SRC:-$HOME/.opencode-src}" +FORK_REPO="${FORK_REPO:-https://github.com/claudianus/opencode.git}" +FORK_BRANCH="${FORK_BRANCH:-fix-zhipuai-coding-plan-thinking}" + +info() { echo -e "${MUTED}$*${NC}"; } +warn() { echo -e "${ORANGE}$*${NC}"; } +err() { echo -e "${RED}$*${NC}" >&2; } +ok() { echo -e "${GREEN}$*${NC}"; } + +need() { + if ! command -v "$1" >/dev/null 2>&1; then + err "Error: $1 is required but not installed." + exit 1 + fi +} + +need git +need bun + +# ── 1. Clone or update fork ──────────────────────────────────────────── +if [ -d "$OPENCODE_SRC/.git" ]; then + info "Updating existing source at $OPENCODE_SRC ..." + git -C "$OPENCODE_SRC" fetch origin "$FORK_BRANCH" + git -C "$OPENCODE_SRC" checkout "$FORK_BRANCH" + git -C "$OPENCODE_SRC" reset --hard "origin/$FORK_BRANCH" +else + info "Cloning fork (shallow) to $OPENCODE_SRC ..." + git clone --depth 1 --branch "$FORK_BRANCH" "$FORK_REPO" "$OPENCODE_SRC" +fi + +# ── 2. Verify the IME fix is present in source ──────────────────────── +PROMPT_FILE="$OPENCODE_SRC/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx" +if [ ! -f "$PROMPT_FILE" ]; then + err "Prompt file not found: $PROMPT_FILE" + exit 1 +fi + +if grep -q "setTimeout(() => setTimeout" "$PROMPT_FILE"; then + ok "IME fix already present in source." +else + warn "IME fix not found. Applying patch ..." + # Apply the fix: replace onSubmit={submit} with double-deferred version + sed -i 's|onSubmit={submit}|onSubmit={() => {\n // IME: double-defer so the last composed character (e.g. Korean\n // hangul) is flushed to plainText before we read it for submission.\n setTimeout(() => setTimeout(() => submit(), 0), 0)\n }}|' "$PROMPT_FILE" + if grep -q "setTimeout(() => setTimeout" "$PROMPT_FILE"; then + ok "Patch applied." + else + err "Failed to apply patch. The source may have changed." + exit 1 + fi +fi + +# ── 3. Install dependencies ──────────────────────────────────────────── +info "Installing dependencies (this may take a minute) ..." +cd "$OPENCODE_SRC" +bun install --frozen-lockfile 2>/dev/null || bun install + +# ── 4. Build (current platform only) ────────────────────────────────── +info "Building opencode for current platform ..." +cd "$OPENCODE_SRC/packages/opencode" +bun run build --single + +# ── 5. Install binary ────────────────────────────────────────────────── +mkdir -p "$OPENCODE_DIR/bin" + +PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]') +ARCH=$(uname -m) +[ "$ARCH" = "aarch64" ] && ARCH="arm64" +[ "$ARCH" = "x86_64" ] && ARCH="x64" +[ "$PLATFORM" = "darwin" ] && true +[ "$PLATFORM" = "linux" ] && true + +BUILT_BINARY="$OPENCODE_SRC/packages/opencode/dist/opencode-${PLATFORM}-${ARCH}/bin/opencode" + +if [ ! -f "$BUILT_BINARY" ]; then + BUILT_BINARY=$(find "$OPENCODE_SRC/packages/opencode/dist" -name "opencode" -type f -executable 2>/dev/null | head -1) +fi + +if [ -f "$BUILT_BINARY" ]; then + if [ -f "$OPENCODE_DIR/bin/opencode" ]; then + cp "$OPENCODE_DIR/bin/opencode" "$OPENCODE_DIR/bin/opencode.bak.$(date +%Y%m%d%H%M%S)" + fi + cp "$BUILT_BINARY" "$OPENCODE_DIR/bin/opencode" + chmod +x "$OPENCODE_DIR/bin/opencode" + ok "Installed to $OPENCODE_DIR/bin/opencode" +else + err "Build failed - binary not found in dist/" + info "Try running manually:" + echo " cd $OPENCODE_SRC/packages/opencode && bun run build --single" + exit 1 +fi + +echo "" +ok "Done! Korean IME fix is now active." +echo "" +info "To uninstall and revert to the official release:" +echo " curl -fsSL https://opencode.ai/install | bash" +echo "" +info "To update (re-pull and rebuild):" +echo " $0" From 57c40eb7c29c33308ab7fce5384ea141a538bce6 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 20:52:52 +0000 Subject: [PATCH 126/151] chore: generate --- .../opencode/src/provider/models-snapshot.js | 66215 +++++++++++++++- 1 file changed, 66214 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/provider/models-snapshot.js b/packages/opencode/src/provider/models-snapshot.js index a340f3396..f6a6d09af 100644 --- a/packages/opencode/src/provider/models-snapshot.js +++ b/packages/opencode/src/provider/models-snapshot.js @@ -1,3 +1,66216 @@ // @ts-nocheck // Auto-generated by build.ts - do not edit -export const snapshot = {"302ai":{"id":"302ai","env":["302AI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.302.ai/v1","name":"302.AI","doc":"https://doc.302.ai","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.86},"limit":{"context":128000,"output":16384}},"grok-4.1":{"id":"grok-4.1","name":"grok-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10},"limit":{"context":200000,"output":64000}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-26","last_updated":"2025-10-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":1000000,"output":128000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"gemini-2.5-flash-nothink":{"id":"gemini-2.5-flash-nothink","name":"gemini-2.5-flash-nothink","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-24","last_updated":"2025-06-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"kimi-k2-0905-preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.632,"output":2.53},"limit":{"context":262144,"output":262144}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"qwen3-235b-a22b-instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.143},"limit":{"context":128000,"output":65536}},"mistral-large-2512":{"id":"mistral-large-2512","name":"mistral-large-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":3.3},"limit":{"context":128000,"output":262144}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"doubao-seed-1-8-251215","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":0.286},"limit":{"context":224000,"output":64000}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"chatgpt-4o-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-08","last_updated":"2024-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":16384}},"deepseek-chat":{"id":"deepseek-chat","name":"Deepseek-Chat","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"deepseek-v3.2-thinking":{"id":"deepseek-v3.2-thinking","name":"DeepSeek-V3.2-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"gpt-5-thinking":{"id":"gpt-5-thinking","name":"gpt-5-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1000000,"output":65536}},"qwen-plus":{"id":"qwen-plus","name":"Qwen-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":1.2},"limit":{"context":1000000,"output":32768}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1000000,"output":64000}},"qwen3-max-2025-09-23":{"id":"qwen3-max-2025-09-23","name":"qwen3-max-2025-09-23","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":258048,"output":65536}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"qwen-flash":{"id":"qwen-flash","name":"Qwen-Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.22},"limit":{"context":1000000,"output":32768}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"claude-opus-4-5-20251101-thinking":{"id":"claude-opus-4-5-20251101-thinking","name":"claude-opus-4-5-20251101-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"gemini-3-pro-image-preview","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":32768,"output":64000}},"qwen-max-latest":{"id":"qwen-max-latest","name":"Qwen-Max-Latest","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.343,"output":1.372},"limit":{"context":131072,"output":8192}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"gemini-2.5-flash-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":30},"limit":{"context":32768,"output":32768}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":128000,"output":98304}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"gpt-5.2-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"doubao-seed-1-6-vision-250815":{"id":"doubao-seed-1-6-vision-250815","name":"doubao-seed-1-6-vision-250815","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.114,"output":1.143},"limit":{"context":256000,"output":32000}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":1000000,"output":131072}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"kimi-k2-thinking-turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.265,"output":9.119},"limit":{"context":262144,"output":262144}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"Deepseek-Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":128000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"claude-opus-4-1-20250805-thinking":{"id":"claude-opus-4-1-20250805-thinking","name":"claude-opus-4-1-20250805-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-27","last_updated":"2025-05-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":1.08},"limit":{"context":128000,"output":8192}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.86},"limit":{"context":64000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.286,"output":1.142},"limit":{"context":200000,"output":131072}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"gemini-2.5-flash-preview-09-2025","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65536}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.145,"output":0.43},"limit":{"context":128000,"output":32768}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"gpt-5.1-chat-latest","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":128000,"output":16384}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax-M1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":1.254},"limit":{"context":1000000,"output":128000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"qwen3-coder-480b-a35b-instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.43},"limit":{"context":262144,"output":65536}},"doubao-seed-code-preview-251028":{"id":"doubao-seed-code-preview-251028","name":"doubao-seed-code-preview-251028","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.14},"limit":{"context":256000,"output":32000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"gpt-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":32768}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.43},"limit":{"context":128000,"output":8192}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-08","last_updated":"2025-10-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"gpt-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"gpt-5":{"id":"gpt-5","name":"gpt-5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"claude-sonnet-4-5-20250929-thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1000000,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.575,"output":2.3},"limit":{"context":262144,"output":262144}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"gemini-2.0-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-11","release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":2000000,"output":8192}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1000000,"output":32768}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":30000}},"doubao-seed-1-6-thinking-250715":{"id":"doubao-seed-1-6-thinking-250715","name":"doubao-seed-1-6-thinking-250715","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.121,"output":1.21},"limit":{"context":256000,"output":16000}},"ministral-14b-2512":{"id":"ministral-14b-2512","name":"ministral-14b-2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":0.33},"limit":{"context":128000,"output":128000}}}},"alibaba":{"id":"alibaba","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope-intl.aliyuncs.com/compatible-mode/v1","name":"Alibaba","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":34096,"output":4096}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.27,"output":1.07,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.7,"reasoning":2.1},"limit":{"context":131072,"output":8192}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6,"reasoning":3.6},"limit":{"context":262144,"output":65536}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":2.4},"limit":{"context":131072,"output":8192}},"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.63},"limit":{"context":131072,"output":8192}},"qwen3-livetranslate-flash-realtime":{"id":"qwen3-livetranslate-flash-realtime","name":"Qwen3-LiveTranslate Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":10,"output":10,"input_audio":10,"output_audio":38},"limit":{"context":53248,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":16384}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":6.4},"limit":{"context":32768,"output":8192}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"reasoning":4},"limit":{"context":1000000,"output":32768}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.07,"output":0.27,"input_audio":4.44,"output_audio":8.89},"limit":{"context":32768,"output":2048}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":1000000,"output":32768}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.05},"limit":{"context":131072,"output":8192}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.276,"output":1.651,"cache_read":0.028,"cache_write":0.344},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.43,"output":1.66,"input_audio":3.81,"output_audio":15.11},"limit":{"context":65536,"output":16384}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8,"reasoning":8.4},"limit":{"context":131072,"output":32768}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.035},"limit":{"context":53248,"output":4096}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":6},"limit":{"context":131072,"output":32768}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.46,"output":7.37},"limit":{"context":16384,"output":8192}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":1000000,"output":65536}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.175,"output":0.7},"limit":{"context":131072,"output":8192}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4},"limit":{"context":131072,"output":8192}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"qwen-plus-character-ja":{"id":"qwen-plus-character-ja","name":"Qwen Plus Character (Japanese)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.4},"limit":{"context":8192,"output":512}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.52,"output":1.99,"input_audio":4.57,"output_audio":18.13},"limit":{"context":65536,"output":16384}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8,"reasoning":2.4},"limit":{"context":131072,"output":32768}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.6,"reasoning":4.8},"limit":{"context":262144,"output":32768}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.5,"output":7.5},"limit":{"context":262144,"output":65536}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.25},"limit":{"context":262144,"output":65536}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2,"reasoning":0.5},"limit":{"context":1000000,"output":16384}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.49},"limit":{"context":16384,"output":8192}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.1,"output":0.4,"input_audio":6.76},"limit":{"context":32768,"output":2048}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.8,"output":8.4},"limit":{"context":131072,"output":8192}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4.8},"limit":{"context":131072,"output":8192}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.4,"reasoning":4.2},"limit":{"context":131072,"output":8192}}}},"scaleway":{"id":"scaleway","env":["SCALEWAY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.scaleway.ai/v1","name":"Scaleway","doc":"https://www.scaleway.com/en/docs/generative-apis/","models":{"qwen3-embedding-8b":{"id":"qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-25-11","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":32768,"output":4096}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25},"limit":{"context":260000,"output":16384}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":100000,"output":16384}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":256000,"output":16384}},"devstral-2-123b-instruct-2512":{"id":"devstral-2-123b-instruct-2512","name":"Devstral 2 123B Instruct (2512)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":16384}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":32000,"output":8196}},"pixtral-12b-2409":{"id":"pixtral-12b-2409","name":"Pixtral 12B 2409","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-25","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2026-03-17","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.003,"output":0},"limit":{"context":0,"output":8192}},"voxtral-small-24b-2507":{"id":"voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"voxtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-17","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":16384}},"gemma-3-27b-it":{"id":"gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.5},"limit":{"context":40000,"output":8192}},"bge-multilingual-gemma2":{"id":"bge-multilingual-gemma2","name":"BGE Multilingual Gemma2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-07-26","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8191,"output":3072}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":128000,"output":32768}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral Small 3.2 24B Instruct (2506)","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":128000,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-25","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":16384}}}},"nano-gpt":{"id":"nano-gpt","env":["NANO_GPT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://nano-gpt.com/api/v1","name":"NanoGPT","doc":"https://docs.nano-gpt.com","models":{"glm-4-flash":{"id":"glm-4-flash","name":"GLM-4 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":4096}},"Meta-Llama-3-1-8B-Instruct-FP8":{"id":"Meta-Llama-3-1-8B-Instruct-FP8","name":"Llama 3.1 8B (decentralized)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"input":128000,"output":16384}},"claude-opus-4-thinking:32000":{"id":"claude-opus-4-thinking:32000","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 0506","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"grok-3-mini-fast-beta":{"id":"grok-3-mini-fast-beta","name":"Grok 3 Mini Fast Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4},"limit":{"context":131072,"input":131072,"output":131072}},"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-25","last_updated":"2025-10-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.53},"limit":{"context":200000,"input":200000,"output":131072}},"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Cohere Command A (08/2025)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"input":256000,"output":8192}},"brave":{"id":"brave","name":"Brave (Answers)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"exa-research":{"id":"exa-research","name":"Exa (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":8192,"input":8192,"output":8192}},"Llama-3.3-70B-Nova":{"id":"Llama-3.3-70B-Nova","name":"Llama 3.3 70B Nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-exp-1206":{"id":"gemini-exp-1206","name":"Gemini 2.0 Pro 1206","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.258,"output":4.998},"limit":{"context":2097152,"input":2097152,"output":8192}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"auto-model-basic":{"id":"auto-model-basic","name":"Auto model (Basic)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"jamba-mini":{"id":"jamba-mini","name":"Jamba Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"yi-large":{"id":"yi-large","name":"Yi Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.196,"output":3.196},"limit":{"context":32000,"input":32000,"output":4096}},"auto-model-premium":{"id":"auto-model-premium","name":"Auto model (Premium)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"azure-gpt-4o":{"id":"azure-gpt-4o","name":"Azure gpt-4o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek Chat 0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4},"limit":{"context":200000,"input":200000,"output":8192}},"doubao-seed-1-8-251215":{"id":"doubao-seed-1-8-251215","name":"Doubao Seed 1.8","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.612,"output":6.12},"limit":{"context":128000,"input":128000,"output":8192}},"doubao-seed-1-6-250615":{"id":"doubao-seed-1-6-250615","name":"Doubao Seed 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":0.51},"limit":{"context":256000,"input":256000,"output":16384}},"ernie-x1.1-preview":{"id":"ernie-x1.1-preview","name":"ERNIE X1.1","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":64000,"input":64000,"output":8192}},"ernie-5.0-thinking-preview":{"id":"ernie-5.0-thinking-preview","name":"Ernie 5.0 Thinking Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"glm-4-air-0111":{"id":"glm-4-air-0111","name":"GLM 4 Air 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-11","last_updated":"2025-01-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":0.1394},"limit":{"context":128000,"input":128000,"output":4096}},"fastgpt":{"id":"fastgpt","name":"Web Answer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-08-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.5,"output":7.5},"limit":{"context":32768,"input":32768,"output":32768}},"doubao-seed-1-6-thinking-250615":{"id":"doubao-seed-1-6-thinking-250615","name":"Doubao Seed 1.6 Thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.204,"output":2.04},"limit":{"context":256000,"input":256000,"output":16384}},"gemini-2.0-flash-001":{"id":"gemini-2.0-flash-001","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":1000000,"input":1000000,"output":8192}},"claude-opus-4-1-thinking:32000":{"id":"claude-opus-4-1-thinking:32000","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-RAWMAW":{"id":"Llama-3.3-70B-RAWMAW","name":"Llama 3.3 70B RAWMAW","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Steam":{"id":"GLM-4.5-Air-Derestricted-Steam","name":"GLM 4.5 Air Derestricted Steam","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":220600,"input":220600,"output":65536}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"yi-medium-200k":{"id":"yi-medium-200k","name":"Yi Medium 200k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-01","last_updated":"2024-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":2.499},"limit":{"context":200000,"input":200000,"output":4096}},"Gemma-3-27B-ArliAI-RPMax-v3":{"id":"Gemma-3-27B-ArliAI-RPMax-v3","name":"Gemma 3 27B RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"phi-4-mini-instruct":{"id":"phi-4-mini-instruct","name":"Phi 4 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter":{"id":"Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter","name":"Llama 3.3+ 70B TenyxChat DaybreakStorywriter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"ernie-x1-32k":{"id":"ernie-x1-32k","name":"Ernie X1 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek V3/Deepseek Chat","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"glm-z1-air":{"id":"glm-z1-air","name":"GLM Z1 Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"input":32000,"output":16384}},"claude-3-7-sonnet-thinking:128000":{"id":"claude-3-7-sonnet-thinking:128000","name":"Claude 3.7 Sonnet Thinking (128K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"glm-4-air":{"id":"glm-4-air","name":"GLM-4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":4096}},"Llama-3.3-70B-MiraiFanfare":{"id":"Llama-3.3-70B-MiraiFanfare","name":"Llama 3.3 70b Mirai Fanfare","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.0-flash-thinking-exp-01-21":{"id":"gemini-2.0-flash-thinking-exp-01-21","name":"Gemini 2.0 Flash Thinking 0121","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-21","last_updated":"2025-01-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":1.003},"limit":{"context":1000000,"input":1000000,"output":8192}},"Magistral-Small-2506":{"id":"Magistral-Small-2506","name":"Magistral Small 2506","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":32768,"input":32768,"output":32768}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1343,"output":0.3349},"limit":{"context":32000,"input":32000,"output":8192}},"venice-uncensored:web":{"id":"venice-uncensored:web","name":"Venice Uncensored Web","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-01","last_updated":"2024-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":80000,"input":80000,"output":16384}},"glm-4":{"id":"glm-4","name":"GLM-4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-01-16","last_updated":"2024-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":14.994},"limit":{"context":128000,"input":128000,"output":4096}},"qwen-max":{"id":"qwen-max","name":"Qwen 2.5 Max","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5997,"output":6.392},"limit":{"context":32000,"input":32000,"output":8192}},"qwen3-vl-235b-a22b-instruct-original":{"id":"qwen3-vl-235b-a22b-instruct-original","name":"Qwen3 VL 235B A22B Instruct Original","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":32768,"input":32768,"output":32768}},"jamba-large-1.6":{"id":"jamba-large-1.6","name":"Jamba Large 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3995,"output":1.2002},"limit":{"context":995904,"input":995904,"output":32768}},"qwen25-vl-72b-instruct":{"id":"qwen25-vl-72b-instruct","name":"Qwen25 VL 72b","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":32000,"input":32000,"output":32768}},"claude-sonnet-4-thinking:64000":{"id":"claude-sonnet-4-thinking:64000","name":"Claude 4 Sonnet Thinking (64K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1":{"id":"Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1","name":"Llama 3.3+ 70B New Dawn v1.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Iceblink-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"universal-summarizer":{"id":"universal-summarizer","name":"Universal Summarizer","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-05-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":30},"limit":{"context":32768,"input":32768,"output":32768}},"claude-sonnet-4-thinking:32768":{"id":"claude-sonnet-4-thinking:32768","name":"Claude 4 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"sarvan-medium":{"id":"sarvan-medium","name":"Sarvam Medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"input":128000,"output":16384}},"claude-3-7-sonnet-thinking:8192":{"id":"claude-3-7-sonnet-thinking:8192","name":"Claude 3.7 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash 0520","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048000,"input":1048000,"output":65536}},"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract","name":"GLM 4.5 Air Derestricted Iceblink v2 ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"Llama-3.3-70B-Fallen-v1":{"id":"Llama-3.3-70B-Fallen-v1","name":"Llama 3.3 70B Fallen v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen3-vl-235b-a22b-thinking":{"id":"qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":6},"limit":{"context":32768,"input":32768,"output":32768}},"claude-3-7-sonnet-thinking:32768":{"id":"claude-3-7-sonnet-thinking:32768","name":"Claude 3.7 Sonnet Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"claude-3-7-sonnet-thinking:1024":{"id":"claude-3-7-sonnet-thinking:1024","name":"Claude 3.7 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Vulpecula-R1":{"id":"Llama-3.3-70B-Vulpecula-R1","name":"Llama 3.3 70B Vulpecula R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-sonnet-4-thinking:8192":{"id":"claude-sonnet-4-thinking:8192","name":"Claude 4 Sonnet Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Ignition-v0.1":{"id":"Llama-3.3-70B-Ignition-v0.1","name":"Llama 3.3 70B Ignition v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-4-plus-0111":{"id":"glm-4-plus-0111","name":"GLM 4 Plus 0111","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":9.996},"limit":{"context":128000,"input":128000,"output":4096}},"KAT-Coder-Air-V1":{"id":"KAT-Coder-Air-V1","name":"KAT Coder Air V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"deepseek-r1-sambanova":{"id":"deepseek-r1-sambanova","name":"DeepSeek R1 Fast","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":6.987},"limit":{"context":128000,"input":128000,"output":4096}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":8192}},"doubao-1-5-thinking-pro-250415":{"id":"doubao-1-5-thinking-pro-250415","name":"Doubao 1.5 Thinking Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":128000}},"Gemma-3-27B-it-Abliterated":{"id":"Gemma-3-27B-it-Abliterated","name":"Gemma 3 27B IT Abliterated","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.42,"output":0.42},"limit":{"context":32768,"input":32768,"output":96000}},"deepseek-chat-cheaper":{"id":"deepseek-chat-cheaper","name":"DeepSeek V3/Chat Cheaper","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":8192}},"gemini-2.0-pro-exp-02-05":{"id":"gemini-2.0-pro-exp-02-05","name":"Gemini 2.0 Pro 0205","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.956},"limit":{"context":2097152,"input":2097152,"output":8192}},"azure-gpt-4o-mini":{"id":"azure-gpt-4o-mini","name":"Azure gpt-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3-70B-MS-Nevoria":{"id":"Llama-3.3-70B-MS-Nevoria","name":"Llama 3.3 70B MS Nevoria","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-thinking":{"id":"claude-opus-4-thinking","name":"Claude 4 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Sapphira-0.1":{"id":"Llama-3.3-70B-Sapphira-0.1","name":"Llama 3.3 70B Sapphira 0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-seed-code-preview-latest":{"id":"doubao-seed-code-preview-latest","name":"Doubao Seed Code Preview","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":256000,"input":256000,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v1.4":{"id":"Llama-3.3-70B-ArliAI-RPMax-v1.4","name":"Llama 3.3 70B RPMax v1.4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"mistral-small-31-24b-instruct":{"id":"mistral-small-31-24b-instruct","name":"Mistral Small 31 24b Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"input":128000,"output":131072}},"glm-4.1v-thinking-flashx":{"id":"glm-4.1v-thinking-flashx","name":"GLM 4.1V Thinking FlashX","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"hunyuan-t1-latest":{"id":"hunyuan-t1-latest","name":"Hunyuan T1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-22","last_updated":"2025-03-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.66},"limit":{"context":256000,"input":256000,"output":16384}},"doubao-1-5-thinking-vision-pro-250428":{"id":"doubao-1-5-thinking-vision-pro-250428","name":"Doubao 1.5 Thinking Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":1.43},"limit":{"context":128000,"input":128000,"output":16384}},"asi1-mini":{"id":"asi1-mini","name":"ASI1 Mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"input":128000,"output":16384}},"ernie-5.0-thinking-latest":{"id":"ernie-5.0-thinking-latest","name":"Ernie 5.0 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"Llama-3.3-70B-Incandescent-Malevolence":{"id":"Llama-3.3-70B-Incandescent-Malevolence","name":"Llama 3.3 70B Incandescent Malevolence","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Damascus-R1":{"id":"Llama-3.3-70B-Damascus-R1","name":"Damascus R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Nidum-Uncensored":{"id":"Gemma-3-27B-Nidum-Uncensored","name":"Gemma 3 27B Nidum Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":96000}},"gemini-2.5-flash-lite-preview-09-2025-thinking":{"id":"gemini-2.5-flash-lite-preview-09-2025-thinking","name":"Gemini 2.5 Flash Lite Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"doubao-seed-2-0-pro-260215":{"id":"doubao-seed-2-0-pro-260215","name":"Doubao Seed 2.0 Pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.876},"limit":{"context":256000,"input":256000,"output":128000}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"Gemma-3-27B-CardProjector-v4":{"id":"Gemma-3-27B-CardProjector-v4","name":"Gemma 3 27B CardProjector v4","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"jamba-mini-1.7":{"id":"jamba-mini-1.7","name":"Jamba Mini 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"Llama-3.3-70B-Forgotten-Safeword-3.6":{"id":"Llama-3.3-70B-Forgotten-Safeword-3.6","name":"Llama 3.3 70B Forgotten Safeword 3.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"doubao-1-5-thinking-pro-vision-250415":{"id":"doubao-1-5-thinking-pro-vision-250415","name":"Doubao 1.5 Thinking Pro Vision","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"input":128000,"output":16384}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 0605","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"gemini-2.0-pro-reasoner":{"id":"gemini-2.0-pro-reasoner","name":"Gemini 2.0 Pro Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.292,"output":4.998},"limit":{"context":128000,"input":128000,"output":65536}},"doubao-seed-2-0-lite-260215":{"id":"doubao-seed-2-0-lite-260215","name":"Doubao Seed 2.0 Lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1462,"output":0.8738},"limit":{"context":256000,"input":256000,"output":32000}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Deep Research","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-25","last_updated":"2025-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.4,"output":13.6},"limit":{"context":60000,"input":60000,"output":128000}},"Gemma-3-27B-it":{"id":"Gemma-3-27B-it","name":"Gemma 3 27B IT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-GeneticLemonade-Unleashed-v3":{"id":"Llama-3.3-70B-GeneticLemonade-Unleashed-v3","name":"Llama 3.3 70B GeneticLemonade Unleashed v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Gemma-3-27B-Glitter":{"id":"Gemma-3-27B-Glitter","name":"Gemma 3 27B Glitter","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1","name":"Llama 3.3 70B Omega Directive Unslop v2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":32768}},"gemini-2.5-flash-preview-09-2025-thinking":{"id":"gemini-2.5-flash-preview-09-2025-thinking","name":"Gemini 2.5 Flash Preview (09/2025) – Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"deepclaude":{"id":"deepclaude","name":"DeepClaude","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"ernie-4.5-8k-preview":{"id":"ernie-4.5-8k-preview","name":"Ernie 4.5 8k Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":2.6},"limit":{"context":8000,"input":8000,"output":16384}},"doubao-seed-2-0-mini-260215":{"id":"doubao-seed-2-0-mini-260215","name":"Doubao Seed 2.0 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0493,"output":0.4845},"limit":{"context":256000,"input":256000,"output":32000}},"gemini-3-pro-preview-thinking":{"id":"gemini-3-pro-preview-thinking","name":"Gemini 3 Pro Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-GeneticLemonade-Opus":{"id":"Llama-3.3-70B-GeneticLemonade-Opus","name":"Llama 3.3 70B GeneticLemonade Opus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0 1.5 LG","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":1000000,"input":1000000,"output":64000}},"ernie-4.5-turbo-128k":{"id":"ernie-4.5-turbo-128k","name":"Ernie 4.5 Turbo 128k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.132,"output":0.55},"limit":{"context":128000,"input":128000,"output":16384}},"KAT-Coder-Pro-V1":{"id":"KAT-Coder-Pro-V1","name":"KAT Coder Pro V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6},"limit":{"context":256000,"input":256000,"output":32768}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude 3.5 Sonnet Old","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":8192}},"claude-opus-4-1-thinking:8192":{"id":"claude-opus-4-1-thinking:8192","name":"Claude 4.1 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.0-flash-exp-image-generation":{"id":"gemini-2.0-flash-exp-image-generation","name":"Gemini Text + Image","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":32767,"input":32767,"output":8192}},"Llama-3.3-70B-Magnum-v4-SE":{"id":"Llama-3.3-70B-Magnum-v4-SE","name":"Llama 3.3 70B Magnum v4 SE","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"glm-zero-preview":{"id":"glm-zero-preview","name":"GLM Zero Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.802,"output":1.802},"limit":{"context":8000,"input":8000,"output":4096}},"study_gpt-chatgpt-4o-latest":{"id":"study_gpt-chatgpt-4o-latest","name":"Study Mode","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.994},"limit":{"context":200000,"input":200000,"output":16384}},"glm-4-airx":{"id":"glm-4-airx","name":"GLM-4 AirX","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":8000,"input":8000,"output":4096}},"step-2-mini":{"id":"step-2-mini","name":"Step-2 Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.408},"limit":{"context":8000,"input":8000,"output":4096}},"gemini-2.5-flash-preview-04-17:thinking":{"id":"gemini-2.5-flash-preview-04-17:thinking","name":"Gemini 2.5 Flash Preview Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"Llama-3.3-70B-Mokume-Gane-R1":{"id":"Llama-3.3-70B-Mokume-Gane-R1","name":"Llama 3.3 70B Mokume Gane R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":64000,"input":64000,"output":65536}},"glm-z1-airx":{"id":"glm-z1-airx","name":"GLM Z1 AirX","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"input":32000,"output":16384}},"jamba-mini-1.6":{"id":"jamba-mini-1.6","name":"Jamba Mini 1.6","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.408},"limit":{"context":256000,"input":256000,"output":4096}},"claude-opus-4-1-thinking":{"id":"claude-opus-4-1-thinking","name":"Claude 4.1 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"grok-3-beta":{"id":"grok-3-beta","name":"Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":131072,"input":131072,"output":131072}},"Llama-3.3-70B-Legion-V2.1":{"id":"Llama-3.3-70B-Legion-V2.1","name":"Llama 3.3 70B Legion V2.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"sonar":{"id":"sonar","name":"Perplexity Simple","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.003,"output":1.003},"limit":{"context":127000,"input":127000,"output":128000}},"z-image-turbo":{"id":"z-image-turbo","name":"Z Image Turbo","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"GLM-4.5-Air-Derestricted-Iceblink-v2":{"id":"GLM-4.5-Air-Derestricted-Iceblink-v2","name":"GLM 4.5 Air Derestricted Iceblink v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":158600,"input":158600,"output":65536}},"jamba-large":{"id":"jamba-large","name":"Jamba Large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"claude-3-7-sonnet-reasoner":{"id":"claude-3-7-sonnet-reasoner","name":"Claude 3.7 Sonnet Reasoner","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-29","last_updated":"2025-03-29","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"input":128000,"output":8192}},"ernie-4.5-turbo-vl-32k":{"id":"ernie-4.5-turbo-vl-32k","name":"Ernie 4.5 Turbo VL 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.495,"output":1.43},"limit":{"context":32000,"input":32000,"output":16384}},"Mistral-Nemo-12B-Instruct-2407":{"id":"Mistral-Nemo-12B-Instruct-2407","name":"Mistral Nemo 12B Instruct 2407","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":16384,"input":16384,"output":16384}},"doubao-seed-1-6-flash-250615":{"id":"doubao-seed-1-6-flash-250615","name":"Doubao Seed 1.6 Flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0374,"output":0.374},"limit":{"context":256000,"input":256000,"output":16384}},"qwq-32b":{"id":"qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25599999,"output":0.30499999},"limit":{"context":128000,"input":128000,"output":32768}},"Llama-3.3-70B-Strawberrylemonade-v1.2":{"id":"Llama-3.3-70B-Strawberrylemonade-v1.2","name":"Llama 3.3 70B StrawberryLemonade v1.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048756,"input":1048756,"output":65536}},"ernie-x1-turbo-32k":{"id":"ernie-x1-turbo-32k","name":"Ernie X1 Turbo 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.165,"output":0.66},"limit":{"context":32000,"input":32000,"output":16384}},"deepseek-math-v2":{"id":"deepseek-math-v2","name":"DeepSeek Math V2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"input":128000,"output":65536}},"Llama-3.3-70B-Electranova-v1.0":{"id":"Llama-3.3-70B-Electranova-v1.0","name":"Llama 3.3 70B Electranova v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v2":{"id":"Llama-3.3-70B-ArliAI-RPMax-v2","name":"Llama 3.3 70B ArliAI RPMax v2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"qwen-image":{"id":"qwen-image","name":"Qwen Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3-70B-Cu-Mai-R1":{"id":"Llama-3.3-70B-Cu-Mai-R1","name":"Llama 3.3 70B Cu Mai R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"GLM-4.5-Air-Derestricted-Iceblink":{"id":"GLM-4.5-Air-Derestricted-Iceblink","name":"GLM 4.5 Air Derestricted Iceblink","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":98304}},"Llama-3.3-70B-Bigger-Body":{"id":"Llama-3.3-70B-Bigger-Body","name":"Llama 3.3 70B Bigger Body","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3+(3.1v3.3)-70B-Hanami-x1":{"id":"Llama-3.3+(3.1v3.3)-70B-Hanami-x1","name":"Llama 3.3+ 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"hunyuan-turbos-20250226":{"id":"hunyuan-turbos-20250226","name":"Hunyuan Turbo S","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.187,"output":0.374},"limit":{"context":24000,"input":24000,"output":8192}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview (09/2025)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"GLM-4.6-Derestricted-v5":{"id":"GLM-4.6-Derestricted-v5","name":"GLM 4.6 Derestricted v5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":131072,"input":131072,"output":8192}},"glm-4-plus":{"id":"glm-4-plus","name":"GLM-4 Plus","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.497,"output":7.497},"limit":{"context":128000,"input":128000,"output":4096}},"Gemma-3-27B-Big-Tiger-v3":{"id":"Gemma-3-27B-Big-Tiger-v3","name":"Gemma 3 27B Big Tiger v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"brave-research":{"id":"brave-research","name":"Brave (Research)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":16384,"input":16384,"output":16384}},"hidream":{"id":"hidream","name":"Hidream","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2002,"output":6.001},"limit":{"context":256000,"input":256000,"output":32768}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude 4.1 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"input":200000,"output":64000}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.3328},"limit":{"context":1000000,"input":1000000,"output":131072}},"gemini-2.5-flash-nothinking":{"id":"gemini-2.5-flash-nothinking","name":"Gemini 2.5 Flash (No Thinking)","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048756,"input":1048756,"output":65536}},"exa-research-pro":{"id":"exa-research-pro","name":"Exa (Research Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":16384,"input":16384,"output":16384}},"grok-3-fast-beta":{"id":"grok-3-fast-beta","name":"Grok 3 Fast Beta","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":131072,"input":131072,"output":131072}},"claude-opus-4-5-20251101:thinking":{"id":"claude-opus-4-5-20251101:thinking","name":"Claude 4.5 Opus Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-pro-exp-03-25":{"id":"gemini-2.5-pro-exp-03-25","name":"Gemini 2.5 Pro Experimental 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"claude-3-7-sonnet-thinking":{"id":"claude-3-7-sonnet-thinking","name":"Claude 3.7 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"claude-opus-4-thinking:8192":{"id":"claude-opus-4-thinking:8192","name":"Claude 4 Opus Thinking (8K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-sonnet-4-thinking:1024":{"id":"claude-sonnet-4-thinking:1024","name":"Claude 4 Sonnet Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP":{"id":"Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP","name":"Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"step-r1-v-mini":{"id":"step-r1-v-mini","name":"Step R1 V Mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":11},"limit":{"context":128000,"input":128000,"output":65536}},"ernie-x1-32k-preview":{"id":"ernie-x1-32k-preview","name":"Ernie X1 32k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":32000,"input":32000,"output":16384}},"Llama-3.3-70B-StrawberryLemonade-v1.0":{"id":"Llama-3.3-70B-StrawberryLemonade-v1.0","name":"Llama 3.3 70B StrawberryLemonade v1.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"KAT-Coder-Exp-72B-1010":{"id":"KAT-Coder-Exp-72B-1010","name":"KAT Coder Exp 72B 1010","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"input":128000,"output":32768}},"gemini-2.5-pro-preview-03-25":{"id":"gemini-2.5-pro-preview-03-25","name":"Gemini 2.5 Pro Preview 0325","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":1048756,"input":1048756,"output":65536}},"claude-opus-4-thinking:1024":{"id":"claude-opus-4-thinking:1024","name":"Claude 4 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude 4 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":64000}},"Llama-3.3-70B-Progenitor-V3.3":{"id":"Llama-3.3-70B-Progenitor-V3.3","name":"Llama 3.3 70B Progenitor V3.3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Qwen2.5-32B-EVA-v0.2":{"id":"Qwen2.5-32B-EVA-v0.2","name":"Qwen 2.5 32b EVA","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.493,"output":0.493},"limit":{"context":24576,"input":24576,"output":8192}},"brave-pro":{"id":"brave-pro","name":"Brave (Pro)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-03-02","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":5},"limit":{"context":8192,"input":8192,"output":8192}},"step-2-16k-exp":{"id":"step-2-16k-exp","name":"Step-2 16k Exp","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-05","last_updated":"2024-07-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.004,"output":19.992},"limit":{"context":16000,"input":16000,"output":8192}},"Llama-3.3-70B-Fallen-R1-v1":{"id":"Llama-3.3-70B-Fallen-R1-v1","name":"Llama 3.3 70B Fallen R1 v1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-sonnet-4-thinking":{"id":"claude-sonnet-4-thinking","name":"Claude 4 Sonnet Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"doubao-1.5-pro-256k":{"id":"doubao-1.5-pro-256k","name":"Doubao 1.5 Pro 256k","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.799,"output":1.445},"limit":{"context":256000,"input":256000,"output":16384}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":200000,"input":200000,"output":16000}},"learnlm-1.5-pro-experimental":{"id":"learnlm-1.5-pro-experimental","name":"Gemini LearnLM Experimental","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.502,"output":10.506},"limit":{"context":32767,"input":32767,"output":8192}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":128000,"input":128000,"output":65536}},"chroma":{"id":"chroma","name":"Chroma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"Llama-3.3-70B-Predatorial-Extasy":{"id":"Llama-3.3-70B-Predatorial-Extasy","name":"Llama 3.3 70B Predatorial Extasy","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Aurora-Borealis":{"id":"Llama-3.3-70B-Aurora-Borealis","name":"Llama 3.3 70B Aurora Borealis","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-ArliAI-RPMax-v3":{"id":"Llama-3.3-70B-ArliAI-RPMax-v3","name":"Llama 3.3 70B ArliAI RPMax v3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":16384}},"step-3":{"id":"step-3","name":"Step-3","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2499,"output":0.6494},"limit":{"context":65536,"input":65536,"output":8192}},"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0":{"id":"Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0","name":"Llama 3.3 70B Omega Directive Unslop v2.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"auto-model":{"id":"auto-model","name":"Auto model","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1000000,"input":1000000,"output":1000000}},"claude-opus-4-1-thinking:32768":{"id":"claude-opus-4-1-thinking:32768","name":"Claude 4.1 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Shakudo":{"id":"Llama-3.3-70B-Shakudo","name":"Llama 3.3 70B Shakudo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Baichuan4-Air":{"id":"Baichuan4-Air","name":"Baichuan 4 Air","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.157,"output":0.157},"limit":{"context":32768,"input":32768,"output":32768}},"kimi-thinking-preview":{"id":"kimi-thinking-preview","name":"Kimi Thinking Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":31.46,"output":31.46},"limit":{"context":128000,"input":128000,"output":16384}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04998,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":8192}},"Llama-3.3-70B-Mhnnn-x1":{"id":"Llama-3.3-70B-Mhnnn-x1","name":"Llama 3.3 70B Mhnnn x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-thinking:32768":{"id":"claude-opus-4-thinking:32768","name":"Claude 4 Opus Thinking (32K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"Llama-3.3-70B-Argunaut-1-SFT":{"id":"Llama-3.3-70B-Argunaut-1-SFT","name":"Llama 3.3 70B Argunaut 1 SFT","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"claude-opus-4-1-thinking:1024":{"id":"claude-opus-4-1-thinking:1024","name":"Claude 4.1 Opus Thinking (1K)","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1048756,"input":1048756,"output":65536}},"phi-4-multimodal-instruct":{"id":"phi-4-multimodal-instruct","name":"Phi 4 Multimodal","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.11},"limit":{"context":128000,"input":128000,"output":16384}},"doubao-seed-2-0-code-preview-260215":{"id":"doubao-seed-2-0-code-preview-260215","name":"Doubao Seed 2.0 Code Preview","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.782,"output":3.893},"limit":{"context":256000,"input":256000,"output":128000}},"deepseek-reasoner-cheaper":{"id":"deepseek-reasoner-cheaper","name":"Deepseek R1 Cheaper","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":65536}},"exa-answer":{"id":"exa-answer","name":"Exa (Answer)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":4096,"input":4096,"output":4096}},"v0-1.0-md":{"id":"v0-1.0-md","name":"v0 1.0 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"glm-4.1v-thinking-flash":{"id":"glm-4.1v-thinking-flash","name":"GLM 4.1V Thinking Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":64000,"input":64000,"output":8192}},"azure-o1":{"id":"azure-o1","name":"Azure o1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"GLM-4.5-Air-Derestricted":{"id":"GLM-4.5-Air-Derestricted","name":"GLM 4.5 Air Derestricted","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":202600,"input":202600,"output":98304}},"azure-o3-mini":{"id":"azure-o3-mini","name":"Azure o3-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.088,"output":4.3996},"limit":{"context":200000,"input":200000,"output":65536}},"Llama-3.3-70B-Sapphira-0.2":{"id":"Llama-3.3-70B-Sapphira-0.2","name":"Llama 3.3 70B Sapphira 0.2","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Anthrobomination":{"id":"Llama-3.3-70B-Anthrobomination","name":"Llama 3.3 70B Anthrobomination","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"QwQ-32B-ArliAI-RpR-v1":{"id":"QwQ-32B-ArliAI-RpR-v1","name":"QwQ 32b Arli V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"input":32768,"output":32768}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude 4 Opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":14.994,"output":75.004},"limit":{"context":200000,"input":200000,"output":32000}},"yi-lightning":{"id":"yi-lightning","name":"Yi Lightning","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-16","last_updated":"2024-10-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":12000,"input":12000,"output":4096}},"Llama-3.3-70B-Electra-R1":{"id":"Llama-3.3-70B-Electra-R1","name":"Llama 3.3 70B Electra R1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Forgotten-Abomination-v5.0":{"id":"Llama-3.3-70B-Forgotten-Abomination-v5.0","name":"Llama 3.3 70B Forgotten Abomination v5.0","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Llama-3.3-70B-Cirrus-x1":{"id":"Llama-3.3-70B-Cirrus-x1","name":"Llama 3.3 70B Cirrus x1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"grok-3-mini-beta":{"id":"grok-3-mini-beta","name":"Grok 3 Mini Beta","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"input":131072,"output":131072}},"auto-model-standard":{"id":"auto-model-standard","name":"Auto model (Standard)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":1000000,"input":1000000,"output":1000000}},"claude-sonnet-4-5-20250929-thinking":{"id":"claude-sonnet-4-5-20250929-thinking","name":"Claude Sonnet 4.5 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.994},"limit":{"context":1000000,"input":1000000,"output":64000}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0 1.5 MD","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-04","last_updated":"2025-07-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"input":200000,"output":64000}},"kimi-k2-instruct-fast":{"id":"kimi-k2-instruct-fast","name":"Kimi K2 0711 Fast","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-15","last_updated":"2025-07-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"glm-4-long":{"id":"glm-4-long","name":"GLM-4 Long","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":1000000,"input":1000000,"output":4096}},"mercury-coder-small":{"id":"mercury-coder-small","name":"Mercury Coder Small","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32768,"input":32768,"output":16384}},"jamba-large-1.7":{"id":"jamba-large-1.7","name":"Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.989,"output":7.99},"limit":{"context":256000,"input":256000,"output":4096}},"qvq-max":{"id":"qvq-max","name":"Qwen: QvQ Max","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-28","last_updated":"2025-03-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":5.3},"limit":{"context":128000,"input":128000,"output":8192}},"gemini-2.0-flash-thinking-exp-1219":{"id":"gemini-2.0-flash-thinking-exp-1219","name":"Gemini 2.0 Flash Thinking 1219","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-19","last_updated":"2024-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":32767,"input":32767,"output":8192}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":1000000,"input":1000000,"output":8192}},"azure-gpt-4-turbo":{"id":"azure-gpt-4-turbo","name":"Azure gpt-4-turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.005},"limit":{"context":128000,"input":128000,"output":4096}},"Baichuan-M2":{"id":"Baichuan-M2","name":"Baichuan M2 32B Medical","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15.73,"output":15.73},"limit":{"context":32768,"input":32768,"output":32768}},"qwen-long":{"id":"qwen-long","name":"Qwen Long 10M","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.408},"limit":{"context":10000000,"input":10000000,"output":8192}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Reasoning Pro","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":7.9985},"limit":{"context":127000,"input":127000,"output":128000}},"gemini-2.5-flash-preview-05-20:thinking":{"id":"gemini-2.5-flash-preview-05-20:thinking","name":"Gemini 2.5 Flash 0520 Thinking","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":3.5},"limit":{"context":1048000,"input":1048000,"output":65536}},"GLM-4.5-Air-Derestricted-Steam-ReExtract":{"id":"GLM-4.5-Air-Derestricted-Steam-ReExtract","name":"GLM 4.5 Air Derestricted Steam ReExtract","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-12","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":131072,"input":131072,"output":65536}},"Llama-3.3-70B-Dark-Ages-v0.1":{"id":"Llama-3.3-70B-Dark-Ages-v0.1","name":"Llama 3.3 70B Dark Ages v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":32768,"input":32768,"output":16384}},"Baichuan4-Turbo":{"id":"Baichuan4-Turbo","name":"Baichuan 4 Turbo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.42,"output":2.42},"limit":{"context":128000,"input":128000,"output":32768}},"doubao-1.5-vision-pro-32k":{"id":"doubao-1.5-vision-pro-32k","name":"Doubao 1.5 Vision Pro 32k","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-22","last_updated":"2025-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.459,"output":1.377},"limit":{"context":32000,"input":32000,"output":8192}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection 3 Pi","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection 3 Productivity","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":8000,"input":8000,"output":4096}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"RNJ-1 Instruct 8B","family":"rnj","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-13","last_updated":"2025-12-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":8192}},"LLM360/K2-Think":{"id":"LLM360/K2-Think","name":"K2-Think","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":32768}},"TEE/kimi-k2.5":{"id":"TEE/kimi-k2.5","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/glm-4.7":{"id":"TEE/glm-4.7","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.3},"limit":{"context":131000,"input":131000,"output":65535}},"TEE/qwen3.5-397b-a17b":{"id":"TEE/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-28","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"TEE/glm-5":{"id":"TEE/glm-5","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":3.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/qwen2.5-vl-72b-instruct":{"id":"TEE/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B TEE","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":65536,"input":65536,"output":8192}},"TEE/minimax-m2.1":{"id":"TEE/minimax-m2.1","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":200000,"input":200000,"output":131072}},"TEE/qwen3-30b-a3b-instruct-2507":{"id":"TEE/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.44999999999999996},"limit":{"context":262000,"input":262000,"output":32768}},"TEE/deepseek-v3.1":{"id":"TEE/deepseek-v3.1","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":164000,"input":164000,"output":8192}},"TEE/llama3-3-70b":{"id":"TEE/llama3-3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":16384}},"TEE/glm-4.6":{"id":"TEE/glm-4.6","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":2},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/kimi-k2.5-thinking":{"id":"TEE/kimi-k2.5-thinking","name":"Kimi K2.5 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":128000,"input":128000,"output":65535}},"TEE/gemma-3-27b-it":{"id":"TEE/gemma-3-27b-it","name":"Gemma 3 27B TEE","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"TEE/deepseek-v3.2":{"id":"TEE/deepseek-v3.2","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1},"limit":{"context":164000,"input":164000,"output":65536}},"TEE/gpt-oss-20b":{"id":"TEE/gpt-oss-20b","name":"GPT-OSS 20B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"input":131072,"output":8192}},"TEE/qwen3-coder":{"id":"TEE/qwen3-coder","name":"Qwen3 Coder 480B TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":128000,"input":128000,"output":32768}},"TEE/glm-4.7-flash":{"id":"TEE/glm-4.7-flash","name":"GLM 4.7 Flash TEE","family":"glm-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":203000,"input":203000,"output":65535}},"TEE/gpt-oss-120b":{"id":"TEE/gpt-oss-120b","name":"GPT-OSS 120B TEE","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":131072,"input":131072,"output":16384}},"TEE/deepseek-r1-0528":{"id":"TEE/deepseek-r1-0528","name":"DeepSeek R1 0528 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65536}},"TEE/kimi-k2-thinking":{"id":"TEE/kimi-k2-thinking","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":2},"limit":{"context":128000,"input":128000,"output":65535}},"CrucibleLab/L3.3-70B-Loki-V2.0":{"id":"CrucibleLab/L3.3-70B-Loki-V2.0","name":"L3.3 70B Loki v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"deepseek/deepseek-v3.2:thinking":{"id":"deepseek/deepseek-v3.2:thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"DeepSeek Prover v2 671B","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2.5},"limit":{"context":160000,"input":160000,"output":16384}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163000,"input":163000,"output":65536}},"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond":{"id":"Doctor-Shotgun/MS3.2-24B-Magnum-Diamond","name":"MS3.2 24B Magnum Diamond","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":32768}},"NeverSleep/Llama-3-Lumimaid-70B-v0.1":{"id":"NeverSleep/Llama-3-Lumimaid-70B-v0.1","name":"Lumimaid 70b","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":8192}},"NeverSleep/Lumimaid-v0.2-70B":{"id":"NeverSleep/Lumimaid-v0.2-70B","name":"Lumimaid v0.2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1.5},"limit":{"context":16384,"input":16384,"output":8192}},"Steelskull/L3.3-Cu-Mai-R1-70b":{"id":"Steelskull/L3.3-Cu-Mai-R1-70b","name":"Llama 3.3 70B Cu Mai","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Nevoria-R1-70b":{"id":"Steelskull/L3.3-Nevoria-R1-70b","name":"Steelskull Nevoria R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evayale-70B":{"id":"Steelskull/L3.3-MS-Evayale-70B","name":"Evayale 70b ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-Electra-R1-70b":{"id":"Steelskull/L3.3-Electra-R1-70b","name":"Steelskull Electra R1 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.69989,"output":0.69989},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Nevoria-70b":{"id":"Steelskull/L3.3-MS-Nevoria-70b","name":"Steelskull Nevoria 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Steelskull/L3.3-MS-Evalebis-70b":{"id":"Steelskull/L3.3-MS-Evalebis-70b","name":"MS Evalebis 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"miromind-ai/mirothinker-v1.5-235b":{"id":"miromind-ai/mirothinker-v1.5-235b","name":"MiroThinker v1.5 235B","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":32768,"input":32768,"output":4000}},"pamanseau/OpenReasoning-Nemotron-32B":{"id":"pamanseau/OpenReasoning-Nemotron-32B","name":"OpenReasoning Nemotron 32B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":32768,"input":32768,"output":65536}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.045000000000000005,"output":0.15},"limit":{"context":131072,"input":131072,"output":8192}},"arcee-ai/trinity-large":{"id":"arcee-ai/trinity-large","name":"Trinity Large","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131072,"input":131072,"output":8192}},"cognitivecomputations/dolphin-2.9.2-qwen2-72b":{"id":"cognitivecomputations/dolphin-2.9.2-qwen2-72b","name":"Dolphin 72b","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.306},"limit":{"context":8192,"input":8192,"output":4096}},"deepcogito/cogito-v1-preview-qwen-32B":{"id":"deepcogito/cogito-v1-preview-qwen-32B","name":"Cogito v1 Preview Qwen 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.7999999999999998,"output":1.7999999999999998},"limit":{"context":128000,"input":128000,"output":32768}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Cogito v2.1 671B MoE","family":"cogito","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"input":128000,"output":16384}},"Salesforce/Llama-xLAM-2-70b-fc-r":{"id":"Salesforce/Llama-xLAM-2-70b-fc-r","name":"Llama-xLAM-2 70B fc-r","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":2.5},"limit":{"context":128000,"input":128000,"output":16384}},"NousResearch 2/hermes-4-405b:thinking":{"id":"NousResearch 2/hermes-4-405b:thinking","name":"Hermes 4 Large (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch 2/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes-3 Mistral 24B (Preview)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-10","last_updated":"2025-05-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":32768}},"NousResearch 2/Hermes-4-70B:thinking":{"id":"NousResearch 2/Hermes-4-70B:thinking","name":"Hermes 4 (Thinking)","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-17","last_updated":"2025-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-4-405b":{"id":"NousResearch 2/hermes-4-405b","name":"Hermes 4 Large","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":8192}},"NousResearch 2/hermes-3-llama-3.1-70b":{"id":"NousResearch 2/hermes-3-llama-3.1-70b","name":"Hermes 3 70B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-07","last_updated":"2026-01-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.408},"limit":{"context":65536,"input":65536,"output":8192}},"NousResearch 2/hermes-4-70b":{"id":"NousResearch 2/hermes-4-70b","name":"Hermes 4 Medium","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.39949999999999997},"limit":{"context":128000,"input":128000,"output":8192}},"soob3123/Veiled-Calla-12B":{"id":"soob3123/Veiled-Calla-12B","name":"Veiled Calla 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-13","last_updated":"2025-04-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"soob3123/GrayLine-Qwen3-8B":{"id":"soob3123/GrayLine-Qwen3-8B","name":"Grayline Qwen3 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":16384,"input":16384,"output":32768}},"soob3123/amoral-gemma3-27B-v2":{"id":"soob3123/amoral-gemma3-27B-v2","name":"Amoral Gemma3 27B v2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-05-23","last_updated":"2025-05-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":32768,"input":32768,"output":8192}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"DeepSeek V3.1 Nex N1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":128000,"input":128000,"output":8192}},"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B":{"id":"Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B","name":"Llama 3.05 Storybreaker Ministral 70b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B":{"id":"Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B","name":"Nemotron Tenyxchat Storybreaker 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"anthracite-org/magnum-v2-72b":{"id":"anthracite-org/magnum-v2-72b","name":"Magnum V2 72B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.992},"limit":{"context":16384,"input":16384,"output":8192}},"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0":{"id":"ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0","name":"Omega Directive 24B Unslop v2.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":16384,"input":16384,"output":32768}},"ReadyArt/The-Omega-Abomination-L-70B-v1.0":{"id":"ReadyArt/The-Omega-Abomination-L-70B-v1.0","name":"The Omega Abomination V1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.95},"limit":{"context":16384,"input":16384,"output":16384}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.2069999999999999},"limit":{"context":6144,"input":6144,"output":4096}},"MarinaraSpaghetti/NemoMix-Unleashed-12B":{"id":"MarinaraSpaghetti/NemoMix-Unleashed-12B","name":"NemoMix 12B Unleashed","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"Molmo 2 8B","family":"allenai","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"input":36864,"output":36864}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"Olmo 3.1 32B Instruct","family":"allenai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"input":65536,"output":8192}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"Olmo 3.1 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-25","last_updated":"2026-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"input":65536,"output":8192}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"Olmo 3 32B Think","family":"allenai","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.44999999999999996},"limit":{"context":128000,"input":128000,"output":8192}},"stepfun-ai/step-3.5-flash:thinking":{"id":"stepfun-ai/step-3.5-flash:thinking","name":"Step 3.5 Flash Thinking","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":256000,"input":256000,"output":256000}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-5.1":{"id":"zai-org/glm-5.1","name":"GLM 5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":131072}},"zai-org/glm-5.1:thinking":{"id":"zai-org/glm-5.1:thinking","name":"GLM 5.1 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":131072}},"zai-org/glm-5:thinking":{"id":"zai-org/glm-5:thinking","name":"GLM 5 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.55},"limit":{"context":200000,"input":200000,"output":128000}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"input":200000,"output":128000}},"featherless-ai/Qwerky-72B":{"id":"featherless-ai/Qwerky-72B","name":"Qwerky 72B","family":"qwerky","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32000,"input":32000,"output":8192}},"mlabonne/NeuralDaredevil-8B-abliterated":{"id":"mlabonne/NeuralDaredevil-8B-abliterated","name":"Neural Daredevil 8B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44,"output":0.44},"limit":{"context":8192,"input":8192,"output":8192}},"raifle/sorcererlm-8x22b":{"id":"raifle/sorcererlm-8x22b","name":"SorcererLM 8x22B","family":"mixtral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.505,"output":4.505},"limit":{"context":16000,"input":16000,"output":8192}},"mistralai/mixtral-8x7b-instruct-v0.1":{"id":"mistralai/mixtral-8x7b-instruct-v0.1","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral Saba","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1989,"output":0.595},"limit":{"context":32000,"input":32000,"output":32768}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":262144,"input":262144,"output":256000}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.4},"limit":{"context":262144,"input":262144,"output":65536}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.8999999999999999},"limit":{"context":256000,"input":256000,"output":32768}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/mistral-tiny":{"id":"mistralai/mistral-tiny","name":"Mistral Tiny","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-12-11","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.25499999999999995},"limit":{"context":32000,"input":32000,"output":8192}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Ministral 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"input":262144,"output":32768}},"mistralai/mixtral-8x22b-instruct-v0.1":{"id":"mistralai/mixtral-8x22b-instruct-v0.1","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8999999999999999,"output":0.8999999999999999},"limit":{"context":65536,"input":65536,"output":32768}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":8192}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"input":131072,"output":32768}},"mistralai/mistral-7b-instruct":{"id":"mistralai/mistral-7b-instruct","name":"Mistral 7B Instruct","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Mistral Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.060000000000000005},"limit":{"context":32768,"input":32768,"output":8192}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral Small Creative","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"input":32768,"output":32768}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":6.001},"limit":{"context":128000,"input":128000,"output":256000}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Ministral 14B","family":"ministral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"input":262144,"output":32768}},"shisa-ai/shisa-v2.1-llama3.3-70b":{"id":"shisa-ai/shisa-v2.1-llama3.3-70b","name":"Shisa V2.1 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":32768,"input":32768,"output":4096}},"shisa-ai/shisa-v2-llama3.3-70b":{"id":"shisa-ai/shisa-v2-llama3.3-70b","name":"Shisa V2 Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":0.5},"limit":{"context":128000,"input":128000,"output":16384}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.23},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Llama 4 Scout","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.085,"output":0.46},"limit":{"context":328000,"input":328000,"output":65536}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Llama 4 Maverick","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18000000000000002,"output":0.8},"limit":{"context":1048576,"input":1048576,"output":65536}},"meta-llama/llama-3.2-90b-vision-instruct":{"id":"meta-llama/llama-3.2-90b-vision-instruct","name":"Llama 3.2 Medium","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9009999999999999,"output":0.9009999999999999},"limit":{"context":131072,"input":131072,"output":16384}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Llama 3.2 3b Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.0306,"output":0.0493},"limit":{"context":131072,"input":131072,"output":8192}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8b Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0544,"output":0.0544},"limit":{"context":131072,"input":131072,"output":16384}},"GalrionSoftworks/MN-LooseCannon-12B-v1":{"id":"GalrionSoftworks/MN-LooseCannon-12B-v1","name":"MN-LooseCannon-12B-v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"baseten/Kimi-K2-Instruct-FP4":{"id":"baseten/Kimi-K2-Instruct-FP4","name":"Kimi K2 0711 Instruct FP4","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":131072}},"Gryphe/MythoMax-L2-13b":{"id":"Gryphe/MythoMax-L2-13b","name":"MythoMax 13B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":4000,"input":4000,"output":4096}},"x-ai/grok-4-fast:thinking":{"id":"x-ai/grok-4-fast:thinking","name":"Grok 4 Fast Thinking","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4-07-09":{"id":"x-ai/grok-4-07-09","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"input":256000,"output":131072}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"input":256000,"output":131072}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"input":2000000,"output":131072}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"Hunyuan MT 7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":20},"limit":{"context":8192,"input":8192,"output":8192}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":65536,"input":65536,"output":8192}},"microsoft/MAI-DS-R1-FP8":{"id":"microsoft/MAI-DS-R1-FP8","name":"Microsoft DeepSeek R1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.3},"limit":{"context":128000,"input":128000,"output":8192}},"cohere/command-r":{"id":"cohere/command-r","name":"Cohere: Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-03-11","last_updated":"2024-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.476,"output":1.428},"limit":{"context":128000,"input":128000,"output":4096}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.856,"output":14.246},"limit":{"context":128000,"input":128000,"output":4096}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24b Instruct","family":"chutesai","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3.1-Nemotron-Ultra-253B-v1","name":"Nvidia Nemotron Ultra 253B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-03","last_updated":"2025-07-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.8},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nvidia Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":256000,"input":256000,"output":262144}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF":{"id":"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF","name":"Nvidia Nemotron 70b","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.357,"output":0.408},"limit":{"context":16384,"input":16384,"output":8192}},"nvidia/Llama-3.3-Nemotron-Super-49B-v1":{"id":"nvidia/Llama-3.3-Nemotron-Super-49B-v1","name":"Nvidia Nemotron Super 49B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5":{"id":"nvidia/Llama-3_3-Nemotron-Super-49B-v1_5","name":"Nvidia Nemotron Super 49B v1.5","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"TheDrummer 2/Anubis-70B-v1":{"id":"TheDrummer 2/Anubis-70B-v1","name":"Anubis 70B v1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":65536,"input":65536,"output":16384}},"TheDrummer 2/Cydonia-24B-v4.3":{"id":"TheDrummer 2/Cydonia-24B-v4.3","name":"The Drummer Cydonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Magidonia-24B-v4.3":{"id":"TheDrummer 2/Magidonia-24B-v4.3","name":"The Drummer Magidonia 24B v4.3","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-25","last_updated":"2025-12-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":32768,"input":32768,"output":32768}},"TheDrummer 2/Cydonia-24B-v4":{"id":"TheDrummer 2/Cydonia-24B-v4","name":"The Drummer Cydonia 24B v4","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2414},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/Anubis-70B-v1.1":{"id":"TheDrummer 2/Anubis-70B-v1.1","name":"Anubis 70B v1.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":131072,"input":131072,"output":16384}},"TheDrummer 2/Rocinante-12B-v1.1":{"id":"TheDrummer 2/Rocinante-12B-v1.1","name":"Rocinante 12b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.408,"output":0.595},"limit":{"context":16384,"input":16384,"output":8192}},"TheDrummer 2/Cydonia-24B-v4.1":{"id":"TheDrummer 2/Cydonia-24B-v4.1","name":"The Drummer Cydonia 24B v4.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/UnslopNemo-12B-v4.1":{"id":"TheDrummer 2/UnslopNemo-12B-v4.1","name":"UnslopNemo 12b v4","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":32768,"input":32768,"output":8192}},"TheDrummer 2/Cydonia-24B-v2":{"id":"TheDrummer 2/Cydonia-24B-v2","name":"The Drummer Cydonia 24B v2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1207},"limit":{"context":16384,"input":16384,"output":32768}},"TheDrummer 2/skyfall-36b-v2":{"id":"TheDrummer 2/skyfall-36b-v2","name":"TheDrummer Skyfall 36B V2","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":64000,"input":64000,"output":32768}},"deepseek-ai/DeepSeek-V3.1:thinking":{"id":"deepseek-ai/DeepSeek-V3.1:thinking","name":"DeepSeek V3.1 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus:thinking":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus:thinking","name":"DeepSeek V3.1 Terminus (Thinking)","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"deepseek-ai/deepseek-v3.2-exp-thinking":{"id":"deepseek-ai/deepseek-v3.2-exp-thinking","name":"DeepSeek V3.2 Exp Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/deepseek-v3.2-exp":{"id":"deepseek-ai/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27999999999999997,"output":0.42000000000000004},"limit":{"context":163840,"input":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.7},"limit":{"context":128000,"input":128000,"output":163840}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.7},"limit":{"context":128000,"input":128000,"output":65536}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":20},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT 5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT-4o mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.088,"output":0.35},"limit":{"context":128000,"input":128000,"output":16384}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT 4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":14.993999999999998},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT 5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT 5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"input":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT 5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI o3-mini (High)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.64,"output":2.588},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1496,"output":0.595},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI o4-mini Deep Research","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT 5.1 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT 5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT 5.1 Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":128000,"input":128000,"output":32768}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT 5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2024-12-17","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":14.993999999999998,"output":59.993},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2022-11-30","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":16385,"output":4096}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI o3 Deep Research","family":"o","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"GPT-4 Turbo Preview","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2023-11-06","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":30.004999999999995},"limit":{"context":128000,"input":128000,"output":4096}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI o1 Pro","family":"o-pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":256000,"input":256000,"output":32768}},"openai/gpt-5.1-chat-latest":{"id":"openai/gpt-5.1-chat-latest","name":"GPT 5.1 Chat (Latest)","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":16384}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"GPT-4o Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.47,"output":5.88},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT 4.1 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI o4-mini high","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"input":200000,"output":100000}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.15},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT 5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-5.1-2025-11-13":{"id":"openai/gpt-5.1-2025-11-13","name":"GPT-5.1 (2025-11-13)","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1000000,"input":1000000,"output":32768}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.499,"output":9.996},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o3-mini-low":{"id":"openai/o3-mini-low","name":"OpenAI o3-mini (Low)","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT 5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"input":128000,"output":16384}},"openai/o3-pro-2025-06-10":{"id":"openai/o3-pro-2025-06-10","name":"OpenAI o3-pro (2025-06-10)","family":"o-pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9.996,"output":19.992},"limit":{"context":200000,"input":200000,"output":100000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.25},"limit":{"context":128000,"input":128000,"output":16384}},"openai/gpt-5-chat-latest":{"id":"openai/gpt-5-chat-latest","name":"GPT 5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT 4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"input":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT 5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":400000,"output":128000}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"input":128000,"output":16384}},"VongolaChouko/Starcannon-Unleashed-12B-v1.0":{"id":"VongolaChouko/Starcannon-Unleashed-12B-v1.0","name":"Mistral Nemo Starcannon 12b v1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon Nova Lite 1.0","family":"nova-lite","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0595,"output":0.238},"limit":{"context":300000,"input":300000,"output":5120}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":3.1959999999999997},"limit":{"context":300000,"input":300000,"output":32000}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5099999999999999,"output":4.25},"limit":{"context":1000000,"input":1000000,"output":65535}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon Nova Micro 1.0","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0357,"output":0.1394},"limit":{"context":128000,"input":128000,"output":5120}},"Sao10K/L3.3-70B-Euryale-v2.3":{"id":"Sao10K/L3.3-70B-Euryale-v2.3","name":"Llama 3.3 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3.1-70B-Euryale-v2.2":{"id":"Sao10K/L3.1-70B-Euryale-v2.2","name":"Llama 3.1 70B Euryale","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.306,"output":0.357},"limit":{"context":20480,"input":20480,"output":16384}},"Sao10K/L3.1-70B-Hanami-x1":{"id":"Sao10K/L3.1-70B-Hanami-x1","name":"Llama 3.1 70B Hanami","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"Sao10K/L3-8B-Stheno-v3.2":{"id":"Sao10K/L3-8B-Stheno-v3.2","name":"Sao10K Stheno 8b","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":16384,"input":16384,"output":8192}},"LatitudeGames/Wayfarer-Large-70B-Llama-3.3":{"id":"LatitudeGames/Wayfarer-Large-70B-Llama-3.3","name":"Llama 3.3 70B Wayfarer","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.700000007,"output":0.700000007},"limit":{"context":16384,"input":16384,"output":16384}},"z-ai/glm-4.6:thinking":{"id":"z-ai/glm-4.6:thinking","name":"GLM 4.6 Thinking","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.5},"limit":{"context":200000,"input":200000,"output":65535}},"z-ai/glm-4.5v:thinking":{"id":"z-ai/glm-4.5v:thinking","name":"GLM 4.5V Thinking","family":"glmv","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-22","last_updated":"2025-11-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.7999999999999998},"limit":{"context":64000,"input":64000,"output":96000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B","family":"ernie","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.5599999999999999},"limit":{"context":32768,"input":32768,"output":16384}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"ERNIE 4.5 300B","family":"ernie","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.15},"limit":{"context":131072,"input":131072,"output":16384}},"dmind/dmind-1":{"id":"dmind/dmind-1","name":"DMind-1","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.6},"limit":{"context":32768,"input":32768,"output":8192}},"dmind/dmind-1-mini":{"id":"dmind/dmind-1-mini","name":"DMind-1-Mini","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.4},"limit":{"context":32768,"input":32768,"output":8192}},"Infermatic/MN-12B-Inferor-v0.0":{"id":"Infermatic/MN-12B-Inferor-v0.0","name":"Mistral Nemo Inferor 12B","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25499999999999995,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"meituan-longcat/LongCat-Flash-Chat-FP8":{"id":"meituan-longcat/LongCat-Flash-Chat-FP8","name":"LongCat Flash","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-08-31","last_updated":"2025-08-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.7},"limit":{"context":128000,"input":128000,"output":32768}},"meganova-ai/manta-mini-1.0":{"id":"meganova-ai/manta-mini-1.0","name":"Manta Mini 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":8192,"input":8192,"output":8192}},"meganova-ai/manta-pro-1.0":{"id":"meganova-ai/manta-pro-1.0","name":"Manta Pro 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.060000000000000005,"output":0.5},"limit":{"context":32768,"input":32768,"output":32768}},"meganova-ai/manta-flash-1.0":{"id":"meganova-ai/manta-flash-1.0","name":"Manta Flash 1.0","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-20","last_updated":"2025-12-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.16},"limit":{"context":16384,"input":16384,"output":16384}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax 01","family":"minimax","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1394,"output":1.1219999999999999},"limit":{"context":1000192,"input":1000192,"output":16384}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":1.32},"limit":{"context":200000,"input":200000,"output":131072}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax M2-her","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-01-24","last_updated":"2026-01-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.30200000000000005,"output":1.2069999999999999},"limit":{"context":65532,"input":65532,"output":2048}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"input":204800,"output":131072}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":258048,"input":258048,"output":65536}},"unsloth/gemma-3-1b-it":{"id":"unsloth/gemma-3-1b-it","name":"Gemma 3 1B IT","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1003,"output":0.1003},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.272,"output":0.272},"limit":{"context":128000,"input":128000,"output":131072}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"Gemma 3 4B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":128000,"input":128000,"output":8192}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"Gemma 3 27B IT","family":"unsloth","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2992,"output":0.2992},"limit":{"context":128000,"input":128000,"output":96000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"GLM Z1 9B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"GLM 4 9B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":8000}},"THUDM/GLM-Z1-Rumination-32B-0414":{"id":"THUDM/GLM-Z1-Rumination-32B-0414","name":"GLM Z1 Rumination 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":32000,"input":32000,"output":65536}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"GLM 4 32B 0414","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"GLM Z1 32B 0414","family":"glm-z","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"input":128000,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"google/gemini-flash-1.5":{"id":"google/gemini-flash-1.5","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0748,"output":0.306},"limit":{"context":2000000,"input":2000000,"output":8192}},"google/gemini-3-flash-preview-thinking":{"id":"google/gemini-3-flash-preview-thinking","name":"Gemini 3 Flash Thinking","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048756,"input":1048756,"output":65536}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/kimi-k2-thinking-original":{"id":"moonshotai/kimi-k2-thinking-original","name":"Kimi K2 Thinking Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"input":256000,"output":16384}},"moonshotai/kimi-k2-instruct-0711":{"id":"moonshotai/kimi-k2-instruct-0711","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":2},"limit":{"context":128000,"input":128000,"output":8192}},"moonshotai/Kimi-Dev-72B":{"id":"moonshotai/Kimi-Dev-72B","name":"Kimi Dev 72B","family":"kimi","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":128000,"input":128000,"output":131072}},"moonshotai/kimi-k2-thinking-turbo-original":{"id":"moonshotai/kimi-k2-thinking-turbo-original","name":"Kimi K2 Thinking Turbo Original","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8},"limit":{"context":256000,"input":256000,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":256000,"input":256000,"output":262144}},"moonshotai/kimi-k2.5:thinking":{"id":"moonshotai/kimi-k2.5:thinking","name":"Kimi K2.5 Thinking","family":"kimi-thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.9},"limit":{"context":256000,"input":256000,"output":65536}},"Tongyi-Zhiwen/QwenLong-L1-32B":{"id":"Tongyi-Zhiwen/QwenLong-L1-32B","name":"QwenLong L1 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13999999999999999,"output":0.6},"limit":{"context":128000,"input":128000,"output":40960}},"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16":{"id":"nothingiisreal/L3.1-70B-Celeste-V0.1-BF16","name":"Llama 3.1 70B Celeste v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":16384}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"Aion 1.0","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3.995,"output":7.99},"limit":{"context":65536,"input":65536,"output":8192}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"Llama 3.1 8b (uncensored)","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2006,"output":0.2006},"limit":{"context":32768,"input":32768,"output":16384}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"Aion 1.0 mini (DeepSeek)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":1.394},"limit":{"context":131072,"input":131072,"output":8192}},"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B":{"id":"Alibaba-NLP/Tongyi-DeepResearch-30B-A3B","name":"Tongyi DeepResearch 30B A3B","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.24000000000000002},"limit":{"context":128000,"input":128000,"output":65536}},"MiniMaxAI/MiniMax-M1-80k":{"id":"MiniMaxAI/MiniMax-M1-80k","name":"MiniMax M1 80K","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-06-16","last_updated":"2025-06-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6052,"output":2.4225000000000003},"limit":{"context":1000000,"input":1000000,"output":131072}},"anthropic/claude-opus-4.6:thinking:low":{"id":"anthropic/claude-opus-4.6:thinking:low","name":"Claude 4.6 Opus Thinking Low","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude 4.6 Opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-sonnet-4.6:thinking":{"id":"anthropic/claude-sonnet-4.6:thinking","name":"Claude Sonnet 4.6 Thinking","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:max":{"id":"anthropic/claude-opus-4.6:thinking:max","name":"Claude 4.6 Opus Thinking Max","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking:medium":{"id":"anthropic/claude-opus-4.6:thinking:medium","name":"Claude 4.6 Opus Thinking Medium","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.992,"output":14.993999999999998},"limit":{"context":1000000,"input":1000000,"output":128000}},"anthropic/claude-opus-4.6:thinking":{"id":"anthropic/claude-opus-4.6:thinking","name":"Claude 4.6 Opus Thinking","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.998,"output":25.007},"limit":{"context":1000000,"input":1000000,"output":128000}},"abacusai/Dracarys-72B-Instruct":{"id":"abacusai/Dracarys-72B-Instruct","name":"Llama 3.1 70B Dracarys 2","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-02","last_updated":"2025-08-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","name":"EVA Llama 3.33 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2","name":"EVA-Qwen2.5-72B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1":{"id":"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","name":"EVA-LLaMA-3.33-70B-v0.1","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.006,"output":2.006},"limit":{"context":16384,"input":16384,"output":16384}},"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2":{"id":"EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2","name":"EVA-Qwen2.5-32B-v0.2","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7989999999999999,"output":0.7989999999999999},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated","name":"DeepSeek R1 Qwen Abliterated","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.4},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated":{"id":"huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated","name":"DeepSeek R1 Llama 70B Abliterated","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":8192}},"huihui-ai/Llama-3.3-70B-Instruct-abliterated":{"id":"huihui-ai/Llama-3.3-70B-Instruct-abliterated","name":"Llama 3.3 70B Instruct abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"huihui-ai/Qwen2.5-32B-Instruct-abliterated":{"id":"huihui-ai/Qwen2.5-32B-Instruct-abliterated","name":"Qwen 2.5 32B Abliterated","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-01-06","last_updated":"2025-01-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"input":32768,"output":8192}},"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated":{"id":"huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated","name":"Nemotron 3.1 70B abliterated","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":16384,"input":16384,"output":16384}},"xiaomi/mimo-v2-flash-thinking-original":{"id":"xiaomi/mimo-v2-flash-thinking-original","name":"MiMo V2 Flash (Thinking) Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-thinking":{"id":"xiaomi/mimo-v2-flash-thinking","name":"MiMo V2 Flash (Thinking)","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"xiaomi/mimo-v2-flash-original":{"id":"xiaomi/mimo-v2-flash-original","name":"MiMo V2 Flash Original","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.102,"output":0.306},"limit":{"context":256000,"input":256000,"output":32768}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.31,"output":0.31},"limit":{"context":128000,"input":128000,"output":8192}},"tngtech/tng-r1t-chimera":{"id":"tngtech/tng-r1t-chimera","name":"TNG R1T Chimera","family":"tngtech","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":128000,"input":128000,"output":65536}},"inflatebot/MN-12B-Mag-Mell-R1":{"id":"inflatebot/MN-12B-Mag-Mell-R1","name":"Mag Mell R1","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.49299999999999994,"output":0.49299999999999994},"limit":{"context":16384,"input":16384,"output":8192}},"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5":{"id":"failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5","name":"Llama 3 70B abliterated","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":0.7},"limit":{"context":8192,"input":8192,"output":8192}}}},"abacus":{"id":"abacus","env":["ABACUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://routellm.abacus.ai/v1","name":"Abacus","doc":"https://abacus.ai/help/api","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":32768}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1048576,"output":65536}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":128000,"output":32768}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":200000,"output":100000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":131072,"output":16384}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1048576,"output":65536}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gpt-5.3-codex-xhigh":{"id":"gpt-5.3-codex-xhigh","name":"GPT-5.3 Codex XHigh","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"input":272000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"output":16384}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"grok-4-0709":{"id":"grok-4-0709","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":16384}},"route-llm":{"id":"route-llm","name":"Route LLM","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":16384}},"qwen-2.5-coder-32b":{"id":"qwen-2.5-coder-32b","name":"Qwen 2.5 Coder 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.79,"output":0.79},"limit":{"context":128000,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"input":922000,"output":128000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat Latest","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo Preview","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":8},"limit":{"context":256000,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":200000,"output":128000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1047576,"output":32768}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":64000}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":200000,"output":100000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":200000,"output":32000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5},"limit":{"context":2000000,"output":16384}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.66},"limit":{"context":128000,"output":8192}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.6},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":128000,"output":8192}},"Qwen/qwen3-coder-480b-a35b-instruct":{"id":"Qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":8192}},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{"id":"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","name":"Llama 3.1 405B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":3.5},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.59},"limit":{"context":1000000,"output":32768}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":128000,"output":4096}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-15","last_updated":"2025-06-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":128000,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":128000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.44},"limit":{"context":128000,"output":32768}}}},"perplexity-agent":{"id":"perplexity-agent","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.perplexity.ai/v1","name":"Perplexity Agent","doc":"https://docs.perplexity.ai/docs/agent-api/models","models":{"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2.5,"cache_read":0.0625},"limit":{"context":128000,"output":8192}},"xai/grok-4-1-fast-non-reasoning":{"id":"xai/grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2.5},"limit":{"context":1000000,"output":32000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125,"context_over_200k":{"input":2.5,"output":15,"cache_read":0.25}},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03},"limit":{"context":1048576,"output":65536}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":128000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}}}},"siliconflow-cn":{"id":"siliconflow-cn","env":["SILICONFLOW_CN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.cn/v1","name":"SiliconFlow (China)","doc":"https://cloud.siliconflow.com/models","models":{"Kwaipilot/KAT-Dev":{"id":"Kwaipilot/KAT-Dev","name":"Kwaipilot/KAT-Dev","family":"kat-coder","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen/Qwen3.5-397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-35B-A3B":{"id":"Qwen/Qwen3.5-35B-A3B","name":"Qwen/Qwen3.5-35B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":1.86},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-122B-A10B":{"id":"Qwen/Qwen3.5-122B-A10B","name":"Qwen/Qwen3.5-122B-A10B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":2.32},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-9B":{"id":"Qwen/Qwen3.5-9B","name":"Qwen/Qwen3.5-9B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.74},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-27B":{"id":"Qwen/Qwen3.5-27B","name":"Qwen/Qwen3.5-27B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.09},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3.5-4B":{"id":"Qwen/Qwen3.5-4B","name":"Qwen/Qwen3.5-4B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"ascend-tribe/pangu-pro-moe":{"id":"ascend-tribe/pangu-pro-moe","name":"ascend-tribe/pangu-pro-moe","family":"pangu","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2026-01-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":128000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Pro/zai-org/GLM-4.7":{"id":"Pro/zai-org/GLM-4.7","name":"Pro/zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"Pro/zai-org/GLM-5.1":{"id":"Pro/zai-org/GLM-5.1","name":"Pro/zai-org/GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_write":0},"limit":{"context":205000,"output":205000}},"Pro/zai-org/GLM-5":{"id":"Pro/zai-org/GLM-5","name":"Pro/zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"Pro/deepseek-ai/DeepSeek-V3":{"id":"Pro/deepseek-ai/DeepSeek-V3","name":"Pro/deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-R1":{"id":"Pro/deepseek-ai/DeepSeek-R1","name":"Pro/deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.2":{"id":"Pro/deepseek-ai/DeepSeek-V3.2","name":"Pro/deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"Pro/deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","name":"Pro/deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"Pro/moonshotai/Kimi-K2-Thinking":{"id":"Pro/moonshotai/Kimi-K2-Thinking","name":"Pro/moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2-Instruct-0905":{"id":"Pro/moonshotai/Kimi-K2-Instruct-0905","name":"Pro/moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"Pro/moonshotai/Kimi-K2.5":{"id":"Pro/moonshotai/Kimi-K2.5","name":"Pro/moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"Pro/MiniMaxAI/MiniMax-M2.5":{"id":"Pro/MiniMaxAI/MiniMax-M2.5","name":"Pro/MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.22},"limit":{"context":192000,"output":131000}},"Pro/MiniMaxAI/MiniMax-M2.1":{"id":"Pro/MiniMaxAI/MiniMax-M2.1","name":"Pro/MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"PaddlePaddle/PaddleOCR-VL":{"id":"PaddlePaddle/PaddleOCR-VL","name":"PaddlePaddle/PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"PaddlePaddle/PaddleOCR-VL-1.5":{"id":"PaddlePaddle/PaddleOCR-VL-1.5","name":"PaddlePaddle/PaddleOCR-VL-1.5","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":16384}},"deepseek-ai/DeepSeek-OCR":{"id":"deepseek-ai/DeepSeek-OCR","name":"deepseek-ai/DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2025-10-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}}}},"submodel":{"id":"submodel","env":["SUBMODEL_INSTAGEN_ACCESS_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.submodel.ai/v1","name":"submodel","doc":"https://submodel.gitbook.io","models":{"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.3},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":131072}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":75000,"output":163840}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15},"limit":{"context":75000,"output":163840}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-23","last_updated":"2025-08-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":32768}}}},"minimax-coding-plan":{"id":"minimax-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax Coding Plan (minimax.io)","doc":"https://platform.minimax.io/docs/coding-plan/intro","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"perplexity":{"id":"perplexity","env":["PERPLEXITY_API_KEY"],"npm":"@ai-sdk/perplexity","name":"Perplexity","doc":"https://docs.perplexity.ai","models":{"sonar-pro":{"id":"sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"sonar":{"id":"sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":4096}}}},"deepseek":{"id":"deepseek","env":["DEEPSEEK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.deepseek.com","name":"DeepSeek","doc":"https://api-docs.deepseek.com/quick_start/pricing","models":{"deepseek-chat":{"id":"deepseek-chat","name":"DeepSeek Chat","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":131072,"output":8192}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2026-02-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.028},"limit":{"context":128000,"output":64000}}}},"llama":{"id":"llama","env":["LLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.llama.com/compat/v1/","name":"Llama","doc":"https://llama.developer.meta.com/docs/models","models":{"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cerebras-llama-4-maverick-17b-128e-instruct":{"id":"cerebras-llama-4-maverick-17b-128e-instruct","name":"Cerebras-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-3.3-8b-instruct":{"id":"llama-3.3-8b-instruct","name":"Llama-3.3-8B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cerebras-llama-4-scout-17b-16e-instruct":{"id":"cerebras-llama-4-scout-17b-16e-instruct","name":"Cerebras-Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"groq-llama-4-maverick-17b-128e-instruct":{"id":"groq-llama-4-maverick-17b-128e-instruct","name":"Groq-Llama-4-Maverick-17B-128E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-scout-17b-16e-instruct-fp8":{"id":"llama-4-scout-17b-16e-instruct-fp8","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}}}},"openrouter":{"id":"openrouter","env":["OPENROUTER_API_KEY"],"npm":"@openrouter/ai-sdk-provider","api":"https://openrouter.ai/api/v1","name":"OpenRouter","doc":"https://openrouter.ai/models","models":{"liquid/lfm-2.5-1.2b-instruct:free":{"id":"liquid/lfm-2.5-1.2b-instruct:free","name":"LFM2.5-1.2B-Instruct (free)","family":"liquid","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"liquid/lfm-2.5-1.2b-thinking:free":{"id":"liquid/lfm-2.5-1.2b-thinking:free","name":"LFM2.5-1.2B-Thinking (free)","family":"liquid","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-20","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek V3.2 Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.1-terminus:exacto":{"id":"deepseek/deepseek-v3.1-terminus:exacto","name":"DeepSeek V3.1 Terminus (exacto)","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16384,"output":8192}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":200000,"output":8000}},"arcee-ai/trinity-mini:free":{"id":"arcee-ai/trinity-mini:free","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"arcee-ai/trinity-large-thinking":{"id":"arcee-ai/trinity-large-thinking","name":"Trinity Large Thinking","family":"trinity","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.85},"limit":{"context":262144,"output":80000}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"cognitivecomputations/dolphin-mistral-24b-venice-edition:free":{"id":"cognitivecomputations/dolphin-mistral-24b-venice-edition:free","name":"Uncensored (free)","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-07-09","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":32768}},"bytedance-seed/seedream-4.5":{"id":"bytedance-seed/seedream-4.5","name":"Seedream 4.5","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":4096}},"black-forest-labs/flux.2-max":{"id":"black-forest-labs/flux.2-max","name":"FLUX.2 Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-16","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-flex":{"id":"black-forest-labs/flux.2-flex","name":"FLUX.2 Flex","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":67344,"output":67344}},"black-forest-labs/flux.2-pro":{"id":"black-forest-labs/flux.2-pro","name":"FLUX.2 Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-25","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":46864,"output":46864}},"black-forest-labs/flux.2-klein-4b":{"id":"black-forest-labs/flux.2-klein-4b","name":"FLUX.2 Klein 4B","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-14","last_updated":"2026-01-31","modalities":{"input":["image","text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"nousresearch/hermes-3-llama-3.1-405b:free":{"id":"nousresearch/hermes-3-llama-3.1-405b:free","name":"Hermes 3 405B Instruct (free)","family":"hermes","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Hermes 4 405B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Hermes 4 70B","family":"hermes","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":131072,"output":131072}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"Step 3.5 Flash (free)","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Devstral 2 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Codestral 2508","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-2603":{"id":"mistralai/mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":262144}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/devstral-small-2505":{"id":"mistralai/devstral-small-2505","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.12},"limit":{"context":128000,"output":128000}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":96000,"output":8192}},"mistralai/devstral-medium-2507":{"id":"mistralai/devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"mistralai/devstral-small-2507":{"id":"mistralai/devstral-small-2507","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"meta-llama/llama-3.2-3b-instruct:free":{"id":"meta-llama/llama-3.2-3b-instruct:free","name":"Llama 3.2 3B Instruct (free)","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.3-70b-instruct:free":{"id":"meta-llama/llama-3.3-70b-instruct:free","name":"Llama 3.3 70B Instruct (free)","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi - Agent Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"Grok 3 Beta","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"Grok 4.20 Beta","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12}},"limit":{"context":2000000,"output":30000},"status":"beta"},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"Grok 3 Mini Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075,"cache_write":0.5},"limit":{"context":131072,"output":8192}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":131072,"output":8192}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Intellect 3","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":8192}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-3-nano-30b-a3b:free":{"id":"nvidia/nemotron-3-nano-30b-a3b:free","name":"Nemotron 3 Nano 30B A3B (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-12-14","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"nvidia/nemotron-nano-9b-v2:free":{"id":"nvidia/nemotron-nano-9b-v2:free","name":"Nemotron Nano 9B V2 (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-09-05","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"nvidia/nemotron-3-super-120b-a12b:free":{"id":"nvidia/nemotron-3-super-120b-a12b:free","name":"Nemotron 3 Super (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-nano-12b-v2-vl:free":{"id":"nvidia/nemotron-nano-12b-v2-vl:free","name":"Nemotron Nano 12B 2 VL (free)","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-04","last_updated":"2026-03-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":32000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-oss-120b:exacto":{"id":"openai/gpt-oss-120b:exacto","name":"GPT OSS 120B (exacto)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":32768}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b:free":{"id":"openai/gpt-oss-20b:free","name":"gpt-oss-20b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":7.5e-7,"output":0.0000045,"cache_read":7.5e-8},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2e-7,"output":0.00000125,"cache_read":2e-8},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-oss-120b:free":{"id":"openai/gpt-oss-120b:free","name":"gpt-oss-120b (free)","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.28},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"z-ai/glm-4.5-air:free":{"id":"z-ai/glm-4.5-air:free","name":"GLM 4.5 Air (free)","family":"glm-air","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":96000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000}},"z-ai/glm-5.1":{"id":"z-ai/glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":128000,"output":96000}},"z-ai/glm-4.6:exacto":{"id":"z-ai/glm-4.6:exacto","name":"GLM 4.6 (exacto)","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.9,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"z-ai/glm-5-turbo":{"id":"z-ai/glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.96,"output":3.2,"cache_read":0.192,"cache_write":0},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":65535}},"sourceful/riverflow-v2-standard-preview":{"id":"sourceful/riverflow-v2-standard-preview","name":"Riverflow V2 Standard Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-fast-preview":{"id":"sourceful/riverflow-v2-fast-preview","name":"Riverflow V2 Fast Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"sourceful/riverflow-v2-max-preview":{"id":"sourceful/riverflow-v2-max-preview","name":"Riverflow V2 Max Preview","family":"sourceful","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-08","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":8192}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2025-10-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.15,"cache_read":0.28,"cache_write":1.15},"limit":{"context":196600,"output":118000}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax-01","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000000,"output":1000000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5:free":{"id":"minimax/minimax-m2.5:free","name":"MiniMax M2.5 (free)","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":65536}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3-coder:free":{"id":"qwen/qwen3-coder:free","name":"Qwen3 Coder 480B A35B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"qwen/qwen3.5-flash-02-23":{"id":"qwen/qwen3.5-flash-02-23","name":"Qwen: Qwen3.5-Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-25","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.065,"output":0.26},"limit":{"context":1000000,"output":65536}},"qwen/qwen3.6-plus":{"id":"qwen/qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.325,"output":1.95},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"qwen/qwen3-coder:exacto":{"id":"qwen/qwen3-coder:exacto","name":"Qwen3 Coder (exacto)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.53},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.078,"output":0.312},"limit":{"context":262144,"output":81920}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262000,"output":262000}},"qwen/qwen3-4b:free":{"id":"qwen/qwen3-4b:free","name":"Qwen3 4B (free)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-30","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":40960,"output":40960}},"qwen/qwen3-next-80b-a3b-instruct:free":{"id":"qwen/qwen3-next-80b-a3b-instruct:free","name":"Qwen3 Next 80B A3B Instruct (free)","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":128000,"output":66536}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":1.4},"limit":{"context":262144,"output":262144}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":65536}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen3.5 Plus 2026-02-15","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-235b-a22b-07-25":{"id":"qwen/qwen3-235b-a22b-07-25","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.85},"limit":{"context":262144,"output":131072}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemma-3-4b-it:free":{"id":"google/gemma-3-4b-it:free","name":"Gemma 3 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":32768}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5,"cache_read":0.025,"cache_write":0.083,"input_audio":0.5,"output_audio":0.5},"limit":{"context":1048576,"output":65536}},"google/gemma-3n-e4b-it:free":{"id":"google/gemma-3n-e4b-it:free","name":"Gemma 3n 4B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12},"limit":{"context":1050000,"output":66000}},"google/gemma-3n-e2b-it:free":{"id":"google/gemma-3n-e2b-it:free","name":"Gemma 3n 2B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":8192}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma 4 31B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.4},"limit":{"context":262144,"output":262144}},"google/gemini-2.5-pro-preview-06-05":{"id":"google/gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"google/gemma-3-27b-it:free":{"id":"google/gemma-3-27b-it:free","name":"Gemma 3 27B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"google/gemma-4-31b-it:free":{"id":"google/gemma-4-31b-it:free","name":"Gemma 4 31B (free)","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"google/gemma-3-12b-it:free":{"id":"google/gemma-3-12b-it:free","name":"Gemma 3 12B (free)","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Gemma 3 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01703,"output":0.06815},"limit":{"context":96000,"output":96000}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.031},"limit":{"context":1048576,"output":65536}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":96000,"output":96000}},"google/gemma-4-26b-a4b-it":{"id":"google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":262144,"output":262144}},"google/gemma-4-26b-a4b-it:free":{"id":"google/gemma-4-26b-a4b-it:free","name":"Gemma 4 26B A4B (free)","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2-0905:exacto":{"id":"moonshotai/kimi-k2-0905:exacto","name":"Kimi K2 Instruct 0905 (exacto)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":16384}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"moonshotai/kimi-k2:free":{"id":"moonshotai/kimi-k2:free","name":"Kimi K2 (free)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32800,"output":32800}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":128000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":262144,"output":65536}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-14","last_updated":"2025-12-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262144,"output":65536}}}},"fireworks-ai":{"id":"fireworks-ai","env":["FIREWORKS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.fireworks.ai/inference/v1/","name":"Fireworks AI","doc":"https://fireworks.ai/docs/","models":{"accounts/fireworks/models/glm-5p1":{"id":"accounts/fireworks/models/glm-5p1","name":"GLM 5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":202800,"output":131072}},"accounts/fireworks/models/deepseek-v3p2":{"id":"accounts/fireworks/models/deepseek-v3p2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-09","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.28},"limit":{"context":160000,"output":160000}},"accounts/fireworks/models/minimax-m2p5":{"id":"accounts/fireworks/models/minimax-m2p5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"accounts/fireworks/models/glm-4p5-air":{"id":"accounts/fireworks/models/glm-4p5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/glm-5":{"id":"accounts/fireworks/models/glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.5},"limit":{"context":202752,"output":131072}},"accounts/fireworks/models/deepseek-v3p1":{"id":"accounts/fireworks/models/deepseek-v3p1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":163840,"output":163840}},"accounts/fireworks/models/kimi-k2-instruct":{"id":"accounts/fireworks/models/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":128000,"output":16384}},"accounts/fireworks/models/qwen3p6-plus":{"id":"accounts/fireworks/models/qwen3p6-plus","name":"Qwen 3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-04","last_updated":"2026-04-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.1},"limit":{"context":128000,"output":8192}},"accounts/fireworks/models/minimax-m2p1":{"id":"accounts/fireworks/models/minimax-m2p1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":200000,"output":200000}},"accounts/fireworks/models/glm-4p7":{"id":"accounts/fireworks/models/glm-4p7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.3},"limit":{"context":198000,"output":198000}},"accounts/fireworks/models/glm-4p5":{"id":"accounts/fireworks/models/glm-4p5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":131072,"output":131072}},"accounts/fireworks/models/kimi-k2p5":{"id":"accounts/fireworks/models/kimi-k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"accounts/fireworks/models/gpt-oss-20b":{"id":"accounts/fireworks/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":32768}},"accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"accounts/fireworks/models/kimi-k2-thinking":{"id":"accounts/fireworks/models/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.3},"limit":{"context":256000,"output":256000}},"accounts/fireworks/routers/kimi-k2p5-turbo":{"id":"accounts/fireworks/routers/kimi-k2p5-turbo","name":"Kimi K2.5 Turbo (firepass)","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":256000}}}},"kimi-for-coding":{"id":"kimi-for-coding","env":["KIMI_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.kimi.com/coding/v1","name":"Kimi For Coding","doc":"https://www.kimi.com/coding/docs/en/third-party-agents.html","models":{"k2p5":{"id":"k2p5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}}}},"moark":{"id":"moark","env":["MOARK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://moark.com/v1","name":"Moark","doc":"https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.5,"output":14},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.1,"output":8.4},"limit":{"context":204800,"output":131072}}}},"opencode-go":{"id":"opencode-go","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/go/v1","name":"OpenCode Go","doc":"https://opencode.ai/docs/zen","models":{"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":65536}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo V2 Omni","family":"mimo-omni","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":262144,"output":64000}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":204800,"output":131072}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax-m2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo V2 Pro","family":"mimo-pro","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2,"context_over_200k":{"input":2,"output":6,"cache_read":0.4}},"limit":{"context":1048576,"output":64000}}}},"io-net":{"id":"io-net","env":["IOINTELLIGENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.intelligence.io.solutions/api/v1","name":"IO.NET","doc":"https://io.net/docs/guides/intelligence/io-intelligence","models":{"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar":{"id":"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11,"cache_write":0.44},"limit":{"context":106000,"output":4096}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen 3 Next 80B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-10","last_updated":"2025-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8,"cache_read":0.05,"cache_write":0.2},"limit":{"context":262144,"output":4096}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen 3 235B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6,"cache_read":0.055,"cache_write":0.22},"limit":{"context":262144,"output":4096}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen 2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":32000,"output":4096}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-15","last_updated":"2024-11-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.75,"cache_read":0.2,"cache_write":0.8},"limit":{"context":200000,"output":4096}},"mistralai/Magistral-Small-2506":{"id":"mistralai/Magistral-Small-2506","name":"Magistral Small 2506","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":4096}},"mistralai/Mistral-Large-Instruct-2411":{"id":"mistralai/Mistral-Large-Instruct-2411","name":"Mistral Large Instruct 2411","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01,"cache_write":0.04},"limit":{"context":128000,"output":4096}},"mistralai/Devstral-Small-2505":{"id":"mistralai/Devstral-Small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.22,"cache_read":0.025,"cache_write":0.1},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.38,"cache_read":0.065,"cache_write":0.26},"limit":{"context":128000,"output":4096}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"cache_read":0.075,"cache_write":0.3},"limit":{"context":430000,"output":4096}},"meta-llama/Llama-3.2-90B-Vision-Instruct":{"id":"meta-llama/Llama-3.2-90B-Vision-Instruct","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.4,"cache_read":0.175,"cache_write":0.7},"limit":{"context":16000,"output":4096}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":8.75,"cache_read":1,"cache_write":4},"limit":{"context":128000,"output":4096}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT-OSS 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14,"cache_read":0.015,"cache_write":0.06},"limit":{"context":64000,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.4,"cache_read":0.02,"cache_write":0.08},"limit":{"context":131072,"output":4096}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.25,"cache_read":0.275,"cache_write":1.1},"limit":{"context":32768,"output":4096}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-09-05","last_updated":"2024-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":1.9,"cache_read":0.195,"cache_write":0.78},"limit":{"context":32768,"output":4096}}}},"alibaba-cn":{"id":"alibaba-cn","env":["DASHSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://dashscope.aliyuncs.com/compatible-mode/v1","name":"Alibaba (China)","doc":"https://www.alibabacloud.com/help/en/model-studio/models","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen3 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"qwen-plus-character":{"id":"qwen-plus-character","name":"Qwen Plus Character","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":32768,"output":4096}},"qwen2-5-math-7b-instruct":{"id":"qwen2-5-math-7b-instruct","name":"Qwen2.5-Math 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":4096,"output":3072}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Moonshot Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.411},"limit":{"context":262144,"output":32768}},"qwen-doc-turbo":{"id":"qwen-doc-turbo","name":"Qwen Doc Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.087,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen-vl-ocr":{"id":"qwen-vl-ocr","name":"Qwen-VL OCR","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-28","last_updated":"2025-04-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.717,"output":0.717},"limit":{"context":34096,"output":4096}},"qwen-omni-turbo-realtime":{"id":"qwen-omni-turbo-realtime","name":"Qwen-Omni Turbo Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-08","last_updated":"2025-05-08","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"qwen3-8b":{"id":"qwen3-8b","name":"Qwen3 8B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.287,"reasoning":0.717},"limit":{"context":131072,"output":8192}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":2.58,"reasoning":2.58},"limit":{"context":262144,"output":65536}},"qwen-math-turbo":{"id":"qwen-math-turbo","name":"Qwen Math Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":4096,"output":3072}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen-VL Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-08-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287},"limit":{"context":131072,"output":8192}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.86,"output":3.15},"limit":{"context":202752,"output":16384}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":1.147,"reasoning":2.868},"limit":{"context":131072,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-03","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.345,"output":1.377},"limit":{"context":131072,"output":8192}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.115,"output":0.287,"reasoning":1.147},"limit":{"context":1000000,"output":32768}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen-Omni Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-19","last_updated":"2025-03-26","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":32768,"output":2048}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.022,"output":0.216},"limit":{"context":1000000,"output":32768}},"qwen2-5-vl-7b-instruct":{"id":"qwen2-5-vl-7b-instruct","name":"Qwen2.5-VL 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.717},"limit":{"context":131072,"output":8192}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qwen3.5-flash":{"id":"qwen3.5-flash","name":"Qwen3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-23","last_updated":"2026-02-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.172,"output":1.72,"reasoning":1.72},"limit":{"context":1000000,"output":65536}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.276,"output":1.651,"cache_read":0.028,"cache_write":0.344},"limit":{"context":1000000,"output":65536}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"qwen3-omni-flash":{"id":"qwen3-omni-flash","name":"Qwen3-Omni Flash","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.058,"output":0.23,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"deepseek-v3-1":{"id":"deepseek-v3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":65536}},"qwen2-5-72b-instruct":{"id":"qwen2-5-72b-instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":131072,"output":8192}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3-VL 235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.286705,"output":1.14682,"reasoning":2.867051},"limit":{"context":131072,"output":32768}},"qwen-math-plus":{"id":"qwen-math-plus","name":"Qwen Math Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-08-16","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"qwen2-5-coder-32b-instruct":{"id":"qwen2-5-coder-32b-instruct","name":"Qwen2.5-Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-asr-flash":{"id":"qwen3-asr-flash","name":"Qwen3-ASR Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.032,"output":0.032},"limit":{"context":53248,"output":4096}},"qwen-deep-research":{"id":"qwen-deep-research","name":"Qwen Deep Research","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":7.742,"output":23.367},"limit":{"context":1000000,"output":32768}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3-Next 80B-A3B (Thinking)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":1.434},"limit":{"context":131072,"output":32768}},"qwen-mt-plus":{"id":"qwen-mt-plus","name":"Qwen-MT Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.259,"output":0.775},"limit":{"context":16384,"output":8192}},"deepseek-r1-distill-qwen-32b":{"id":"deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.861},"limit":{"context":32768,"output":16384}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen-VL Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.574},"limit":{"context":131072,"output":8192}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.574},"limit":{"context":1000000,"output":65536}},"deepseek-r1-distill-qwen-7b":{"id":"deepseek-r1-distill-qwen-7b","name":"DeepSeek R1 Distill Qwen 7B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.144},"limit":{"context":32768,"output":16384}},"qwen2-5-7b-instruct":{"id":"qwen2-5-7b-instruct","name":"Qwen2.5 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.072,"output":0.144},"limit":{"context":131072,"output":8192}},"qwen2-5-14b-instruct":{"id":"qwen2-5-14b-instruct","name":"Qwen2.5 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.431},"limit":{"context":131072,"output":8192}},"tongyi-intent-detect-v3":{"id":"tongyi-intent-detect-v3","name":"Tongyi Intent Detect V3","family":"yi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.058,"output":0.144},"limit":{"context":8192,"output":1024}},"qwq-32b":{"id":"qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"moonshot-kimi-k2-instruct":{"id":"moonshot-kimi-k2-instruct","name":"Moonshot Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":8192}},"qwen2-5-32b-instruct":{"id":"qwen2-5-32b-instruct","name":"Qwen2.5 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.287,"output":0.861},"limit":{"context":131072,"output":8192}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3-Next 80B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574},"limit":{"context":131072,"output":32768}},"qwen3-omni-flash-realtime":{"id":"qwen3-omni-flash-realtime","name":"Qwen3-Omni Flash Realtime","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.23,"output":0.918,"input_audio":3.584,"output_audio":7.168},"limit":{"context":65536,"output":16384}},"qwen3-vl-30b-a3b":{"id":"qwen3-vl-30b-a3b","name":"Qwen3-VL 30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.108,"output":0.431,"reasoning":1.076},"limit":{"context":131072,"output":32768}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.143353,"output":1.433525,"reasoning":4.300576},"limit":{"context":262144,"output":32768}},"deepseek-v3-2-exp":{"id":"deepseek-v3-2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":0.431},"limit":{"context":131072,"output":65536}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3-Coder 480B-A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.861,"output":3.441},"limit":{"context":262144,"output":65536}},"deepseek-r1-distill-qwen-1-5b":{"id":"deepseek-r1-distill-qwen-1-5b","name":"DeepSeek R1 Distill Qwen 1.5B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder 30B-A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.216,"output":0.861},"limit":{"context":262144,"output":65536}},"qwen2-5-coder-7b-instruct":{"id":"qwen2-5-coder-7b-instruct","name":"Qwen2.5-Coder 7B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.287},"limit":{"context":131072,"output":8192}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-11-01","last_updated":"2025-07-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.044,"output":0.087,"reasoning":0.431},"limit":{"context":1000000,"output":16384}},"qwen-mt-turbo":{"id":"qwen-mt-turbo","name":"Qwen-MT Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.101,"output":0.28},"limit":{"context":16384,"output":8192}},"qwen2-5-math-72b-instruct":{"id":"qwen2-5-math-72b-instruct","name":"Qwen2.5-Math 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":1.721},"limit":{"context":4096,"output":3072}},"qwen2-5-omni-7b":{"id":"qwen2-5-omni-7b","name":"Qwen2.5-Omni 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.087,"output":0.345,"input_audio":5.448},"limit":{"context":32768,"output":2048}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.573,"output":3.44,"reasoning":3.44},"limit":{"context":1000000,"output":65536}},"deepseek-r1-distill-qwen-14b":{"id":"deepseek-r1-distill-qwen-14b","name":"DeepSeek R1 Distill Qwen 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.144,"output":0.431},"limit":{"context":32768,"output":16384}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5-VL 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.294,"output":6.881},"limit":{"context":131072,"output":8192}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.287,"output":1.147},"limit":{"context":65536,"output":8192}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.574,"output":2.294},"limit":{"context":131072,"output":16384}},"qvq-max":{"id":"qvq-max","name":"QVQ Max","family":"qvq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.147,"output":4.588},"limit":{"context":131072,"output":8192}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Moonshot Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.574,"output":2.294},"limit":{"context":262144,"output":16384}},"qwen3-14b":{"id":"qwen3-14b","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.144,"output":0.574,"reasoning":1.434},"limit":{"context":131072,"output":8192}},"deepseek-r1-distill-llama-8b":{"id":"deepseek-r1-distill-llama-8b","name":"DeepSeek R1 Distill Llama 8B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":16384}},"qwen-long":{"id":"qwen-long","name":"Qwen Long","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.072,"output":0.287},"limit":{"context":10000000,"output":8192}},"kimi/kimi-k2.5":{"id":"kimi/kimi-k2.5","name":"kimi/kimi-k2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"MiniMax/MiniMax-M2.7":{"id":"MiniMax/MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"siliconflow/deepseek-v3-0324":{"id":"siliconflow/deepseek-v3-0324","name":"siliconflow/deepseek-v3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":163840,"output":163840}},"siliconflow/deepseek-v3.2":{"id":"siliconflow/deepseek-v3.2","name":"siliconflow/deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":163840,"output":65536}},"siliconflow/deepseek-r1-0528":{"id":"siliconflow/deepseek-r1-0528","name":"siliconflow/deepseek-r1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":163840,"output":32768}},"siliconflow/deepseek-v3.1-terminus":{"id":"siliconflow/deepseek-v3.1-terminus","name":"siliconflow/deepseek-v3.1-terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":65536}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1048576,"output":65536}}}},"minimax-cn-coding-plan":{"id":"minimax-cn-coding-plan","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax Coding Plan (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/coding-plan/intro","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"jiekou":{"id":"jiekou","env":["JIEKOU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.jiekou.ai/openai","name":"Jiekou.AI","doc":"https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"gpt-5.1-codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"grok-4-1-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"claude-opus-4-5-20251101","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":22.5},"limit":{"context":200000,"output":65536}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"gemini-2.5-flash-lite-preview-09-2025","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65536}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"gpt-5.2-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18.9,"output":151.2},"limit":{"context":400000,"output":128000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":1048576,"output":65536}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"gemini-3-pro-preview","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":10.8},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"gemini-2.5-flash-preview-05-20","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.135,"output":3.15},"limit":{"context":1048576,"output":200000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"claude-sonnet-4-5-20250929","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":65535}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"grok-4-1-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"gpt-5.2":{"id":"gpt-5.2","name":"gpt-5.2","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.575,"output":12.6},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"gemini-2.5-pro-preview-06-05","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":1048576,"output":200000}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"gemini-2.5-flash-lite-preview-06-17","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","video","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"gpt-5.2-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":2.25},"limit":{"context":1048576,"output":65535}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"gpt-5.1-codex-mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.225,"output":1.8},"limit":{"context":400000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"grok-code-fast-1","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.35},"limit":{"context":256000,"output":256000}},"gpt-5.1":{"id":"gpt-5.1","name":"gpt-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"grok-4-fast-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":131072,"output":131072}},"grok-4-0709":{"id":"grok-4-0709","name":"grok-4-0709","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":256000,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"gpt-5-codex","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"claude-opus-4-1-20250805","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"claude-haiku-4-5-20251001","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.5},"limit":{"context":20000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"claude-sonnet-4-20250514","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.7,"output":13.5},"limit":{"context":200000,"output":64000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"claude-opus-4-6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"o3":{"id":"o3","name":"o3","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40},"limit":{"context":131072,"output":131072}},"gpt-5-pro":{"id":"gpt-5-pro","name":"gpt-5-pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":108},"limit":{"context":400000,"output":272000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36},"limit":{"context":1048576,"output":65535}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"gpt-5-chat-latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"claude-opus-4-20250514","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":13.5,"output":67.5},"limit":{"context":200000,"output":32000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"gpt-5.1-codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.125,"output":9},"limit":{"context":400000,"output":128000}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"grok-4-fast-non-reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.45},"limit":{"context":2000000,"output":2000000}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.14},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":163840,"output":32768}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":65536,"output":16384}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":128000}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","family":"ernie","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.8},"limit":{"context":131072,"output":16384}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":131072}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":65536,"output":65536}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"qwen/qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.2},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}}}},"bailing":{"id":"bailing","env":["BAILING_API_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tbox.cn/api/llm/v1/chat/completions","name":"Bailing","doc":"https://alipaytbox.yuque.com/sxs0ba/ling/intro","models":{"Ring-1T":{"id":"Ring-1T","name":"Ring-1T","family":"ring","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}},"Ling-1T":{"id":"Ling-1T","name":"Ling-1T","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.29},"limit":{"context":128000,"output":32000}}}},"iflowcn":{"id":"iflowcn","env":["IFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://apis.iflow.cn/v1","name":"iFlow","doc":"https://platform.iflow.cn/en/docs","models":{"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3-Coder-Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3-Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"qwen3-235b-a22b-instruct":{"id":"qwen3-235b-a22b-instruct","name":"Qwen3-235B-A22B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3-235B-A22B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi-K2-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3-VL-Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-235b":{"id":"qwen3-235b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}},"kimi-k2":{"id":"kimi-k2","name":"Kimi-K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":64000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3-Max-Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32000}}}},"v0":{"id":"v0","env":["V0_API_KEY"],"npm":"@ai-sdk/vercel","name":"v0","doc":"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel","models":{"v0-1.5-lg":{"id":"v0-1.5-lg","name":"v0-1.5-lg","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75},"limit":{"context":512000,"output":32000}},"v0-1.0-md":{"id":"v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"v0-1.5-md":{"id":"v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}}}},"huggingface":{"id":"huggingface","env":["HF_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://router.huggingface.co/v1","name":"Hugging Face","doc":"https://huggingface.co/docs/inference-providers","models":{"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-01","last_updated":"2026-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3-Coder-Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen 3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Embedding-4B":{"id":"Qwen/Qwen3-Embedding-4B","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":66536}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131072}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":4096}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.4},"limit":{"context":163840,"output":65536}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-01","last_updated":"2026-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}}}},"zenmux":{"id":"zenmux","env":["ZENMUX_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://zenmux.ai/api/v1","name":"ZenMux","doc":"https://docs.zenmux.ai","models":{"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek-V3.2 (Non-thinking Mode)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek-V3.2-Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.33},"limit":{"context":163000,"output":64000}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.43},"limit":{"context":128000,"output":64000}},"inclusionai/ring-1t":{"id":"inclusionai/ring-1t","name":"Ring-1T","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-12","last_updated":"2025-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"inclusionai/ling-1t":{"id":"inclusionai/ling-1t","name":"Ling-1T","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":2.24,"cache_read":0.11},"limit":{"context":128000,"output":64000}},"stepfun/step-3.5-flash-free":{"id":"stepfun/step-3.5-flash-free","name":"Step 3.5 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":64000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":256000,"output":64000}},"stepfun/step-3":{"id":"stepfun/step-3","name":"Step-3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":65536,"output":64000}},"kuaishou/kat-coder-pro-v2":{"id":"kuaishou/kat-coder-pro-v2","name":"KAT-Coder-Pro-V2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-30","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":80000}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":64000}},"x-ai/grok-4.2-fast":{"id":"x-ai/grok-4.2-fast","name":"Grok 4.2 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.2-fast-non-reasoning":{"id":"x-ai/grok-4.2-fast-non-reasoning","name":"Grok 4.2 Fast Non Reasoning","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":9},"limit":{"context":2000000,"output":30000}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16380},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":128000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4 Nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25},"limit":{"context":400000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01-01","release_date":"2026-01-15","last_updated":"2026-01-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.17},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":45,"output":225},"limit":{"context":1050000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75},"limit":{"context":1050000,"output":128000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12},"limit":{"context":400000,"output":64000},"provider":{"npm":"@ai-sdk/openai","api":"https://zenmux.ai/api/v1"}},"z-ai/glm-4.7-flash-free":{"id":"z-ai/glm-4.7-flash-free","name":"GLM 4.7 Flash (Free)","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-5v-turbo":{"id":"z-ai/glm-5v-turbo","name":"GLM 5V Turbo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.726,"output":3.1946,"cache_read":0.1743},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.14,"cache_read":0.06},"limit":{"context":200000,"output":64000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM 5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":2.6,"cache_read":0.14},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.7-flashx":{"id":"z-ai/glm-4.7-flashx","name":"GLM 4.7 FlashX","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.42,"cache_read":0.01},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6v-flash-free":{"id":"z-ai/glm-4.6v-flash-free","name":"GLM 4.6V Flash (Free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":64000}},"z-ai/glm-5.1":{"id":"z-ai/glm-5.1","name":"GLM-5.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-03","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8781,"output":3.5126,"cache_read":0.1903},"limit":{"context":200000,"output":131072}},"z-ai/glm-4.6v-flash":{"id":"z-ai/glm-4.6v-flash","name":"GLM 4.6V FlashX","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.21,"cache_read":0.0043},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.56,"cache_read":0.02},"limit":{"context":128000,"output":64000}},"z-ai/glm-5-turbo":{"id":"z-ai/glm-5-turbo","name":"GLM 5 Turbo","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":3.48},"limit":{"context":200000,"output":128000}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.54,"cache_read":0.07},"limit":{"context":200000,"output":64000}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.42,"cache_read":0.03},"limit":{"context":200000,"output":64000}},"volcengine/doubao-seed-2.0-code":{"id":"volcengine/doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":4.48},"limit":{"context":256000,"output":32000}},"volcengine/doubao-seed-code":{"id":"volcengine/doubao-seed-code","name":"Doubao-Seed-Code","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-11","last_updated":"2025-11-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.17,"output":1.12,"cache_read":0.03},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-mini":{"id":"volcengine/doubao-seed-2.0-mini","name":"Doubao-Seed-2.0-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.28,"cache_read":0.01,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-lite":{"id":"volcengine/doubao-seed-2.0-lite","name":"Doubao-Seed-2.0-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.51,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-1.8":{"id":"volcengine/doubao-seed-1.8","name":"Doubao-Seed-1.8","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.28,"cache_read":0.02,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"volcengine/doubao-seed-2.0-pro":{"id":"volcengine/doubao-seed-2.0-pro","name":"Doubao-Seed-2.0-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-14","release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":2.24,"cache_read":0.09,"cache_write":0.0024},"limit":{"context":256000,"output":64000}},"baidu/ernie-5.0-thinking-preview":{"id":"baidu/ernie-5.0-thinking-preview","name":"ERNIE 5.0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.84,"output":3.37},"limit":{"context":128000,"output":64000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3055,"output":1.2219},"limit":{"context":204800,"output":131070},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 highspeed","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.611,"output":2.4439},"limit":{"context":204800,"output":131070},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.5-lightning":{"id":"minimax/minimax-m2.5-lightning","name":"MiniMax M2.5 highspeed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen3-Coder-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":1000000,"output":64000}},"qwen/qwen3.5-flash":{"id":"qwen/qwen3.5-flash","name":"Qwen3.5 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":1020000,"output":1020000}},"qwen/qwen3.6-plus":{"id":"qwen/qwen3.6-plus","name":"Qwen3.6-Plus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-30","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":0.625,"context_over_200k":{"input":2,"output":6,"cache_read":0.2,"cache_write":2.5}},"limit":{"context":1000000,"output":64000}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3-Max-Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":256000,"output":64000}},"qwen/qwen3.5-plus":{"id":"qwen/qwen3.5-plus","name":"Qwen3.5 Plus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4.8},"limit":{"context":1000000,"output":64000}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1050000,"output":65530}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-19","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":4.5},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.07,"cache_write":1},"limit":{"context":1048000,"output":64000}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["pdf","image","text","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03,"cache_write":1},"limit":{"context":1048000,"output":64000}},"sapiens-ai/agnes-1.5-lite":{"id":"sapiens-ai/agnes-1.5-lite","name":"Agnes 1.5 Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-26","last_updated":"2026-03-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.6},"limit":{"context":256000,"output":256000}},"sapiens-ai/agnes-1.5-pro":{"id":"sapiens-ai/agnes-1.5-pro","name":"Agnes 1.5 Pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-21","last_updated":"2026-03-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.8},"limit":{"context":256000,"output":256000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":false,"knowledge":"2025-01-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":3.02,"cache_read":0.1},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["pdf","image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["image","text","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2024-11-04","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://zenmux.ai/api/anthropic/v1"}},"xiaomi/mimo-v2-omni":{"id":"xiaomi/mimo-v2-omni","name":"MiMo V2 Omni","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":265000,"output":265000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-03-20","last_updated":"2026-03-20","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":4.5},"limit":{"context":1000000,"output":256000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":262000,"output":64000}}}},"upstage":{"id":"upstage","env":["UPSTAGE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.upstage.ai/v1/solar","name":"Upstage","doc":"https://developers.upstage.ai/docs/apis/chat","models":{"solar-pro2":{"id":"solar-pro2","name":"solar-pro2","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":65536,"output":8192}},"solar-mini":{"id":"solar-mini","name":"solar-mini","family":"solar-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-06-12","last_updated":"2025-04-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":4096}},"solar-pro3":{"id":"solar-pro3","name":"solar-pro3","family":"solar-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.25},"limit":{"context":131072,"output":8192}}}},"novita-ai":{"id":"novita-ai","env":["NOVITA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.novita.ai/openai","name":"NovitaAI","doc":"https://novita.ai/docs/guides/introduction","models":{"deepseek/deepseek-r1-turbo":{"id":"deepseek/deepseek-r1-turbo","name":"DeepSeek R1 (Turbo)\t","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-ocr-2":{"id":"deepseek/deepseek-ocr-2","name":"deepseek/deepseek-ocr-2","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-ocr":{"id":"deepseek/deepseek-ocr","name":"DeepSeek-OCR","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill LLama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":8192,"output":8192}},"deepseek/deepseek-prover-v2-671b":{"id":"deepseek/deepseek-prover-v2-671b","name":"Deepseek Prover V2 671B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":160000,"output":160000}},"deepseek/deepseek-r1-0528-qwen3-8b":{"id":"deepseek/deepseek-r1-0528-qwen3-8b","name":"DeepSeek R1 0528 Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-05-29","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.09},"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"Deepseek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"Deepseek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.269,"output":0.4,"cache_read":0.1345},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3-turbo":{"id":"deepseek/deepseek-v3-turbo","name":"DeepSeek V3 (Turbo)\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.3},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5,"cache_read":0.35},"limit":{"context":163840,"output":32768}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"Deepseek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1,"cache_read":0.135},"limit":{"context":131072,"output":32768}},"paddlepaddle/paddleocr-vl":{"id":"paddlepaddle/paddleocr-vl","name":"PaddleOCR-VL","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16384,"output":16384}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}},"zai-org/glm-4.7":{"id":"zai-org/glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/glm-5":{"id":"zai-org/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai-org/glm-5.1":{"id":"zai-org/glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.5":{"id":"zai-org/glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5-air":{"id":"zai-org/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85},"limit":{"context":131072,"output":98304}},"zai-org/glm-4.5v":{"id":"zai-org/glm-4.5v","name":"GLM 4.5V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"zai-org/glm-4.6":{"id":"zai-org/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2,"cache_read":0.11},"limit":{"context":204800,"output":131072}},"zai-org/glm-4.6v":{"id":"zai-org/glm-4.6v","name":"GLM 4.6V","family":"glmv","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.055},"limit":{"context":131072,"output":32768}},"zai-org/glm-4.7-flash":{"id":"zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai-org/autoglm-phone-9b-multilingual":{"id":"zai-org/autoglm-phone-9b-multilingual","name":"AutoGLM-Phone-9B-Multilingual","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-12-10","last_updated":"2025-12-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":65536,"output":65536}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-07-30","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"baichuan/baichuan-m2-32b":{"id":"baichuan/baichuan-m2-32b","name":"baichuan-m2-32b","family":"baichuan","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-12","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":131072,"output":131072}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.59},"limit":{"context":131072,"output":131072}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-07","last_updated":"2024-12-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.135,"output":0.4},"limit":{"context":131072,"output":120000}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":8192,"output":8192}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Llama3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-06","last_updated":"2025-04-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.85},"limit":{"context":1048576,"output":8192}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"Mythomax L2 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":4096,"output":3200}},"sao10k/l31-70b-euryale-v2.2":{"id":"sao10k/l31-70b-euryale-v2.2","name":"L31 70B Euryale V2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3-70b-euryale-v2.1":{"id":"sao10k/l3-70b-euryale-v2.1","name":"L3 70B Euryale V2.1\t","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2024-06-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/L3-8B-Stheno-v3.2":{"id":"sao10k/L3-8B-Stheno-v3.2","name":"L3 8B Stheno V3.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-29","last_updated":"2024-11-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":32000}},"sao10k/l3-8b-lunaris":{"id":"sao10k/l3-8b-lunaris","name":"Sao10k L3 8B Lunaris\t","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2024-11-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.05},"limit":{"context":8192,"output":8192}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"Wizardlm 2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: GPT OSS 20B","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.25},"limit":{"context":131072,"output":32768}},"minimaxai/minimax-m1-80k":{"id":"minimaxai/minimax-m1-80k","name":"MiniMax M1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":1000000,"output":40000}},"xiaomimimo/mimo-v2-flash":{"id":"xiaomimimo/mimo-v2-flash","name":"XiaomiMiMo/MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.3},"limit":{"context":262144,"output":32000}},"baidu/ernie-4.5-vl-28b-a3b-thinking":{"id":"baidu/ernie-4.5-vl-28b-a3b-thinking","name":"ERNIE-4.5-VL-28B-A3B-Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":0.39},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"ERNIE 4.5 VL 424B A47B","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-21B-a3b":{"id":"baidu/ernie-4.5-21B-a3b","name":"ERNIE 4.5 21B A3B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"baidu/ernie-4.5-300b-a47b-paddle":{"id":"baidu/ernie-4.5-300b-a47b-paddle","name":"ERNIE 4.5 300B A47B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21B-a3b-thinking":{"id":"baidu/ernie-4.5-21B-a3b-thinking","name":"ERNIE-4.5-21B-A3B-Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":5.6},"limit":{"context":30000,"output":8000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"MiniMax M2.5 Highspeed","family":"minimax-m2.5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"qwen/qwen2.5-7b-instruct":{"id":"qwen/qwen2.5-7b-instruct","name":"Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.07},"limit":{"context":32000,"output":32000}},"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen3.5-122B-A10B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":3.2},"limit":{"context":262144,"output":65536}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen3.5-27B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.4},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-instruct-2507":{"id":"qwen/qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.58},"limit":{"context":131072,"output":16384}},"qwen/qwen3-omni-30b-a3b-instruct":{"id":"qwen/qwen3-omni-30b-a3b-instruct","name":"Qwen3 Omni 30B A3B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","video","audio","image"],"output":["text","audio"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":64000}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.98,"output":3.95},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"qwen/qwen3-vl-30b-a3b-thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1},"limit":{"context":131072,"output":32768}},"qwen/qwen3-omni-30b-a3b-thinking":{"id":"qwen/qwen3-omni-30b-a3b-thinking","name":"Qwen3 Omni 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","audio","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.97,"input_audio":2.2,"output_audio":1.788},"limit":{"context":65536,"output":16384}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"qwen/qwen3-vl-8b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.11,"output":8.45},"limit":{"context":262144,"output":65536}},"qwen/qwen3-32b-fp8":{"id":"qwen/qwen3-32b-fp8","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-4b-fp8":{"id":"qwen/qwen3-4b-fp8","name":"Qwen3 4B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":128000,"output":20000}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22b Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":3},"limit":{"context":131072,"output":32768}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen-mt-plus":{"id":"qwen/qwen-mt-plus","name":"Qwen MT Plus","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-03","last_updated":"2025-09-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75},"limit":{"context":16384,"output":8192}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-fp8":{"id":"qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.5},"limit":{"context":262144,"output":65536}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"qwen/qwen3-vl-30b-a3b-instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","video","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30b A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-09","last_updated":"2025-10-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-235b-a22b-fp8":{"id":"qwen/qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"qwen/qwen3-8b-fp8":{"id":"qwen/qwen3-8b-fp8","name":"Qwen3 8B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.035,"output":0.138},"limit":{"context":128000,"output":20000}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.5},"limit":{"context":131072,"output":32768}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen 2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":0.4},"limit":{"context":32000,"output":8192}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen3.5-35B-A3B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":65536}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kat Coder Pro","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-05","last_updated":"2026-01-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":128000}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma 4 31B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.4},"limit":{"context":262144,"output":131072}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.119,"output":0.2},"limit":{"context":98304,"output":16384}},"google/gemma-4-26b-a4b-it":{"id":"google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":262144,"output":131072}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.57,"output":2.3},"limit":{"context":131072,"output":131072}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144}}}},"xiaomi-token-plan-cn":{"id":"xiaomi-token-plan-cn","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://token-plan-cn.xiaomimimo.com/v1","name":"Xiaomi Token Plan (China)","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":128000}},"mimo-v2-tts":{"id":"mimo-v2-tts","name":"MiMo-V2-TTS","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["audio"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":16000}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}}}},"wandb":{"id":"wandb","env":["WANDB_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inference.wandb.ai/v1","name":"Weights & Biases","doc":"https://docs.wandb.ai/guides/integrations/inference/","models":{"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1.5},"limit":{"context":262144,"output":262144}},"zai-org/GLM-5-FP8":{"id":"zai-org/GLM-5-FP8","name":"GLM 5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":200000,"output":200000}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":64000,"output":64000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":128000}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":128000,"output":128000}},"OpenPipe/Qwen3-14B-Instruct":{"id":"OpenPipe/Qwen3-14B-Instruct","name":"OpenPipe Qwen3 14B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":32768,"output":32768}},"microsoft/Phi-4-mini-instruct":{"id":"microsoft/Phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.35},"limit":{"context":128000,"output":128000}},"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8":{"id":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8","name":"NVIDIA Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":161000,"output":161000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.85},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}}}},"chutes":{"id":"chutes","env":["CHUTES_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://llm.chutes.ai/v1","name":"Chutes","doc":"https://llm.chutes.ai/v1/models","models":{"miromind-ai/MiroThinker-v1.5-235B":{"id":"miromind-ai/MiroThinker-v1.5-235B","name":"MiroThinker V1.5 235B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.15},"limit":{"context":262144,"output":8192}},"OpenGVLab/InternVL3-78B-TEE":{"id":"OpenGVLab/InternVL3-78B-TEE","name":"InternVL3 78B TEE","family":"opengvlab","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-06","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":32768}},"NousResearch/DeepHermes-3-Mistral-24B-Preview":{"id":"NousResearch/DeepHermes-3-Mistral-24B-Preview","name":"DeepHermes 3 Mistral 24B Preview","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":32768,"output":32768}},"NousResearch/Hermes-4-405B-FP8-TEE":{"id":"NousResearch/Hermes-4-405B-FP8-TEE","name":"Hermes 4 405B FP8 TEE","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"NousResearch/Hermes-4.3-36B":{"id":"NousResearch/Hermes-4.3-36B","name":"Hermes 4.3 36B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.39},"limit":{"context":32768,"output":8192}},"NousResearch/Hermes-4-14B":{"id":"NousResearch/Hermes-4-14B","name":"Hermes 4 14B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.05},"limit":{"context":40960,"output":40960}},"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes 4 70B","family":"nousresearch","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.38},"limit":{"context":131072,"output":131072}},"Qwen/Qwen3-30B-A3B":{"id":"Qwen/Qwen3-30B-A3B","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-Coder-Next":{"id":"Qwen/Qwen3-Coder-Next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":262144,"output":65536}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen3 235B A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":40960,"output":40960}},"Qwen/Qwen2.5-VL-72B-Instruct-TEE":{"id":"Qwen/Qwen2.5-VL-72B-Instruct-TEE","name":"Qwen2.5 VL 72B Instruct TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3Guard-Gen-0.6B":{"id":"Qwen/Qwen3Guard-Gen-0.6B","name":"Qwen3Guard Gen 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.8},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.33},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen3 14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-TEE","name":"Qwen3 235B A22B Instruct 2507 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.55,"cache_read":0.04},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":16384,"output":16384}},"Qwen/Qwen3.5-397B-A17B-TEE":{"id":"Qwen/Qwen3.5-397B-A17B-TEE","name":"Qwen3.5 397B A17B TEE","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":2.34,"cache_read":0.195},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE","name":"Qwen3 Coder 480B A35B Instruct FP8 TEE","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.95,"cache_read":0.11},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen2.5 72B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":32768,"output":32768}},"zai-org/GLM-5.1-TEE":{"id":"zai-org/GLM-5.1-TEE","name":"GLM 5.1 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15,"cache_read":0.475},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.35},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-TEE":{"id":"zai-org/GLM-4.5-TEE","name":"GLM 4.5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.55},"limit":{"context":131072,"output":65536}},"zai-org/GLM-4.6-FP8":{"id":"zai-org/GLM-4.6-FP8","name":"GLM 4.6 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM 4.5 Air","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":131072,"output":131072}},"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM 4.7 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":202752,"output":65535}},"zai-org/GLM-5-TEE":{"id":"zai-org/GLM-5-TEE","name":"GLM 5 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15,"cache_read":0.475},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.5-FP8":{"id":"zai-org/GLM-4.5-FP8","name":"GLM 4.5 FP8","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":131072,"output":65536}},"zai-org/GLM-4.7-TEE":{"id":"zai-org/GLM-4.7-TEE","name":"GLM 4.7 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.5},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM 4.6V","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9,"cache_read":0.15},"limit":{"context":131072,"output":65536}},"zai-org/GLM-5-Turbo":{"id":"zai-org/GLM-5-Turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":1.96,"cache_read":0.245},"limit":{"context":202752,"output":65535}},"zai-org/GLM-4.6-TEE":{"id":"zai-org/GLM-4.6-TEE","name":"GLM 4.6 TEE","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.7,"cache_read":0.2},"limit":{"context":202752,"output":65536}},"mistralai/Devstral-2-123B-Instruct-2512-TEE":{"id":"mistralai/Devstral-2-123B-Instruct-2512-TEE","name":"Devstral 2 123B Instruct 2512 TEE","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.22},"limit":{"context":262144,"output":65536}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29},"limit":{"context":262144,"output":32000}},"chutesai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"chutesai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18},"limit":{"context":131072,"output":131072}},"chutesai/Mistral-Small-3.1-24B-Instruct-2503":{"id":"chutesai/Mistral-Small-3.1-24B-Instruct-2503","name":"Mistral Small 3.1 24B Instruct 2503","family":"chutesai","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16","name":"NVIDIA Nemotron 3 Nano 30B A3B BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"deepseek-ai/DeepSeek-R1-TEE":{"id":"deepseek-ai/DeepSeek-R1-TEE","name":"DeepSeek R1 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-R1-Distill-Llama-70B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Llama-70B","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3.1-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-TEE","name":"DeepSeek V3.1 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3-0324-TEE":{"id":"deepseek-ai/DeepSeek-V3-0324-TEE","name":"DeepSeek V3 0324 TEE","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.19,"output":0.87,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-Speciale-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-Speciale-TEE","name":"DeepSeek V3.2 Speciale TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.1-Terminus-TEE":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus-TEE","name":"DeepSeek V3.1 Terminus TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.23,"output":0.9},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-R1-0528-TEE":{"id":"deepseek-ai/DeepSeek-R1-0528-TEE","name":"DeepSeek R1 0528 TEE","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":163840,"output":65536}},"deepseek-ai/DeepSeek-V3.2-TEE":{"id":"deepseek-ai/DeepSeek-V3.2-TEE","name":"DeepSeek V3.2 TEE","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.14},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt oss 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.1},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b-TEE":{"id":"openai/gpt-oss-120b-TEE","name":"gpt oss 120b TEE","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.18},"limit":{"context":131072,"output":65536}},"unsloth/gemma-3-12b-it":{"id":"unsloth/gemma-3-12b-it","name":"gemma 3 12b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.1},"limit":{"context":131072,"output":131072}},"unsloth/Llama-3.2-3B-Instruct":{"id":"unsloth/Llama-3.2-3B-Instruct","name":"Llama 3.2 3B Instruct","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-02-12","last_updated":"2025-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":16384,"output":16384}},"unsloth/gemma-3-4b-it":{"id":"unsloth/gemma-3-4b-it","name":"gemma 3 4b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.03},"limit":{"context":96000,"output":96000}},"unsloth/Llama-3.2-1B-Instruct":{"id":"unsloth/Llama-3.2-1B-Instruct","name":"Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":32768,"output":8192}},"unsloth/Mistral-Nemo-Instruct-2407":{"id":"unsloth/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"unsloth","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04,"cache_read":0.01},"limit":{"context":131072,"output":131072}},"unsloth/Mistral-Small-24B-Instruct-2501":{"id":"unsloth/Mistral-Small-24B-Instruct-2501","name":"Mistral Small 24B Instruct 2501","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11},"limit":{"context":32768,"output":32768}},"unsloth/gemma-3-27b-it":{"id":"unsloth/gemma-3-27b-it","name":"gemma 3 27b it","family":"unsloth","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.15,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"moonshotai/Kimi-K2-Thinking-TEE":{"id":"moonshotai/Kimi-K2-Thinking-TEE","name":"Kimi K2 Thinking TEE","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.75},"limit":{"context":262144,"output":65535}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.195},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5-TEE":{"id":"moonshotai/Kimi-K2.5-TEE","name":"Kimi K2.5 TEE","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":65535}},"MiniMaxAI/MiniMax-M2.1-TEE":{"id":"MiniMaxAI/MiniMax-M2.1-TEE","name":"MiniMax M2.1 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.12},"limit":{"context":196608,"output":65536}},"MiniMaxAI/MiniMax-M2.5-TEE":{"id":"MiniMaxAI/MiniMax-M2.5-TEE","name":"MiniMax M2.5 TEE","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.1,"cache_read":0.15},"limit":{"context":196608,"output":65536}},"rednote-hilab/dots.ocr":{"id":"rednote-hilab/dots.ocr","name":"dots.ocr","family":"rednote","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01,"cache_read":0.005},"limit":{"context":131072,"output":131072}},"tngtech/TNG-R1T-Chimera-Turbo":{"id":"tngtech/TNG-R1T-Chimera-Turbo","name":"TNG R1T Chimera Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.6},"limit":{"context":163840,"output":65536}},"tngtech/DeepSeek-TNG-R1T2-Chimera":{"id":"tngtech/DeepSeek-TNG-R1T2-Chimera","name":"DeepSeek TNG R1T2 Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":163840}},"tngtech/DeepSeek-R1T-Chimera":{"id":"tngtech/DeepSeek-R1T-Chimera","name":"DeepSeek R1T Chimera","family":"tngtech","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":163840,"output":163840}},"tngtech/TNG-R1T-Chimera-TEE":{"id":"tngtech/TNG-R1T-Chimera-TEE","name":"TNG R1T Chimera TEE","family":"tngtech","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85},"limit":{"context":163840,"output":65536}}}},"dinference":{"id":"dinference","env":["DINFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.dinference.com/v1","name":"DInference","doc":"https://dinference.com","models":{"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.65},"limit":{"context":200000,"output":128000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.4},"limit":{"context":200000,"output":128000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08","last_updated":"2025-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0675,"output":0.27},"limit":{"context":131072,"output":32768}}}},"vivgrid":{"id":"vivgrid","env":["VIVGRID_API_KEY"],"npm":"@ai-sdk/openai","api":"https://api.vivgrid.com/v1","name":"Vivgrid","doc":"https://docs.vivgrid.com/models","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202752,"output":131000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42},"limit":{"context":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible"}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}}}},"deepinfra":{"id":"deepinfra","env":["DEEPINFRA_API_KEY"],"npm":"@ai-sdk/deepinfra","name":"Deep Infra","doc":"https://deepinfra.com/models","models":{"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.6},"limit":{"context":262144,"output":66536}},"zai-org/GLM-4.7-Flash":{"id":"zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":98304},"status":"deprecated"},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":16384}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":202752,"output":16384}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56,"cache_read":0.16},"limit":{"context":202752,"output":16384}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":204800,"output":131072}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.43,"output":1.74,"cache_read":0.08},"limit":{"context":204800,"output":131072}},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":10000000,"output":16384}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct":{"id":"meta-llama/Llama-3.1-70B-Instruct","name":"Llama 3.1 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.1-8B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-8B-Instruct-Turbo","name":"Llama 3.1 8B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.03},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama 4 Maverick 17B FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1000000,"output":16384}},"meta-llama/Llama-3.1-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.1-70B-Instruct-Turbo","name":"Llama 3.1 70B Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.15,"cache_read":0.35},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":0.38,"cache_read":0.13},"limit":{"context":163840,"output":64000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":16384}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.24},"limit":{"context":131072,"output":16384}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-06","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2},"limit":{"context":131072,"output":32768}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":32768}},"MiniMaxAI/MiniMax-M2":{"id":"MiniMaxAI/MiniMax-M2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.254,"output":1.02},"limit":{"context":262144,"output":32768}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-06","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":196608}},"anthropic/claude-3-7-sonnet-latest":{"id":"anthropic/claude-3-7-sonnet-latest","name":"Claude Sonnet 3.7 (Latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.33},"limit":{"context":200000,"output":64000}},"anthropic/claude-4-opus":{"id":"anthropic/claude-4-opus","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5},"limit":{"context":200000,"output":32000}}}},"qiniu-ai":{"id":"qiniu-ai","env":["QINIU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qnaigc.com/v1","name":"Qiniu","doc":"https://developer.qiniu.com/aitokenapi","models":{"qwen3-235b-a22b":{"id":"qwen3-235b-a22b","name":"Qwen 3 235B A22B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-1.6-flash":{"id":"doubao-seed-1.6-flash","name":"Doubao-Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235b A22B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":64000}},"doubao-seed-2.0-code":{"id":"doubao-seed-2.0-code","name":"Doubao Seed 2.0 Code","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"doubao-1.5-thinking-pro":{"id":"doubao-1.5-thinking-pro","name":"Doubao 1.5 Thinking Pro","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"qwen3.5-397b-a17b":{"id":"qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-22","last_updated":"2026-02-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"qwen-vl-max-2025-01-25":{"id":"qwen-vl-max-2025-01-25","name":"Qwen VL-MAX-2025-01-25","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"doubao-1.5-pro-32k":{"id":"doubao-1.5-pro-32k","name":"Doubao 1.5 Pro 32k","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":12000}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen 2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen3-vl-30b-a3b-thinking":{"id":"qwen3-vl-30b-a3b-thinking","name":"Qwen3-Vl 30b A3b Thinking","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-09","last_updated":"2026-02-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"gemini-3.0-pro-image-preview":{"id":"gemini-3.0-pro-image-preview","name":"Gemini 3.0 Pro Image Preview","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":65536}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Claude 4.5 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"claude-4.0-opus":{"id":"claude-4.0-opus","name":"Claude 4.0 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Claude 4.5 Haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-16","last_updated":"2025-10-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":65536}},"gemini-3.0-flash-preview":{"id":"gemini-3.0-flash-preview","name":"Gemini 3.0 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":32768,"output":8192}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":98304}},"claude-3.5-sonnet":{"id":"claude-3.5-sonnet","name":"Claude 3.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8200}},"claude-4.0-sonnet":{"id":"claude-4.0-sonnet","name":"Claude 4.0 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30b A3b Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"doubao-seed-1.6-thinking":{"id":"doubao-seed-1.6-thinking","name":"Doubao-Seed 1.6 Thinking","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262144,"output":4096}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"qwen3-30b-a3b-thinking-2507":{"id":"qwen3-30b-a3b-thinking-2507","name":"Qwen3 30b A3b Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":126000,"output":32000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":4096}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":40000,"output":4096}},"claude-4.1-opus":{"id":"claude-4.1-opus","name":"Claude 4.1 Opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":32000}},"doubao-seed-2.0-mini":{"id":"doubao-seed-2.0-mini","name":"Doubao Seed 2.0 Mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":32768}},"doubao-seed-1.6":{"id":"doubao-seed-1.6","name":"Doubao-Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-15","last_updated":"2025-08-15","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen2.5-vl-7b-instruct":{"id":"qwen2.5-vl-7b-instruct","name":"Qwen 2.5 VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"kling-v2-6":{"id":"kling-v2-6","name":"Kling-V2 6","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-13","last_updated":"2026-01-13","modalities":{"input":["text","image","video"],"output":["video"]},"open_weights":false,"limit":{"context":99999999,"output":99999999}},"MiniMax-M1":{"id":"MiniMax-M1","name":"MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":80000}},"gemini-3.0-pro-preview":{"id":"gemini-3.0-pro-preview","name":"Gemini 3.0 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","video","pdf","audio"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":64000}},"doubao-seed-2.0-lite":{"id":"doubao-seed-2.0-lite","name":"Doubao Seed 2.0 Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-14","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":262000,"output":4096}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":8192}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen-Turbo","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":4096}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":128000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":64000}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"qwen3-max-preview":{"id":"qwen3-max-preview","name":"Qwen3 Max Preview","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-06","last_updated":"2025-09-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":64000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"doubao-1.5-vision-pro":{"id":"doubao-1.5-vision-pro","name":"Doubao 1.5 Vision Pro","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Claude 4.5 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":64000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek-V3","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":1048576,"output":8192}},"qwen-max-2025-01-25":{"id":"qwen-max-2025-01-25","name":"Qwen2.5-Max-2025-01-25","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":4096}},"doubao-seed-2.0-pro":{"id":"doubao-seed-2.0-pro","name":"Doubao Seed 2.0 Pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":128000}},"deepseek/deepseek-v3.2-exp-thinking":{"id":"deepseek/deepseek-v3.2-exp-thinking","name":"DeepSeek/DeepSeek-V3.2-Exp-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.1-terminus-thinking":{"id":"deepseek/deepseek-v3.1-terminus-thinking","name":"DeepSeek/DeepSeek-V3.1-Terminus-Thinking","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek/DeepSeek-V3.2-Exp","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-v3.2-251201":{"id":"deepseek/deepseek-v3.2-251201","name":"Deepseek/DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"deepseek/deepseek-math-v2":{"id":"deepseek/deepseek-math-v2","name":"Deepseek/Deepseek-Math-V2","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":160000,"output":160000}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek/DeepSeek-V3.1-Terminus","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":32000}},"stepfun-ai/gelab-zero-4b-preview":{"id":"stepfun-ai/gelab-zero-4b-preview","name":"Stepfun-Ai/Gelab Zero 4b Preview","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":8192,"output":4096}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"Stepfun/Step-3.5 Flash","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":64000,"output":4096}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"x-AI/Grok-4-Fast","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-20","last_updated":"2025-09-20","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"x-AI/Grok-Code-Fast 1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-02","last_updated":"2025-09-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":10000}},"x-ai/grok-4-fast-reasoning":{"id":"x-ai/grok-4-fast-reasoning","name":"X-Ai/Grok-4-Fast-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast-non-reasoning":{"id":"x-ai/grok-4.1-fast-non-reasoning","name":"X-Ai/Grok 4.1 Fast Non Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"x-AI/Grok-4.1-Fast","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4-fast-non-reasoning":{"id":"x-ai/grok-4-fast-non-reasoning","name":"X-Ai/Grok-4-Fast-Non-Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":2000000}},"x-ai/grok-4.1-fast-reasoning":{"id":"x-ai/grok-4.1-fast-reasoning","name":"X-Ai/Grok 4.1 Fast Reasoning","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"limit":{"context":20000000,"output":2000000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI/GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI/GPT-5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":400000,"output":128000}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z-Ai/GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z-Ai/GLM 5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"z-ai/autoglm-phone-9b":{"id":"z-ai/autoglm-phone-9b","name":"Z-Ai/Autoglm Phone 9b","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":12800,"output":4096}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z-AI/GLM 4.6","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":200000}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"Minimax/Minimax-M2","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":128000}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"Minimax/Minimax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"Minimax/Minimax-M2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"Minimax/Minimax-M2.5 Highspeed","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-14","last_updated":"2026-02-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":204800,"output":128000}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Moonshotai/Kimi-K2.5","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-09-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":100000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi/Mimo-V2-Flash","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan/Longcat-Flash-Chat","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-11-05","last_updated":"2025-11-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":131072,"output":131072}},"meituan/longcat-flash-lite":{"id":"meituan/longcat-flash-lite","name":"Meituan/Longcat-Flash-Lite","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":320000}}}},"kilo":{"id":"kilo","env":["KILO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.kilo.ai/api/gateway","name":"Kilo Gateway","doc":"https://kilo.ai","models":{"giga-potato":{"id":"giga-potato","name":"Giga Potato (free)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"corethink:free":{"id":"corethink:free","name":"CoreThink (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":78000,"output":8192}},"giga-potato-thinking":{"id":"giga-potato-thinking","name":"Giga Potato Thinking (free)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"morph-warp-grep-v2":{"id":"morph-warp-grep-v2","name":"Morph: WarpGrep V2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":32000}},"ai21/jamba-large-1.7":{"id":"ai21/jamba-large-1.7","name":"AI21: Jamba Large 1.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":256000,"output":4096}},"alibaba/tongyi-deepresearch-30b-a3b":{"id":"alibaba/tongyi-deepresearch-30b-a3b","name":"Tongyi DeepResearch 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.45},"limit":{"context":131072,"output":131072}},"inflection/inflection-3-pi":{"id":"inflection/inflection-3-pi","name":"Inflection: Inflection 3 Pi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"inflection/inflection-3-productivity":{"id":"inflection/inflection-3-productivity","name":"Inflection: Inflection 3 Productivity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":1024}},"liquid/lfm2-8b-a1b":{"id":"liquid/lfm2-8b-a1b","name":"LiquidAI: LFM2-8B-A1B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"liquid/lfm-2.2-6b":{"id":"liquid/lfm-2.2-6b","name":"LiquidAI: LFM2-2.6B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.02},"limit":{"context":32768,"output":32768}},"liquid/lfm-2-24b-a2b":{"id":"liquid/lfm-2-24b-a2b","name":"LiquidAI: LFM2-24B-A2B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.12},"limit":{"context":32768,"output":32768}},"writer/palmyra-x5":{"id":"writer/palmyra-x5","name":"Writer: Palmyra X5","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"ibm-granite/granite-4.0-h-micro":{"id":"ibm-granite/granite-4.0-h-micro","name":"IBM: Granite 4.0 Micro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.017,"output":0.11},"limit":{"context":131000,"output":32768}},"essentialai/rnj-1-instruct":{"id":"essentialai/rnj-1-instruct","name":"EssentialAI: Rnj 1 Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":6554}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Perplexity: Sonar Pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar-deep-research":{"id":"perplexity/sonar-deep-research","name":"Perplexity: Sonar Deep Research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Perplexity: Sonar","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127072,"output":25415}},"perplexity/sonar-pro-search":{"id":"perplexity/sonar-pro-search","name":"Perplexity: Sonar Pro Search","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-31","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Perplexity: Sonar Reasoning Pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":25600}},"deepseek/deepseek-chat-v3.1":{"id":"deepseek/deepseek-chat-v3.1","name":"DeepSeek: DeepSeek V3.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":32768,"output":7168}},"deepseek/deepseek-chat":{"id":"deepseek/deepseek-chat","name":"DeepSeek: DeepSeek V3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":0.89,"cache_read":0.15},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-llama-70b":{"id":"deepseek/deepseek-r1-distill-llama-70b","name":"DeepSeek: R1 Distill Llama 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.8,"cache_read":0.015},"limit":{"context":131072,"output":16384}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek: R1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.5},"limit":{"context":64000,"output":16000}},"deepseek/deepseek-v3.2-speciale":{"id":"deepseek/deepseek-v3.2-speciale","name":"DeepSeek: DeepSeek V3.2 Speciale","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.135},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-r1-distill-qwen-32b":{"id":"deepseek/deepseek-r1-distill-qwen-32b","name":"DeepSeek: R1 Distill Qwen 32B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.29},"limit":{"context":32768,"output":32768}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek: DeepSeek V3.2 Exp","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek: DeepSeek V3.2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38,"cache_read":0.125},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-chat-v3-0324":{"id":"deepseek/deepseek-chat-v3-0324","name":"DeepSeek: DeepSeek V3 0324","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.77,"cache_read":0.095},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek: R1 0528","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.15,"cache_read":0.2},"limit":{"context":163840,"output":65536}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek: DeepSeek V3.1 Terminus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.21,"output":0.79,"cache_read":0.13},"limit":{"context":163840,"output":32768}},"openrouter/hunter-alpha":{"id":"openrouter/hunter-alpha","name":"Hunter Alpha","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1048576,"output":32000}},"openrouter/auto":{"id":"openrouter/auto","name":"Auto Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["image","text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000000,"output":32768}},"openrouter/bodybuilder":{"id":"openrouter/bodybuilder","name":"Body Builder (beta)","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768},"status":"beta"},"openrouter/healer-alpha":{"id":"openrouter/healer-alpha","name":"Healer Alpha","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["audio","image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32000}},"openrouter/free":{"id":"openrouter/free","name":"Free Models Router","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":32768}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Arcee AI: Trinity Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"arcee-ai/virtuoso-large":{"id":"arcee-ai/virtuoso-large","name":"Arcee AI: Virtuoso Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":1.2},"limit":{"context":131072,"output":64000}},"arcee-ai/spotlight":{"id":"arcee-ai/spotlight","name":"Arcee AI: Spotlight","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":131072,"output":65537}},"arcee-ai/maestro-reasoning":{"id":"arcee-ai/maestro-reasoning","name":"Arcee AI: Maestro Reasoning","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":3.3},"limit":{"context":131072,"output":32000}},"arcee-ai/trinity-large-preview:free":{"id":"arcee-ai/trinity-large-preview:free","name":"Arcee AI: Trinity Large Preview (free)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131000,"output":26200}},"arcee-ai/coder-large":{"id":"arcee-ai/coder-large","name":"Arcee AI: Coder Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":0.8},"limit":{"context":32768,"output":32768}},"deepcogito/cogito-v2.1-671b":{"id":"deepcogito/cogito-v2.1-671b","name":"Deep Cogito: Cogito v2.1 671B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":32768}},"upstage/solar-pro-3":{"id":"upstage/solar-pro-3","name":"Upstage: Solar Pro 3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":32768}},"nex-agi/deepseek-v3.1-nex-n1":{"id":"nex-agi/deepseek-v3.1-nex-n1","name":"Nex AGI: DeepSeek V3.1 Nex N1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":163840}},"bytedance-seed/seed-1.6":{"id":"bytedance-seed/seed-1.6","name":"ByteDance Seed: Seed 1.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-2.0-lite":{"id":"bytedance-seed/seed-2.0-lite","name":"ByteDance Seed: Seed-2.0-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":2},"limit":{"context":262144,"output":131072}},"bytedance-seed/seed-1.6-flash":{"id":"bytedance-seed/seed-1.6-flash","name":"ByteDance Seed: Seed 1.6 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":262144,"output":32768}},"bytedance-seed/seed-2.0-mini":{"id":"bytedance-seed/seed-2.0-mini","name":"ByteDance Seed: Seed-2.0-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-27","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"output":131072}},"mancer/weaver":{"id":"mancer/weaver","name":"Mancer: Weaver (alpha)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":1},"limit":{"context":8000,"output":2000}},"anthracite-org/magnum-v4-72b":{"id":"anthracite-org/magnum-v4-72b","name":"Magnum v4 72B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":5},"limit":{"context":16384,"output":2048}},"kilo-auto/balanced":{"id":"kilo-auto/balanced","name":"Kilo Auto Balanced","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3},"limit":{"context":204800,"output":131072}},"kilo-auto/frontier":{"id":"kilo-auto/frontier","name":"Kilo Auto Frontier","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"kilo-auto/small":{"id":"kilo-auto/small","name":"Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"kilo-auto/free":{"id":"kilo-auto/free","name":"Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"undi95/remm-slerp-l2-13b":{"id":"undi95/remm-slerp-l2-13b","name":"ReMM SLERP 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-07-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":0.65},"limit":{"context":6144,"output":4096}},"allenai/olmo-2-0325-32b-instruct":{"id":"allenai/olmo-2-0325-32b-instruct","name":"AllenAI: Olmo 2 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":128000,"output":32768}},"allenai/molmo-2-8b":{"id":"allenai/molmo-2-8b","name":"AllenAI: Molmo2 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-09","last_updated":"2026-01-31","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":36864,"output":36864}},"allenai/olmo-3-7b-think":{"id":"allenai/olmo-3-7b-think","name":"AllenAI: Olmo 3 7B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3.1-32b-instruct":{"id":"allenai/olmo-3.1-32b-instruct","name":"AllenAI: Olmo 3.1 32B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-07","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":65536,"output":32768}},"allenai/olmo-3.1-32b-think":{"id":"allenai/olmo-3.1-32b-think","name":"AllenAI: Olmo 3.1 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"allenai/olmo-3-7b-instruct":{"id":"allenai/olmo-3-7b-instruct","name":"AllenAI: Olmo 3 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.2},"limit":{"context":65536,"output":65536}},"allenai/olmo-3-32b-think":{"id":"allenai/olmo-3-32b-think","name":"AllenAI: Olmo 3 32B Think","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.5},"limit":{"context":65536,"output":65536}},"nousresearch/hermes-2-pro-llama-3-8b":{"id":"nousresearch/hermes-2-pro-llama-3-8b","name":"NousResearch: Hermes 2 Pro - Llama-3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-05-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192}},"nousresearch/hermes-4-405b":{"id":"nousresearch/hermes-4-405b","name":"Nous: Hermes 4 405B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":26215}},"nousresearch/hermes-3-llama-3.1-70b":{"id":"nousresearch/hermes-3-llama-3.1-70b","name":"Nous: Hermes 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":131072,"output":32768}},"nousresearch/hermes-4-70b":{"id":"nousresearch/hermes-4-70b","name":"Nous: Hermes 4 70B","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-08-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.055},"limit":{"context":131072,"output":131072}},"nousresearch/hermes-3-llama-3.1-405b":{"id":"nousresearch/hermes-3-llama-3.1-405b","name":"Nous: Hermes 3 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":1},"limit":{"context":131072,"output":16384}},"kilo/auto":{"id":"kilo/auto","name":"Kilo: Auto","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25},"limit":{"context":1000000,"output":128000}},"kilo/auto-small":{"id":"kilo/auto-small","name":"Deprecated Kilo Auto Small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4},"limit":{"context":400000,"output":128000}},"kilo/auto-free":{"id":"kilo/auto-free","name":"Deprecated Kilo Auto Free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph: Morph V3 Fast","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":81920,"output":38000}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph: Morph V3 Large","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":262144,"output":131072}},"eleutherai/llemma_7b":{"id":"eleutherai/llemma_7b","name":"EleutherAI: Llemma 7b","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"stepfun/step-3.5-flash:free":{"id":"stepfun/step-3.5-flash:free","name":"StepFun: Step 3.5 Flash (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"stepfun/step-3.5-flash":{"id":"stepfun/step-3.5-flash","name":"StepFun: Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":256000}},"alpindale/goliath-120b":{"id":"alpindale/goliath-120b","name":"Goliath 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-11-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3.75,"output":7.5},"limit":{"context":6144,"output":1024}},"mistralai/mistral-nemo":{"id":"mistralai/mistral-nemo","name":"Mistral: Mistral Nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":16384}},"mistralai/mistral-saba":{"id":"mistralai/mistral-saba","name":"Mistral: Saba","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":32768,"output":32768}},"mistralai/mistral-large-2512":{"id":"mistralai/mistral-large-2512","name":"Mistral: Mistral Large 3 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":52429}},"mistralai/devstral-medium":{"id":"mistralai/devstral-medium","name":"Mistral: Devstral Medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-3.1-24b-instruct":{"id":"mistralai/mistral-small-3.1-24b-instruct","name":"Mistral: Mistral Small 3.1 24B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.56,"cache_read":0.015},"limit":{"context":128000,"output":131072}},"mistralai/pixtral-large-2411":{"id":"mistralai/pixtral-large-2411","name":"Mistral: Pixtral Large 2411","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/devstral-2512":{"id":"mistralai/devstral-2512","name":"Mistral: Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.025},"limit":{"context":262144,"output":65536}},"mistralai/codestral-2508":{"id":"mistralai/codestral-2508","name":"Mistral: Codestral 2508","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":51200}},"mistralai/mistral-small-24b-instruct-2501":{"id":"mistralai/mistral-small-24b-instruct-2501","name":"Mistral: Mistral Small 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-29","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":32768,"output":16384}},"mistralai/mistral-large-2411":{"id":"mistralai/mistral-large-2411","name":"Mistral Large 2411","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":26215}},"mistralai/mixtral-8x22b-instruct":{"id":"mistralai/mixtral-8x22b-instruct","name":"Mistral: Mixtral 8x22B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":65536,"output":13108}},"mistralai/mistral-large-2407":{"id":"mistralai/mistral-large-2407","name":"Mistral Large 2407","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-19","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":32768}},"mistralai/ministral-8b-2512":{"id":"mistralai/ministral-8b-2512","name":"Mistral: Ministral 3 8B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"output":32768}},"mistralai/mistral-medium-3.1":{"id":"mistralai/mistral-medium-3.1","name":"Mistral: Mistral Medium 3.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/ministral-3b-2512":{"id":"mistralai/ministral-3b-2512","name":"Mistral: Ministral 3 3B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":32768}},"mistralai/voxtral-small-24b-2507":{"id":"mistralai/voxtral-small-24b-2507","name":"Mistral: Voxtral Small 24B 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32000,"output":6400}},"mistralai/mixtral-8x7b-instruct":{"id":"mistralai/mixtral-8x7b-instruct","name":"Mistral: Mixtral 8x7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-12-10","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.54,"output":0.54},"limit":{"context":32768,"output":16384}},"mistralai/mistral-medium-3":{"id":"mistralai/mistral-medium-3","name":"Mistral: Mistral Medium 3","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":26215}},"mistralai/mistral-small-3.2-24b-instruct":{"id":"mistralai/mistral-small-3.2-24b-instruct","name":"Mistral: Mistral Small 3.2 24B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.18,"cache_read":0.03},"limit":{"context":131072,"output":131072}},"mistralai/mistral-small-creative":{"id":"mistralai/mistral-small-creative","name":"Mistral: Mistral Small Creative","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"output":32768}},"mistralai/devstral-small":{"id":"mistralai/devstral-small","name":"Mistral: Devstral Small 1.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-05-07","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":26215}},"mistralai/mistral-large":{"id":"mistralai/mistral-large","name":"Mistral Large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":25600}},"mistralai/mistral-7b-instruct-v0.1":{"id":"mistralai/mistral-7b-instruct-v0.1","name":"Mistral: Mistral 7B Instruct v0.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":2824,"output":565}},"mistralai/ministral-14b-2512":{"id":"mistralai/ministral-14b-2512","name":"Mistral: Ministral 3 14B 2512","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"output":52429}},"meta-llama/llama-3.3-70b-instruct":{"id":"meta-llama/llama-3.3-70b-instruct","name":"Meta: Llama 3.3 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.32},"limit":{"context":131072,"output":16384}},"meta-llama/llama-4-scout":{"id":"meta-llama/llama-4-scout","name":"Meta: Llama 4 Scout","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":327680,"output":16384}},"meta-llama/llama-guard-3-8b":{"id":"meta-llama/llama-guard-3-8b","name":"Llama Guard 3 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06},"limit":{"context":131072,"output":26215}},"meta-llama/llama-4-maverick":{"id":"meta-llama/llama-4-maverick","name":"Meta: Llama 4 Maverick","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-12-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":1048576,"output":16384}},"meta-llama/llama-3.2-11b-vision-instruct":{"id":"meta-llama/llama-3.2-11b-vision-instruct","name":"Meta: Llama 3.2 11B Vision Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.049,"output":0.049},"limit":{"context":131072,"output":16384}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Meta: Llama Guard 4 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.18},"limit":{"context":163840,"output":32768}},"meta-llama/llama-3.1-70b-instruct":{"id":"meta-llama/llama-3.1-70b-instruct","name":"Meta: Llama 3.1 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":26215}},"meta-llama/llama-3.1-405b":{"id":"meta-llama/llama-3.1-405b","name":"Meta: Llama 3.1 405B (base)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":32768,"output":32768}},"meta-llama/llama-3.2-1b-instruct":{"id":"meta-llama/llama-3.2-1b-instruct","name":"Meta: Llama 3.2 1B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.027,"output":0.2},"limit":{"context":60000,"output":12000}},"meta-llama/llama-3.2-3b-instruct":{"id":"meta-llama/llama-3.2-3b-instruct","name":"Meta: Llama 3.2 3B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":80000,"output":16384}},"meta-llama/llama-3-8b-instruct":{"id":"meta-llama/llama-3-8b-instruct","name":"Meta: Llama 3 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-25","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.04},"limit":{"context":8192,"output":16384}},"meta-llama/llama-3.1-8b-instruct":{"id":"meta-llama/llama-3.1-8b-instruct","name":"Meta: Llama 3.1 8B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.05},"limit":{"context":16384,"output":16384}},"meta-llama/llama-3-70b-instruct":{"id":"meta-llama/llama-3-70b-instruct","name":"Meta: Llama 3 70B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"meta-llama/llama-3.1-405b-instruct":{"id":"meta-llama/llama-3.1-405b-instruct","name":"Meta: Llama 3.1 405B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":4},"limit":{"context":131000,"output":26200}},"x-ai/grok-code-fast-1:optimized:free":{"id":"x-ai/grok-code-fast-1:optimized:free","name":"xAI: Grok Code Fast 1 Optimized (experimental, free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":10000}},"x-ai/grok-4.20-multi-agent-beta":{"id":"x-ai/grok-4.20-multi-agent-beta","name":"xAI: Grok 4.20 Multi-Agent Beta","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-4-fast":{"id":"x-ai/grok-4-fast","name":"xAI: Grok 4 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-code-fast-1":{"id":"x-ai/grok-code-fast-1","name":"xAI: Grok Code Fast 1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"x-ai/grok-3-beta":{"id":"x-ai/grok-3-beta","name":"xAI: Grok 3 Beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"x-ai/grok-4":{"id":"x-ai/grok-4","name":"xAI: Grok 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":51200}},"x-ai/grok-3-mini":{"id":"x-ai/grok-3-mini","name":"xAI: Grok 3 Mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-4.1-fast":{"id":"x-ai/grok-4.1-fast","name":"xAI: Grok 4.1 Fast","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"x-ai/grok-4.20-beta":{"id":"x-ai/grok-4.20-beta","name":"xAI: Grok 4.20 Beta","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":2000000,"output":32768}},"x-ai/grok-3-mini-beta":{"id":"x-ai/grok-3-mini-beta","name":"xAI: Grok 3 Mini Beta","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":26215}},"x-ai/grok-3":{"id":"x-ai/grok-3","name":"xAI: Grok 3","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":26215}},"tencent/hunyuan-a13b-instruct":{"id":"tencent/hunyuan-a13b-instruct","name":"Tencent: Hunyuan A13B Instruct","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131072,"output":131072}},"gryphe/mythomax-l2-13b":{"id":"gryphe/mythomax-l2-13b","name":"MythoMax 13B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-25","last_updated":"2024-04-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.06},"limit":{"context":4096,"output":4096}},"sao10k/l3-euryale-70b":{"id":"sao10k/l3-euryale-70b","name":"Sao10k: Llama 3 Euryale 70B v2.1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-06-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.48,"output":1.48},"limit":{"context":8192,"output":8192}},"sao10k/l3-lunaris-8b":{"id":"sao10k/l3-lunaris-8b","name":"Sao10K: Llama 3 8B Lunaris","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.05},"limit":{"context":8192,"output":8192}},"sao10k/l3.3-euryale-70b":{"id":"sao10k/l3.3-euryale-70b","name":"Sao10K: Llama 3.3 Euryale 70B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-18","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.75},"limit":{"context":131072,"output":16384}},"sao10k/l3.1-70b-hanami-x1":{"id":"sao10k/l3.1-70b-hanami-x1","name":"Sao10K: Llama 3.1 70B Hanami x1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-08","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":16000,"output":16000}},"sao10k/l3.1-euryale-70b":{"id":"sao10k/l3.1-euryale-70b","name":"Sao10K: Llama 3.1 Euryale 70B v2.2","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":0.85},"limit":{"context":131072,"output":16384}},"microsoft/wizardlm-2-8x22b":{"id":"microsoft/wizardlm-2-8x22b","name":"WizardLM-2 8x22B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-04-24","last_updated":"2024-04-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":0.62},"limit":{"context":65535,"output":8000}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Microsoft: Phi 4","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.14},"limit":{"context":16384,"output":16384}},"cohere/command-r7b-12-2024":{"id":"cohere/command-r7b-12-2024","name":"Cohere: Command R7B (12-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"cohere/command-a":{"id":"cohere/command-a","name":"Cohere: Command A","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8192}},"cohere/command-r-plus-08-2024":{"id":"cohere/command-r-plus-08-2024","name":"Cohere: Command R+ (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"cohere/command-r-08-2024":{"id":"cohere/command-r-08-2024","name":"Cohere: Command R (08-2024)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"Prime Intellect: INTELLECT-3","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-26","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"NVIDIA: Llama 3.3 Nemotron Super 49B V1.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"NVIDIA: Nemotron 3 Nano 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":262144,"output":52429}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"NVIDIA: Nemotron Nano 12B 2 VL","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-10-28","last_updated":"2026-01-31","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":26215}},"nvidia/nemotron-3-super-120b-a12b:free":{"id":"nvidia/nemotron-3-super-120b-a12b:free","name":"NVIDIA: Nemotron 3 Super (free)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"NVIDIA: Nemotron Nano 9B V2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":26215}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"NVIDIA: Llama 3.1 Nemotron 70B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":131072,"output":16384}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Inception: Mercury 2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"inception/mercury":{"id":"inception/mercury","name":"Inception: Mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"inception/mercury-coder":{"id":"inception/mercury-coder","name":"Inception: Mercury Coder","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-02-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75},"limit":{"context":128000,"output":32000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"OpenAI: GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"OpenAI: GPT-5.2 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"OpenAI: GPT-4o-mini Search Preview","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"OpenAI: GPT-5 Chat","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-2024-05-13":{"id":"openai/gpt-4o-2024-05-13","name":"OpenAI: GPT-4o (2024-05-13)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"OpenAI: GPT-5.3 Chat","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2026-03-04","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"OpenAI: GPT-5.2 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-4-1106-preview":{"id":"openai/gpt-4-1106-preview","name":"OpenAI: GPT-4 Turbo (older v1106)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-4o-audio-preview":{"id":"openai/gpt-4o-audio-preview","name":"OpenAI: GPT-4o Audio","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-15","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"OpenAI: GPT-5 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"OpenAI: GPT-5 Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"OpenAI: GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-02-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14},"limit":{"context":400000,"output":128000}},"openai/gpt-3.5-turbo-16k":{"id":"openai/gpt-3.5-turbo-16k","name":"OpenAI: GPT-3.5 Turbo 16k","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-08-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16385,"output":4096}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"OpenAI: GPT-4 Turbo","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-09-13","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"OpenAI: GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"OpenAI: o3 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"OpenAI: o3 Mini High","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"OpenAI: o4 Mini Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"OpenAI: GPT-5.1 Chat","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI: o4 Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"OpenAI: GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini-2024-07-18":{"id":"openai/gpt-4o-mini-2024-07-18","name":"OpenAI: GPT-4o-mini (2024-07-18)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1-Codex-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-4o-2024-08-06":{"id":"openai/gpt-4o-2024-08-06","name":"OpenAI: GPT-4o (2024-08-06)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-08-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"OpenAI: GPT-5 Image","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":10,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"OpenAI: GPT-5.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/o1":{"id":"openai/o1","name":"OpenAI: o1","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"OpenAI: GPT-5.4 Pro","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"output":128000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"OpenAI: GPT-3.5 Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"output":4096}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"OpenAI: o3 Deep Research","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-06-26","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI: o3 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-20","last_updated":"2026-03-15","modalities":{"input":["pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4-turbo-preview":{"id":"openai/gpt-4-turbo-preview","name":"OpenAI: GPT-4 Turbo Preview","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/o1-pro":{"id":"openai/o1-pro","name":"OpenAI: o1-pro","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"release_date":"2025-03-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"openai/gpt-4":{"id":"openai/gpt-4","name":"OpenAI: GPT-4","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-03-14","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-4-0314":{"id":"openai/gpt-4-0314","name":"OpenAI: GPT-4 (older v0314)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-05-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8191,"output":4096}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"OpenAI: GPT-5 Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"OpenAI: GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-03-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15},"limit":{"context":1050000,"output":128000}},"openai/gpt-audio":{"id":"openai/gpt-audio","name":"OpenAI: GPT Audio","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-4o:extended":{"id":"openai/gpt-4o:extended","name":"OpenAI: GPT-4o (extended)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":18},"limit":{"context":128000,"output":64000}},"openai/gpt-4o-search-preview":{"id":"openai/gpt-4o-search-preview","name":"OpenAI: GPT-4o Search Preview","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"OpenAI: GPT-4.1 Nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1047576,"output":32768}},"openai/o4-mini-high":{"id":"openai/o4-mini-high","name":"OpenAI: o4 Mini High","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-04-17","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4},"limit":{"context":200000,"output":100000}},"openai/o3":{"id":"openai/o3","name":"OpenAI: o3","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"OpenAI: gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":26215}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"OpenAI: GPT-5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":128000}},"openai/gpt-audio-mini":{"id":"openai/gpt-audio-mini","name":"OpenAI: GPT Audio Mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-20","last_updated":"2026-03-15","modalities":{"input":["audio","text"],"output":["audio","text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4},"limit":{"context":128000,"output":16384}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"OpenAI: GPT-4o","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-3.5-turbo-0613":{"id":"openai/gpt-3.5-turbo-0613","name":"OpenAI: GPT-3.5 Turbo (older v0613)","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":4095,"output":4096}},"openai/gpt-5-image-mini":{"id":"openai/gpt-5-image-mini","name":"OpenAI: GPT-5 Image Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-16","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2.5,"output":2},"limit":{"context":400000,"output":128000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"OpenAI: GPT-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"OpenAI: gpt-oss-safeguard-20b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-29","last_updated":"2025-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.037},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI: gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.039,"output":0.19},"limit":{"context":131072,"output":26215}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"OpenAI: GPT-3.5 Turbo Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2023-03-01","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4095,"output":4096}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"OpenAI: GPT-4.1","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"OpenAI: GPT-4.1 Mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"OpenAI: GPT-5.1-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-2024-11-20":{"id":"openai/gpt-4o-2024-11-20","name":"OpenAI: GPT-4o (2024-11-20)","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"amazon/nova-lite-v1":{"id":"amazon/nova-lite-v1","name":"Amazon: Nova Lite 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":300000,"output":5120}},"amazon/nova-pro-v1":{"id":"amazon/nova-pro-v1","name":"Amazon: Nova Pro 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":300000,"output":5120}},"amazon/nova-premier-v1":{"id":"amazon/nova-premier-v1","name":"Amazon: Nova Premier 1.0","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-11-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":32000}},"amazon/nova-2-lite-v1":{"id":"amazon/nova-2-lite-v1","name":"Amazon: Nova 2 Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":65535}},"amazon/nova-micro-v1":{"id":"amazon/nova-micro-v1","name":"Amazon: Nova Micro 1.0","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14},"limit":{"context":128000,"output":5120}},"z-ai/glm-4.7":{"id":"z-ai/glm-4.7","name":"Z.ai: GLM 4.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.38,"output":1.98,"cache_read":0.2},"limit":{"context":202752,"output":65535}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"Z.ai: GLM 5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":2.3},"limit":{"context":202752,"output":131072}},"z-ai/glm-4-32b":{"id":"z-ai/glm-4-32b","name":"Z.ai: GLM 4 32B ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"z-ai/glm-5.1":{"id":"z-ai/glm-5.1","name":"Z.ai: GLM 5.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.26,"output":3.96},"limit":{"context":202752,"output":131072}},"z-ai/glm-4.5":{"id":"z-ai/glm-4.5","name":"Z.ai: GLM 4.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.175},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.5-air":{"id":"z-ai/glm-4.5-air","name":"Z.ai: GLM 4.5 Air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.85,"cache_read":0.025},"limit":{"context":131072,"output":98304}},"z-ai/glm-4.5v":{"id":"z-ai/glm-4.5v","name":"Z.ai: GLM 4.5V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":65536,"output":16384}},"z-ai/glm-4.6":{"id":"z-ai/glm-4.6","name":"Z.ai: GLM 4.6","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.9,"cache_read":0.175},"limit":{"context":204800,"output":204800}},"z-ai/glm-4.6v":{"id":"z-ai/glm-4.6v","name":"Z.ai: GLM 4.6V","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2026-01-10","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":131072,"output":131072}},"z-ai/glm-4.7-flash":{"id":"z-ai/glm-4.7-flash","name":"Z.ai: GLM 4.7 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":202752,"output":40551}},"baidu/ernie-4.5-vl-424b-a47b":{"id":"baidu/ernie-4.5-vl-424b-a47b","name":"Baidu: ERNIE 4.5 VL 424B A47B ","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.42,"output":1.25},"limit":{"context":123000,"output":16000}},"baidu/ernie-4.5-vl-28b-a3b":{"id":"baidu/ernie-4.5-vl-28b-a3b","name":"Baidu: ERNIE 4.5 VL 28B A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.56},"limit":{"context":30000,"output":8000}},"baidu/ernie-4.5-21b-a3b":{"id":"baidu/ernie-4.5-21b-a3b","name":"Baidu: ERNIE 4.5 21B A3B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-06-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":120000,"output":8000}},"baidu/ernie-4.5-300b-a47b":{"id":"baidu/ernie-4.5-300b-a47b","name":"Baidu: ERNIE 4.5 300B A47B ","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06-30","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":123000,"output":12000}},"baidu/ernie-4.5-21b-a3b-thinking":{"id":"baidu/ernie-4.5-21b-a3b-thinking","name":"Baidu: ERNIE 4.5 21B A3B Thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.28},"limit":{"context":131072,"output":65536}},"relace/relace-apply-3":{"id":"relace/relace-apply-3","name":"Relace: Relace Apply 3","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-09-26","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.25},"limit":{"context":256000,"output":128000}},"relace/relace-search":{"id":"relace/relace-search","name":"Relace: Relace Search","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-12-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3},"limit":{"context":256000,"output":128000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"MiniMax: MiniMax M2.7","family":"minimax-m2.7","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax: MiniMax M2","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.255,"output":1,"cache_read":0.03},"limit":{"context":196608,"output":196608}},"minimax/minimax-01":{"id":"minimax/minimax-01","name":"MiniMax: MiniMax-01","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000192,"output":1000192}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax: MiniMax M2.1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.95,"cache_read":0.03},"limit":{"context":196608,"output":39322}},"minimax/minimax-m1":{"id":"minimax/minimax-m1","name":"MiniMax: MiniMax M1","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.2},"limit":{"context":1000000,"output":40000}},"minimax/minimax-m2-her":{"id":"minimax/minimax-m2-her","name":"MiniMax: MiniMax M2-her","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":65536,"output":2048}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax: MiniMax M2.5","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.2,"cache_read":0.029},"limit":{"context":196608,"output":196608}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen: Qwen3 235B A22B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.455,"output":1.82,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen: Qwen3.5-122B-A10B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.08},"limit":{"context":262144,"output":65536}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen: Qwen2.5 Coder 7B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":32768,"output":6554}},"qwen/qwen3-coder-plus":{"id":"qwen/qwen3-coder-plus","name":"Qwen: Qwen3 Coder Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3.25,"cache_read":0.2},"limit":{"context":1000000,"output":65536}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen: Qwen3.5-27B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.195,"output":1.56},"limit":{"context":262144,"output":65536}},"qwen/qwen3-235b-a22b-2507":{"id":"qwen/qwen3-235b-a22b-2507","name":"Qwen: Qwen3 235B A22B Instruct 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.071,"output":0.1},"limit":{"context":262144,"output":52429}},"qwen/qwen3-8b":{"id":"qwen/qwen3-8b","name":"Qwen: Qwen3 8B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.05},"limit":{"context":40960,"output":8192}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen: Qwen3.5 397B A17B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.39,"output":2.34},"limit":{"context":262144,"output":65536}},"qwen/qwen-vl-plus":{"id":"qwen/qwen-vl-plus","name":"Qwen: Qwen VL Plus","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-01-25","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1365,"output":0.4095,"cache_read":0.042},"limit":{"context":131072,"output":8192}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen: Qwen3 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.24,"cache_read":0.04},"limit":{"context":40960,"output":40960}},"qwen/qwen2.5-vl-72b-instruct":{"id":"qwen/qwen2.5-vl-72b-instruct","name":"Qwen: Qwen2.5 VL 72B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-01","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"qwen/qwen-max":{"id":"qwen/qwen-max","name":"Qwen: Qwen-Max ","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-03","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.04,"output":4.16,"cache_read":0.32},"limit":{"context":32768,"output":8192}},"qwen/qwen-plus":{"id":"qwen/qwen-plus","name":"Qwen: Qwen-Plus","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-01-25","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-vl-235b-a22b-thinking":{"id":"qwen/qwen3-vl-235b-a22b-thinking","name":"Qwen: Qwen3 VL 235B A22B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":2.6},"limit":{"context":131072,"output":32768}},"qwen/qwen3-vl-30b-a3b-thinking":{"id":"qwen/qwen3-vl-30b-a3b-thinking","name":"Qwen: Qwen3 VL 30B A3B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":1.56},"limit":{"context":131072,"output":32768}},"qwen/qwen2.5-vl-32b-instruct":{"id":"qwen/qwen2.5-vl-32b-instruct","name":"Qwen: Qwen2.5 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-24","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.025},"limit":{"context":128000,"output":16384}},"qwen/qwen3-vl-8b-instruct":{"id":"qwen/qwen3-vl-8b-instruct","name":"Qwen: Qwen3 VL 8B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":32768}},"qwen/qwen3.5-flash-02-23":{"id":"qwen/qwen3.5-flash-02-23","name":"Qwen: Qwen3.5-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-max":{"id":"qwen/qwen3-max","name":"Qwen: Qwen3 Max","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"qwen/qwen-plus-2025-07-28":{"id":"qwen/qwen-plus-2025-07-28","name":"Qwen: Qwen Plus 0728","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen3-30b-a3b-instruct-2507":{"id":"qwen/qwen3-30b-a3b-instruct-2507","name":"Qwen: Qwen3 30B A3B Instruct 2507","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.3,"cache_read":0.04},"limit":{"context":262144,"output":262144}},"qwen/qwen3-vl-32b-instruct":{"id":"qwen/qwen3-vl-32b-instruct","name":"Qwen: Qwen3 VL 32B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.104,"output":0.416},"limit":{"context":131072,"output":32768}},"qwen/qwen3-235b-a22b-thinking-2507":{"id":"qwen/qwen3-235b-a22b-thinking-2507","name":"Qwen: Qwen3 235B A22B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.6},"limit":{"context":262144,"output":262144}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen: Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0975,"output":0.78},"limit":{"context":131072,"output":32768}},"qwen/qwen3-30b-a3b-thinking-2507":{"id":"qwen/qwen3-30b-a3b-thinking-2507","name":"Qwen: Qwen3 30B A3B Thinking 2507","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.051,"output":0.34},"limit":{"context":32768,"output":6554}},"qwen/qwen-2.5-7b-instruct":{"id":"qwen/qwen-2.5-7b-instruct","name":"Qwen: Qwen2.5 7B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.1},"limit":{"context":32768,"output":6554}},"qwen/qwen-vl-max":{"id":"qwen/qwen-vl-max","name":"Qwen: Qwen VL Max","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-04-08","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-flash":{"id":"qwen/qwen3-coder-flash","name":"Qwen: Qwen3 Coder Flash","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.195,"output":0.975,"cache_read":0.06},"limit":{"context":1000000,"output":65536}},"qwen/qwen3-30b-a3b":{"id":"qwen/qwen3-30b-a3b","name":"Qwen: Qwen3 30B A3B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.28,"cache_read":0.03},"limit":{"context":40960,"output":40960}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwen: QwQ 32B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2024-11-28","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.4},"limit":{"context":32768,"output":32768}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen: Qwen3 Next 80B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":131072,"output":52429}},"qwen/qwen3-coder-next":{"id":"qwen/qwen3-coder-next","name":"Qwen: Qwen3 Coder Next","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.75,"cache_read":0.035},"limit":{"context":262144,"output":65536}},"qwen/qwen-2.5-coder-32b-instruct":{"id":"qwen/qwen-2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32B Instruct","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-11-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2,"cache_read":0.015},"limit":{"context":32768,"output":8192}},"qwen/qwen3-vl-30b-a3b-instruct":{"id":"qwen/qwen3-vl-30b-a3b-instruct","name":"Qwen: Qwen3 VL 30B A3B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-30b-a3b-instruct":{"id":"qwen/qwen3-coder-30b-a3b-instruct","name":"Qwen: Qwen3 Coder 30B A3B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"qwen/qwen3-max-thinking":{"id":"qwen/qwen3-max-thinking","name":"Qwen: Qwen3 Max Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.78,"output":3.9},"limit":{"context":262144,"output":32768}},"qwen/qwen-turbo":{"id":"qwen/qwen-turbo","name":"Qwen: Qwen-Turbo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-01","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0325,"output":0.13,"cache_read":0.01},"limit":{"context":131072,"output":8192}},"qwen/qwen3-vl-235b-a22b-instruct":{"id":"qwen/qwen3-vl-235b-a22b-instruct","name":"Qwen: Qwen3 VL 235B A22B Instruct","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2026-01-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.88,"cache_read":0.11},"limit":{"context":262144,"output":52429}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen: Qwen3 Coder 480B A35B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1,"cache_read":0.022},"limit":{"context":262144,"output":52429}},"qwen/qwen-2.5-vl-7b-instruct":{"id":"qwen/qwen-2.5-vl-7b-instruct","name":"Qwen: Qwen2.5-VL 7B Instruct","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-08-28","last_updated":"2024-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":32768,"output":6554}},"qwen/qwen3.5-9b":{"id":"qwen/qwen3.5-9b","name":"Qwen: Qwen3.5-9B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":32768}},"qwen/qwen3-vl-8b-thinking":{"id":"qwen/qwen3-vl-8b-thinking","name":"Qwen: Qwen3 VL 8B Thinking","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.117,"output":1.365},"limit":{"context":131072,"output":32768}},"qwen/qwen-plus-2025-07-28:thinking":{"id":"qwen/qwen-plus-2025-07-28:thinking","name":"Qwen: Qwen Plus 0728 (thinking)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.78},"limit":{"context":1000000,"output":32768}},"qwen/qwen-2.5-72b-instruct":{"id":"qwen/qwen-2.5-72b-instruct","name":"Qwen2.5 72B Instruct","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.39},"limit":{"context":32768,"output":16384}},"qwen/qwen3-14b":{"id":"qwen/qwen3-14b","name":"Qwen: Qwen3 14B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.025},"limit":{"context":40960,"output":40960}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen: Qwen3.5-35B-A3B","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1625,"output":1.3},"limit":{"context":262144,"output":65536}},"qwen/qwen3.5-plus-02-15":{"id":"qwen/qwen3.5-plus-02-15","name":"Qwen: Qwen3.5 Plus 2026-02-15","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-03-15","modalities":{"input":["image","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.26,"output":1.56},"limit":{"context":1000000,"output":65536}},"alfredpros/codellama-7b-instruct-solidity":{"id":"alfredpros/codellama-7b-instruct-solidity","name":"AlfredPros: CodeLLaMa 7B Instruct Solidity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":1.2},"limit":{"context":4096,"output":4096}},"kwaipilot/kat-coder-pro":{"id":"kwaipilot/kat-coder-pro","name":"Kwaipilot: KAT-Coder-Pro V1","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.207,"output":0.828,"cache_read":0.0414},"limit":{"context":256000,"output":128000}},"google/gemini-2.5-pro-preview-05-06":{"id":"google/gemini-2.5-pro-preview-05-06","name":"Google: Gemini 2.5 Pro Preview 05-06","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-06","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65535}},"google/gemini-3.1-pro-preview-customtools":{"id":"google/gemini-3.1-pro-preview-customtools","name":"Google: Gemini 3.1 Pro Preview Custom Tools","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Google: Gemini 2.5 Flash Lite Preview 09-2025","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash-001":{"id":"google/gemini-2.0-flash-001","name":"Google: Gemini 2.0 Flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"cache_write":0.083333},"limit":{"context":1048576,"output":8192}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Google: Gemma 3n 4B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":32768,"output":6554}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Google: Gemini 3.1 Flash Lite Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"reasoning":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Google: Gemini 3.1 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Google: Gemini 3 Flash Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"reasoning":3,"cache_read":0.05,"cache_write":0.083333},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Google: Gemini 3 Pro Preview","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-18","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12,"cache_read":0.2,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Google: Gemini 2.5 Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-20","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemma-2-9b-it":{"id":"google/gemma-2-9b-it","name":"Google: Gemma 2 9B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-28","last_updated":"2024-06-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09},"limit":{"context":8192,"output":1639}},"google/gemini-3-pro-image-preview":{"id":"google/gemini-3-pro-image-preview","name":"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-11-20","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":2,"output":12,"reasoning":12},"limit":{"context":65536,"output":32768}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Google: Nano Banana (Gemini 2.5 Flash Image)","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-08","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Google: Gemma 3 12B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.13,"cache_read":0.015},"limit":{"context":131072,"output":131072}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"reasoning":2.5,"cache_read":0.03,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["image","text"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":65536,"output":65536}},"google/gemma-3-4b-it":{"id":"google/gemma-3-4b-it","name":"Google: Gemma 3 4B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-13","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.08},"limit":{"context":131072,"output":19200}},"google/gemini-2.5-pro-preview":{"id":"google/gemini-2.5-pro-preview","name":"Google: Gemini 2.5 Pro Preview 06-05","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-05","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"reasoning":10,"cache_read":0.125,"cache_write":0.375},"limit":{"context":1048576,"output":65536}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Google: Gemma 2 27B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":0.65},"limit":{"context":8192,"output":2048}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Google: Gemma 3 27B","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-12","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.11,"cache_read":0.02},"limit":{"context":128000,"output":65536}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Google: Gemini 2.5 Flash Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-17","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"reasoning":0.4,"cache_read":0.01,"cache_write":0.083333},"limit":{"context":1048576,"output":65535}},"google/gemini-2.0-flash-lite-001":{"id":"google/gemini-2.0-flash-lite-001","name":"Google: Gemini 2.0 Flash Lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-11","last_updated":"2026-03-15","modalities":{"input":["audio","image","pdf","text","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"MoonshotAI: Kimi K2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.2},"limit":{"context":262144,"output":65535}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"MoonshotAI: Kimi K2 0905","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.15},"limit":{"context":131072,"output":26215}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"MoonshotAI: Kimi K2 0711","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131000,"output":26215}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"MoonshotAI: Kimi K2 Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.47,"output":2,"cache_read":0.2},"limit":{"context":131072,"output":65535}},"aion-labs/aion-1.0":{"id":"aion-labs/aion-1.0","name":"AionLabs: Aion-1.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":4,"output":8},"limit":{"context":131072,"output":32768}},"aion-labs/aion-rp-llama-3.1-8b":{"id":"aion-labs/aion-rp-llama-3.1-8b","name":"AionLabs: Aion-RP 1.0 (8B)","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":32768,"output":32768}},"aion-labs/aion-2.0":{"id":"aion-labs/aion-2.0","name":"AionLabs: Aion-2.0","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.6},"limit":{"context":131072,"output":32768}},"aion-labs/aion-1.0-mini":{"id":"aion-labs/aion-1.0-mini","name":"AionLabs: Aion-1.0-Mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-02-05","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":1.4},"limit":{"context":131072,"output":32768}},"thedrummer/unslopnemo-12b":{"id":"thedrummer/unslopnemo-12b","name":"TheDrummer: UnslopNemo 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-11-09","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":0.4},"limit":{"context":32768,"output":32768}},"thedrummer/cydonia-24b-v4.1":{"id":"thedrummer/cydonia-24b-v4.1","name":"TheDrummer: Cydonia 24B V4.1","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-27","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":131072,"output":131072}},"thedrummer/skyfall-36b-v2":{"id":"thedrummer/skyfall-36b-v2","name":"TheDrummer: Skyfall 36B V2","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-11","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":0.8},"limit":{"context":32768,"output":32768}},"thedrummer/rocinante-12b":{"id":"thedrummer/rocinante-12b","name":"TheDrummer: Rocinante 12B","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-09-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.43},"limit":{"context":32768,"output":32768}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Anthropic: Claude Opus 4.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.7-sonnet:thinking":{"id":"anthropic/claude-3.7-sonnet:thinking","name":"Anthropic: Claude 3.7 Sonnet (thinking)","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Anthropic: Claude Opus 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Anthropic: Claude 3.5 Sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30},"limit":{"context":200000,"output":8192}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Anthropic: Claude Sonnet 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Anthropic: Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-11-24","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Anthropic: Claude 3 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Anthropic: Claude Opus 4","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2026-03-15","modalities":{"input":["image","pdf","text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Anthropic: Claude Haiku 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Anthropic: Claude Sonnet 4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":1000000,"output":128000}},"switchpoint/router":{"id":"switchpoint/router","name":"Switchpoint Router","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2025-07-12","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":3.4},"limit":{"context":131072,"output":32768}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"Xiaomi: MiMo-V2-Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-14","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.29,"cache_read":0.045},"limit":{"context":262144,"output":65536}},"bytedance/ui-tars-1.5-7b":{"id":"bytedance/ui-tars-1.5-7b","name":"ByteDance: UI-TARS 7B ","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-07-23","last_updated":"2026-03-15","modalities":{"input":["image","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.2},"limit":{"context":128000,"output":2048}},"tngtech/deepseek-r1t2-chimera":{"id":"tngtech/deepseek-r1t2-chimera","name":"TNG: DeepSeek R1T2 Chimera","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-08","last_updated":"2025-07-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.85,"cache_read":0.125},"limit":{"context":163840,"output":163840}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"Meituan: LongCat Flash Chat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-30","last_updated":"2026-03-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8,"cache_read":0.2},"limit":{"context":131072,"output":131072}}}},"sap-ai-core":{"id":"sap-ai-core","env":["AICORE_SERVICE_KEY"],"npm":"@jerome-benoit/sap-ai-provider-v2","name":"SAP AI Core","doc":"https://help.sap.com/docs/sap-ai-core","models":{"anthropic--claude-4.6-opus":{"id":"anthropic--claude-4.6-opus","name":"anthropic--claude-4.6-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic--claude-3-haiku":{"id":"anthropic--claude-3-haiku","name":"anthropic--claude-3-haiku","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic--claude-3-opus":{"id":"anthropic--claude-3-opus","name":"anthropic--claude-3-opus","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"gpt-5-mini":{"id":"gpt-5-mini","name":"gpt-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"gpt-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"gemini-2.5-pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":1048576,"output":65536}},"anthropic--claude-3.7-sonnet":{"id":"anthropic--claude-3.7-sonnet","name":"anthropic--claude-3.7-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"sonar-pro":{"id":"sonar-pro","name":"sonar-pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"anthropic--claude-4.5-sonnet":{"id":"anthropic--claude-4.5-sonnet","name":"anthropic--claude-4.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic--claude-4.6-sonnet":{"id":"anthropic--claude-4.6-sonnet","name":"anthropic--claude-4.6-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"sonar-deep-research":{"id":"sonar-deep-research","name":"sonar-deep-research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-02-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"reasoning":3},"limit":{"context":128000,"output":32768}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"gemini-2.5-flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-25","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"input_audio":1},"limit":{"context":1048576,"output":65536}},"anthropic--claude-4.5-opus":{"id":"anthropic--claude-4.5-opus","name":"anthropic--claude-4.5-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"sonar":{"id":"sonar","name":"sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-09-01","release_date":"2024-01-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":128000,"output":4096}},"anthropic--claude-4-opus":{"id":"anthropic--claude-4-opus","name":"anthropic--claude-4-opus","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic--claude-3-sonnet":{"id":"anthropic--claude-3-sonnet","name":"anthropic--claude-3-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":4096}},"anthropic--claude-4-sonnet":{"id":"anthropic--claude-4-sonnet","name":"anthropic--claude-4-sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"gemini-2.5-flash-lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"anthropic--claude-4.5-haiku":{"id":"anthropic--claude-4.5-haiku","name":"anthropic--claude-4.5-haiku","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"gpt-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"gpt-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"gpt-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"anthropic--claude-3.5-sonnet":{"id":"anthropic--claude-3.5-sonnet","name":"anthropic--claude-3.5-sonnet","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}}}},"morph":{"id":"morph","env":["MORPH_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.morphllm.com/v1","name":"Morph","doc":"https://docs.morphllm.com/api-reference/introduction","models":{"auto":{"id":"auto","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":1.55},"limit":{"context":32000,"output":32000}},"morph-v3-fast":{"id":"morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"morph-v3-large":{"id":"morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}}}},"cloudflare-ai-gateway":{"id":"cloudflare-ai-gateway","env":["CLOUDFLARE_API_TOKEN","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_GATEWAY_ID"],"npm":"ai-gateway-provider","name":"Cloudflare AI Gateway","doc":"https://developers.cloudflare.com/ai-gateway/","models":{"workers-ai/@cf/myshell-ai/melotts":{"id":"workers-ai/@cf/myshell-ai/melotts","name":"MyShell MeloTTS","family":"melotts","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/ibm-granite/granite-4.0-h-micro":{"id":"workers-ai/@cf/ibm-granite/granite-4.0-h-micro","name":"IBM Granite 4.0 H Micro","family":"granite","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.017,"output":0.11},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/huggingface/distilbert-sst-2-int8":{"id":"workers-ai/@cf/huggingface/distilbert-sst-2-int8","name":"DistilBERT SST-2 INT8","family":"distilbert","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.026,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/zai-org/glm-4.7-flash":{"id":"workers-ai/@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"workers-ai/@cf/pipecat-ai/smart-turn-v2":{"id":"workers-ai/@cf/pipecat-ai/smart-turn-v2","name":"Pipecat Smart Turn v2","family":"smart-turn","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct":{"id":"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct","name":"Mistral Small 3.1 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/facebook/bart-large-cnn":{"id":"workers-ai/@cf/facebook/bart-large-cnn","name":"BART Large CNN","family":"bart","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"id":"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it","name":"Gemma SEA-LION v4 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{"id":"workers-ai/@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"id":"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b","name":"DeepSeek R1 Distill Qwen 32B","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":4.88},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-20b":{"id":"workers-ai/@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/openai/gpt-oss-120b":{"id":"workers-ai/@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1":{"id":"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1","name":"Mistral 7B Instruct v0.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.19},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct-awq","name":"Llama 3 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-guard-3-8b":{"id":"workers-ai/@cf/meta/llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":0.03},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/m2m100-1.2b":{"id":"workers-ai/@cf/meta/m2m100-1.2b","name":"M2M100 1.2B","family":"m2m","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-2-7b-chat-fp16":{"id":"workers-ai/@cf/meta/llama-2-7b-chat-fp16","name":"Llama 2 7B Chat FP16","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":6.67},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049,"output":0.68},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"id":"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast","name":"Llama 3.3 70B Instruct FP8 Fast","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":2.25},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-1b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.027,"output":0.2},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8","name":"Llama 3.1 8B Instruct FP8","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.29},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.2-3b-instruct":{"id":"workers-ai/@cf/meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq","name":"Llama 3.1 8B Instruct AWQ","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0.27},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.83},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/meta/llama-3.1-8b-instruct":{"id":"workers-ai/@cf/meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.8299999999999998},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct":{"id":"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct","name":"Qwen 2.5 Coder 32B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-embedding-0.6b":{"id":"workers-ai/@cf/qwen/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwq-32b":{"id":"workers-ai/@cf/qwen/qwq-32b","name":"QwQ 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.66,"output":1},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8":{"id":"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.051,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/google/gemma-3-12b-it":{"id":"workers-ai/@cf/google/gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":0.56},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/moonshotai/kimi-k2.5":{"id":"workers-ai/@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}},"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B":{"id":"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B","name":"IndicTrans2 EN-Indic 1B","family":"indictrans","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":0.34},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/pfnet/plamo-embedding-1b":{"id":"workers-ai/@cf/pfnet/plamo-embedding-1b","name":"PLaMo Embedding 1B","family":"plamo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.019,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-small-en-v1.5":{"id":"workers-ai/@cf/baai/bge-small-en-v1.5","name":"BGE Small EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-large-en-v1.5":{"id":"workers-ai/@cf/baai/bge-large-en-v1.5","name":"BGE Large EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-reranker-base":{"id":"workers-ai/@cf/baai/bge-reranker-base","name":"BGE Reranker Base","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-09","last_updated":"2025-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.0031,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-base-en-v1.5":{"id":"workers-ai/@cf/baai/bge-base-en-v1.5","name":"BGE Base EN v1.5","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.067,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/baai/bge-m3":{"id":"workers-ai/@cf/baai/bge-m3","name":"BGE M3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.012,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-en":{"id":"workers-ai/@cf/deepgram/aura-2-en","name":"Deepgram Aura 2 (EN)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/aura-2-es":{"id":"workers-ai/@cf/deepgram/aura-2-es","name":"Deepgram Aura 2 (ES)","family":"aura","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"workers-ai/@cf/deepgram/nova-3":{"id":"workers-ai/@cf/deepgram/nova-3","name":"Deepgram Nova 3","family":"nova","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/gpt-4":{"id":"openai/gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"ai-gateway-provider"}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"ai-gateway-provider"}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-5-haiku":{"id":"anthropic/claude-3-5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3-sonnet":{"id":"anthropic/claude-3-sonnet","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}}}},"github-copilot":{"id":"github-copilot","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.githubcopilot.com","name":"GitHub Copilot","doc":"https://docs.github.com/en/copilot","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-12-04","last_updated":"2025-12-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"claude-opus-4.6":{"id":"claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":64000}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1-Codex-mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":216000,"input":128000,"output":16000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-27","last_updated":"2025-08-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":128000,"output":64000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":264000,"input":128000,"output":64000}},"claude-sonnet-4.5":{"id":"claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"claude-opus-41":{"id":"claude-opus-41","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":80000,"output":16000}},"claude-opus-4.5":{"id":"claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":160000,"input":128000,"output":32000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":4096}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"claude-haiku-4.5":{"id":"claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":144000,"input":128000,"output":32000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"input":64000,"output":16384}},"claude-sonnet-4.6":{"id":"claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"input":128000,"output":32000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":128000,"output":128000}}}},"mixlayer":{"id":"mixlayer","env":["MIXLAYER_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://models.mixlayer.ai/v1","name":"Mixlayer","doc":"https://docs.mixlayer.com","models":{"qwen/qwen3.5-122b-a10b":{"id":"qwen/qwen3.5-122b-a10b","name":"Qwen3.5 122B A10B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":3.2},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-27b":{"id":"qwen/qwen3.5-27b","name":"Qwen3.5 27B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":2.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-9b":{"id":"qwen/qwen3.5-9b","name":"Qwen3.5 9B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.4},"limit":{"context":262144,"output":262144}},"qwen/qwen3.5-35b-a3b":{"id":"qwen/qwen3.5-35b-a3b","name":"Qwen3.5 35B A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.3},"limit":{"context":262144,"output":262144}}}},"xiaomi-token-plan-sgp":{"id":"xiaomi-token-plan-sgp","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://token-plan-sgp.xiaomimimo.com/v1","name":"Xiaomi Token Plan (Singapore)","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}},"mimo-v2-tts":{"id":"mimo-v2-tts","name":"MiMo-V2-TTS","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["audio"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":16000}},"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":128000}}}},"zai":{"id":"zai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/paas/v4","name":"Z.AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":4.4,"cache_read":0.26,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}}}},"opencode":{"id":"opencode","env":["OPENCODE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://opencode.ai/zen/v1","name":"OpenCode Zen","doc":"https://opencode.ai/docs/zen","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.08},"limit":{"context":262144,"output":65536}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":204800,"output":131072}},"glm-4.7-free":{"id":"glm-4.7-free","name":"GLM-4.7 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"kimi-k2.5-free":{"id":"kimi-k2.5-free","name":"Kimi K2.5 Free","family":"kimi-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"minimax-m2.5-free":{"id":"minimax-m2.5-free","name":"MiniMax M2.5 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"big-pickle":{"id":"big-pickle","name":"Big Pickle","family":"big-pickle","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-10-17","last_updated":"2025-10-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-3-5-haiku":{"id":"claude-3-5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":204800,"output":131072}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536},"provider":{"npm":"@ai-sdk/google"}},"trinity-large-preview-free":{"id":"trinity-large-preview-free","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-01-28","last_updated":"2026-01-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072},"status":"deprecated"},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"glm-5-free":{"id":"glm-5-free","name":"GLM-5 Free","family":"glm-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated"},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.1-free":{"id":"minimax-m2.1-free","name":"MiniMax M2.1 Free","family":"minimax-free","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":131072},"status":"deprecated","provider":{"npm":"@ai-sdk/anthropic"}},"qwen3.6-plus-free":{"id":"qwen3.6-plus-free","name":"Qwen3.6 Plus Free","family":"qwen-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-30","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1048576,"output":64000},"status":"deprecated"},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.1},"limit":{"context":204800,"output":131072},"status":"deprecated"},"gemini-3-pro":{"id":"gemini-3-pro","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536},"status":"deprecated","provider":{"npm":"@ai-sdk/google"}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"grok-code":{"id":"grok-code","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-20","last_updated":"2025-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":256000,"output":256000},"status":"deprecated"},"mimo-v2-flash-free":{"id":"mimo-v2-flash-free","name":"MiMo V2 Flash Free","family":"mimo-flash-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":65536},"status":"deprecated"},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":128000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic"}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic"}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":262144,"output":65536},"status":"deprecated"},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"mimo-v2-pro-free":{"id":"mimo-v2-pro-free","name":"MiMo V2 Pro Free","family":"mimo-pro-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1048576,"output":64000},"status":"deprecated"},"nemotron-3-super-free":{"id":"nemotron-3-super-free","name":"Nemotron 3 Super Free","family":"nemotron-free","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":204800,"output":128000}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2.5,"cache_read":0.4},"limit":{"context":262144,"output":262144},"status":"deprecated"},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.07,"output":8.5,"cache_read":0.107},"limit":{"context":400000,"input":272000,"output":128000},"provider":{"npm":"@ai-sdk/openai"}},"mimo-v2-omni-free":{"id":"mimo-v2-omni-free","name":"MiMo V2 Omni Free","family":"mimo-omni-free","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":262144,"output":64000},"status":"deprecated"}}},"stepfun":{"id":"stepfun","env":["STEPFUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.stepfun.com/v1","name":"StepFun","doc":"https://platform.stepfun.com/docs/zh/overview/concept","models":{"step-3.5-flash-2603":{"id":"step-3.5-flash-2603","name":"Step 3.5 Flash 2603","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"input":256000,"output":256000}},"step-1-32k":{"id":"step-1-32k","name":"Step 1 (32K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.05,"output":9.59,"cache_read":0.41},"limit":{"context":32768,"input":32768,"output":32768}},"step-3.5-flash":{"id":"step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-29","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.096,"output":0.288,"cache_read":0.019},"limit":{"context":256000,"input":256000,"output":256000}},"step-2-16k":{"id":"step-2-16k","name":"Step 2 (16K)","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-01","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5.21,"output":16.44,"cache_read":1.04},"limit":{"context":16384,"input":16384,"output":8192}}}},"nebius":{"id":"nebius","env":["NEBIUS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.tokenfactory.nebius.com/v1","name":"Nebius Token Factory","doc":"https://docs.tokenfactory.nebius.com/","models":{"NousResearch/Hermes-4-70B":{"id":"NousResearch/Hermes-4-70B","name":"Hermes-4-70B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"reasoning":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"NousResearch/Hermes-4-405B":{"id":"NousResearch/Hermes-4-405B","name":"Hermes-4-405B","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"reasoning":3,"cache_read":0.1,"cache_write":1.25},"limit":{"context":128000,"input":120000,"output":8192}},"black-forest-labs/flux-schnell":{"id":"black-forest-labs/flux-schnell","name":"FLUX.1-schnell","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}},"black-forest-labs/flux-dev":{"id":"black-forest-labs/flux-dev","name":"FLUX.1-dev","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-07","release_date":"2024-08-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":77,"input":77,"output":0}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3-30B-A3B-Thinking-2507","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"reasoning":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen3-32B-fast":{"id":"Qwen/Qwen3-32B-fast","name":"Qwen3-32B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3-Embedding-8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2025-10","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3-30B-A3B-Instruct-2507","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen3-32B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":128000,"input":120000,"output":8192}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":8192}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen3-Next-80B-A3B-Thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-28","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.2,"reasoning":1.2,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":120000,"output":16384}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.8},"limit":{"context":262144,"output":66536}},"Qwen/Qwen2.5-Coder-7B-fast":{"id":"Qwen/Qwen2.5-Coder-7B-fast","name":"Qwen2.5-Coder-7B (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-19","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":8192}},"PrimeIntellect/INTELLECT-3":{"id":"PrimeIntellect/INTELLECT-3","name":"INTELLECT-3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-25","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":120000,"output":8192}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"GLM-4.5","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"GLM-4.5-Air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-11-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.2,"cache_read":0.02,"cache_write":0.25},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-4.7-FP8":{"id":"zai-org/GLM-4.7-FP8","name":"GLM-4.7 (FP8)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2,"cache_read":0.04,"cache_write":0.5},"limit":{"context":128000,"input":124000,"output":4096}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-01","last_updated":"2026-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.1,"cache_write":1},"limit":{"context":200000,"input":200000,"output":16384}},"BAAI/bge-en-icl":{"id":"BAAI/bge-en-icl","name":"BGE-ICL","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}},"BAAI/bge-multilingual-gemma2":{"id":"BAAI/bge-multilingual-gemma2","name":"bge-multilingual-gemma2","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2024-06","release_date":"2024-07-30","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":8192,"input":8192,"output":0}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4,"cache_read":0.013,"cache_write":0.16},"limit":{"context":128000,"input":120000,"output":8192}},"meta-llama/Meta-Llama-3.1-8B-Instruct-fast":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct-fast","name":"Meta-Llama-3.1-8B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.03},"limit":{"context":128000,"input":120000,"output":4096}},"meta-llama/Llama-3.3-70B-Instruct-fast":{"id":"meta-llama/Llama-3.3-70B-Instruct-fast","name":"Llama-3.3-70B-Instruct (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-12-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.75,"cache_read":0.025,"cache_write":0.31},"limit":{"context":128000,"input":120000,"output":8192}},"meta-llama/Llama-Guard-3-8B":{"id":"meta-llama/Llama-Guard-3-8B","name":"Llama-Guard-3-8B","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2024-04","release_date":"2024-04-18","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":1024}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"Meta-Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-07-23","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":128000,"input":120000,"output":4096}},"nvidia/Nemotron-Nano-V2-12b":{"id":"nvidia/Nemotron-Nano-V2-12b","name":"Nemotron-Nano-V2-12b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2,"cache_read":0.007,"cache_write":0.08},"limit":{"context":32000,"input":30000,"output":4096}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron-3-Super-120B-A12B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"input":256000,"output":32768}},"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1":{"id":"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":4096}},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B":{"id":"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B","name":"Nemotron-3-Nano-30B-A3B","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24,"cache_read":0.006,"cache_write":0.075},"limit":{"context":32000,"input":30000,"output":4096}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek-V3-0324","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5,"cache_read":0.05,"cache_write":0.1875},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-V3-0324-fast":{"id":"deepseek-ai/DeepSeek-V3-0324-fast","name":"DeepSeek-V3-0324 (Fast)","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":2.25,"cache_read":0.075,"cache_write":0.28125},"limit":{"context":128000,"input":120000,"output":8192}},"deepseek-ai/DeepSeek-R1-0528-fast":{"id":"deepseek-ai/DeepSeek-R1-0528-fast","name":"DeepSeek R1 0528 Fast","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":8192}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek-R1-0528","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-15","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4,"reasoning":2.4,"cache_read":0.08,"cache_write":1},"limit":{"context":128000,"input":120000,"output":32768}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek-V3.2","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45,"reasoning":0.45,"cache_read":0.03,"cache_write":0.375},"limit":{"context":163000,"input":160000,"output":16384}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2,"cache_read":0.005,"cache_write":0.06},"limit":{"context":128000,"input":124000,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-01-10","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6,"reasoning":0.6,"cache_read":0.015,"cache_write":0.18},"limit":{"context":128000,"input":124000,"output":8192}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma-2-2b-it","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-07-31","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.06,"cache_read":0.002,"cache_write":0.025},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-2-9b-it-fast":{"id":"google/gemma-2-9b-it-fast","name":"Gemma-2-9b-it (Fast)","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.09,"cache_read":0.003,"cache_write":0.0375},"limit":{"context":8192,"input":8000,"output":4096}},"google/gemma-3-27b-it-fast":{"id":"google/gemma-3-27b-it-fast","name":"Gemma-3-27b-it (Fast)","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6,"cache_read":0.02,"cache_write":0.25},"limit":{"context":110000,"input":100000,"output":8192}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27b-it","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-20","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01,"cache_write":0.125},"limit":{"context":110000,"input":100000,"output":8192}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi-K2-Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"reasoning":2.5,"cache_read":0.06,"cache_write":0.75},"limit":{"context":128000,"input":120000,"output":16384}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"Kimi-K2-Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-01-05","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.4,"cache_read":0.05,"cache_write":0.625},"limit":{"context":200000,"input":190000,"output":8192}},"moonshotai/Kimi-K2.5-fast":{"id":"moonshotai/Kimi-K2.5-fast","name":"Kimi-K2.5-fast","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-12-15","last_updated":"2026-02-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.5,"reasoning":2.5,"cache_read":0.05,"cache_write":0.625},"limit":{"context":256000,"input":256000,"output":8192}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2026-02-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"reasoning":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":128000,"input":120000,"output":8192}},"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"e5-mistral-7b-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"knowledge":"2023-12","release_date":"2024-01-01","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"input":32768,"output":0}}}},"poe":{"id":"poe","env":["POE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.poe.com/v1","name":"Poe","doc":"https://creator.poe.com/docs/external-applications/openai-compatible-api","models":{"topazlabs-co/topazlabs":{"id":"topazlabs-co/topazlabs","name":"TopazLabs","family":"topazlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":204,"output":0}},"novita/kimi-k2.5":{"id":"novita/kimi-k2.5","name":"kimi-k2.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":262144}},"novita/glm-4.7":{"id":"novita/glm-4.7","name":"glm-4.7","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/glm-5":{"id":"novita/glm-5","name":"glm-5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/minimax-m2.1":{"id":"novita/minimax-m2.1","name":"minimax-m2.1","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-26","last_updated":"2025-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/glm-4.6":{"id":"novita/glm-4.6","name":"GLM-4.6","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"novita/glm-4.6v":{"id":"novita/glm-4.6v","name":"glm-4.6v","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":131000,"output":32768}},"novita/deepseek-v3.2":{"id":"novita/deepseek-v3.2","name":"DeepSeek-V3.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4,"cache_read":0.13},"limit":{"context":128000,"output":0}},"novita/glm-4.7-flash":{"id":"novita/glm-4.7-flash","name":"glm-4.7-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":200000,"output":65500}},"novita/glm-4.7-n":{"id":"novita/glm-4.7-n","name":"glm-4.7-n","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":205000,"output":131072}},"novita/kimi-k2-thinking":{"id":"novita/kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":0}},"fireworks-ai/kimi-k2.5-fw":{"id":"fireworks-ai/kimi-k2.5-fw","name":"Kimi-K2.5-FW","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"input":245760,"output":16384}},"elevenlabs/elevenlabs-v2.5-turbo":{"id":"elevenlabs/elevenlabs-v2.5-turbo","name":"ElevenLabs-v2.5-Turbo","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-28","last_updated":"2024-10-28","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"elevenlabs/elevenlabs-v3":{"id":"elevenlabs/elevenlabs-v3","name":"ElevenLabs-v3","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":128000,"output":0}},"elevenlabs/elevenlabs-music":{"id":"elevenlabs/elevenlabs-music","name":"ElevenLabs-Music","family":"elevenlabs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-29","last_updated":"2025-08-29","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":2000,"output":0}},"cerebras/gpt-oss-120b-cs":{"id":"cerebras/gpt-oss-120b-cs","name":"gpt-oss-120b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/llama-3.1-8b-cs":{"id":"cerebras/llama-3.1-8b-cs","name":"llama-3.1-8b-cs","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-32b-cs":{"id":"cerebras/qwen3-32b-cs","name":"qwen3-32b-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-15","last_updated":"2025-05-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/qwen3-235b-2507-cs":{"id":"cerebras/qwen3-235b-2507-cs","name":"qwen3-235b-2507-cs","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-06","last_updated":"2025-08-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"cerebras/llama-3.3-70b-cs":{"id":"cerebras/llama-3.3-70b-cs","name":"llama-3.3-70b-cs","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-13","last_updated":"2025-05-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"stabilityai/stablediffusionxl":{"id":"stabilityai/stablediffusionxl","name":"StableDiffusionXL","family":"stable-diffusion","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-07-09","last_updated":"2023-07-09","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":200,"output":0}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-22","last_updated":"2025-08-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok-4-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok-4.1-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok-4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":128000}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-4.20-multi-agent":{"id":"xai/grok-4.20-multi-agent","name":"Grok-4.20-Multi-Agent","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":128000,"output":0}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-11","last_updated":"2025-04-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok-4-Fast-Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok-4.1-Fast-Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":2000000,"output":30000}},"runwayml/runway":{"id":"runwayml/runway","name":"Runway","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-11","last_updated":"2024-10-11","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"runwayml/runway-gen-4-turbo":{"id":"runwayml/runway-gen-4-turbo","name":"Runway-Gen-4-Turbo","family":"runway","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-09","last_updated":"2025-05-09","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":256,"output":0}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/sora-2-pro":{"id":"openai/sora-2-pro","name":"Sora-2-Pro","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/chatgpt-4o-latest":{"id":"openai/chatgpt-4o-latest","name":"ChatGPT-4o-Latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":4.5,"output":14},"limit":{"context":128000,"output":8192}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5-Chat","family":"gpt-codex","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":19,"output":150},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-aug":{"id":"openai/gpt-4o-aug","name":"GPT-4o-Aug","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-21","last_updated":"2024-11-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9,"cache_read":1.1},"limit":{"context":128000,"output":8192}},"openai/gpt-4-classic-0314":{"id":"openai/gpt-4-classic-0314","name":"GPT-4-Classic-0314","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-26","last_updated":"2024-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5-mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5-nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.045,"output":0.36,"cache_read":0.0045},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-10","last_updated":"2026-02-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":27},"limit":{"context":128000,"output":4096}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":18,"output":72},"limit":{"context":200000,"output":100000}},"openai/o3-mini-high":{"id":"openai/o3-mini-high","name":"o3-mini-high","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54,"cache_read":0.068},"limit":{"context":124096,"output":4096}},"openai/o4-mini-deep-research":{"id":"openai/o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT-5.4-Mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-12","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":4,"cache_read":0.068},"limit":{"context":400000,"input":272000,"output":128000}},"openai/dall-e-3":{"id":"openai/dall-e-3","name":"DALL-E-3","family":"dall-e","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":800,"output":0}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4,"cache_read":0.25},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT-5.4-Nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":1.1,"cache_read":0.018},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-image-1":{"id":"openai/gpt-image-1","name":"GPT-Image-1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":1.8,"cache_read":0.022},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-image-1-mini":{"id":"openai/gpt-image-1-mini","name":"GPT-Image-1-Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2024-12-18","last_updated":"2024-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":54},"limit":{"context":200000,"output":100000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":27,"output":160},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5-Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-13","last_updated":"2023-09-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":16384,"output":2048}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":9,"output":36,"cache_read":2.2},"limit":{"context":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.99,"output":4},"limit":{"context":200000,"output":100000}},"openai/o1-pro":{"id":"openai/o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":140,"output":540},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-search":{"id":"openai/gpt-4o-search","name":"GPT-4o-Search","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":9},"limit":{"context":128000,"output":8192}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["image"]},"open_weights":false,"cost":{"input":2.2,"output":14,"cache_read":0.22},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5.3-codex-spark":{"id":"openai/gpt-5.3-codex-spark","name":"GPT-5.3-Codex-Spark","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-03-04","last_updated":"2026-03-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-3.5-turbo-raw":{"id":"openai/gpt-3.5-turbo-raw","name":"GPT-3.5-Turbo-Raw","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":1.4},"limit":{"context":4524,"output":2048}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.36,"cache_read":0.022},"limit":{"context":1047576,"output":32768}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":200000,"output":100000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":14,"output":110},"limit":{"context":400000,"output":128000}},"openai/sora-2":{"id":"openai/sora-2","name":"Sora-2","family":"sora","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":0,"output":0}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-instant":{"id":"openai/gpt-5.2-instant","name":"GPT-5.2-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"output":16384}},"openai/gpt-4o-mini-search":{"id":"openai/gpt-4o-mini-search","name":"GPT-4o-mini-Search","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.54},"limit":{"context":128000,"output":8192}},"openai/gpt-image-1.5":{"id":"openai/gpt-image-1.5","name":"gpt-image-1.5","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":128000,"output":0}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5-Turbo-Instruct","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2023-09-20","last_updated":"2023-09-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.4,"output":1.8},"limit":{"context":3500,"output":1024}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.8,"output":7.2,"cache_read":0.45},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1-Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.36,"output":1.4,"cache_read":0.09},"limit":{"context":1047576,"output":32768}},"openai/gpt-4-classic":{"id":"openai/gpt-4-classic","name":"GPT-4-Classic","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-25","last_updated":"2024-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":27,"output":54},"limit":{"context":8192,"output":4096}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.3-instant":{"id":"openai/gpt-5.3-instant","name":"GPT-5.3-Instant","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":13,"cache_read":0.16},"limit":{"context":128000,"input":111616,"output":16384}},"google/veo-3-fast":{"id":"google/veo-3-fast","name":"Veo-3-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-13","last_updated":"2025-10-13","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/veo-3.1-fast":{"id":"google/veo-3.1-fast","name":"Veo-3.1-Fast","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-3.1-pro":{"id":"google/gemini-3.1-pro","name":"Gemini-3.1-Pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"google/imagen-3-fast":{"id":"google/imagen-3-fast","name":"Imagen-3-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-17","last_updated":"2024-10-17","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini-2.0-Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.42},"limit":{"context":990000,"output":8192}},"google/gemini-deep-research":{"id":"google/gemini-deep-research","name":"gemini-deep-research","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6},"limit":{"context":1048576,"output":0}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini-2.5-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.87,"output":7,"cache_read":0.087},"limit":{"context":1065535,"output":65535}},"google/imagen-3":{"id":"google/imagen-3","name":"Imagen-3","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-15","last_updated":"2024-10-15","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/nano-banana":{"id":"google/nano-banana","name":"Nano-Banana","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":65536,"output":0}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini-2.5-Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-04-26","last_updated":"2025-04-26","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.8,"cache_read":0.021},"limit":{"context":1065535,"output":65535}},"google/gemini-3.1-flash-lite":{"id":"google/gemini-3.1-flash-lite","name":"Gemini-3.1-Flash-Lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":1048576,"output":65536}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini-3-Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-07","last_updated":"2025-10-07","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04},"limit":{"context":1048576,"output":65536}},"google/veo-3.1":{"id":"google/veo-3.1","name":"Veo-3.1","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/lyria":{"id":"google/lyria","name":"Lyria","family":"lyria","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-04","last_updated":"2025-06-04","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/imagen-4-ultra":{"id":"google/imagen-4-ultra","name":"Imagen-4-Ultra","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/nano-banana-pro":{"id":"google/nano-banana-pro","name":"Nano-Banana-Pro","family":"nano-banana","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":65536,"output":0}},"google/gemini-3-pro":{"id":"google/gemini-3-pro","name":"Gemini-3-Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-22","last_updated":"2025-10-22","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":1.6,"output":9.6,"cache_read":0.16},"limit":{"context":1048576,"output":65536}},"google/imagen-4-fast":{"id":"google/imagen-4-fast","name":"Imagen-4-Fast","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/veo-3":{"id":"google/veo-3","name":"Veo-3","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini-2.5-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-06-19","last_updated":"2025-06-19","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":1024000,"output":64000}},"google/imagen-4":{"id":"google/imagen-4","name":"Imagen-4","family":"imagen","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemma-4-31b":{"id":"google/gemma-4-31b","name":"Gemma-4-31B","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":8192}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini-2.0-Flash-Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image","video","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.052,"output":0.21},"limit":{"context":990000,"output":8192}},"google/veo-2":{"id":"google/veo-2","name":"Veo-2","family":"veo","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-12-02","last_updated":"2024-12-02","modalities":{"input":["text"],"output":["video"]},"open_weights":false,"limit":{"context":480,"output":0}},"lumalabs/ray2":{"id":"lumalabs/ray2","name":"Ray2","family":"ray","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-20","last_updated":"2025-02-20","modalities":{"input":["text","image"],"output":["video"]},"open_weights":false,"limit":{"context":5000,"output":0}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude-Opus-4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":196608,"output":32000}},"anthropic/claude-sonnet-3.5":{"id":"anthropic/claude-sonnet-3.5","name":"Claude-Sonnet-3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-06-05","last_updated":"2024-06-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-3":{"id":"anthropic/claude-haiku-3","name":"Claude-Haiku-3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-03-09","last_updated":"2024-03-09","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":1.1,"cache_read":0.021,"cache_write":0.26},"limit":{"context":189096,"output":8192}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude-Opus-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":983040,"output":128000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude-Sonnet-4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":64000}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude-Sonnet-4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":32768}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude-Opus-4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-21","last_updated":"2025-11-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":4.3,"output":21,"cache_read":0.43,"cache_write":5.3},"limit":{"context":196608,"output":64000}},"anthropic/claude-sonnet-3.7":{"id":"anthropic/claude-sonnet-3.7","name":"Claude-Sonnet-3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":196608,"output":128000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude-Opus-4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-05-21","last_updated":"2025-05-21","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":13,"output":64,"cache_read":1.3,"cache_write":16},"limit":{"context":192512,"output":28672}},"anthropic/claude-haiku-3.5":{"id":"anthropic/claude-haiku-3.5","name":"Claude-Haiku-3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.68,"output":3.4,"cache_read":0.068,"cache_write":0.85},"limit":{"context":189096,"output":8192}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude-Haiku-4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.85,"output":4.3,"cache_read":0.085,"cache_write":1.1},"limit":{"context":192000,"output":64000}},"anthropic/claude-sonnet-3.5-june":{"id":"anthropic/claude-sonnet-3.5-june","name":"Claude-Sonnet-3.5-June","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-11-18","last_updated":"2024-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":189096,"output":8192}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude-Sonnet-4.6","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.6,"output":13,"cache_read":0.26,"cache_write":3.2},"limit":{"context":983040,"output":128000}},"ideogramai/ideogram":{"id":"ideogramai/ideogram","name":"Ideogram","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-04-03","last_updated":"2024-04-03","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2":{"id":"ideogramai/ideogram-v2","name":"Ideogram-v2","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-21","last_updated":"2024-08-21","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a-turbo":{"id":"ideogramai/ideogram-v2a-turbo","name":"Ideogram-v2a-Turbo","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"ideogramai/ideogram-v2a":{"id":"ideogramai/ideogram-v2a","name":"Ideogram-v2a","family":"ideogram","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":150,"output":0}},"trytako/tako":{"id":"trytako/tako","name":"Tako","family":"tako","attachment":true,"reasoning":false,"tool_call":true,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":2048,"output":0}},"poetools/claude-code":{"id":"poetools/claude-code","name":"claude-code","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"release_date":"2025-11-27","last_updated":"2025-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}}}},"helicone":{"id":"helicone","env":["HELICONE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ai-gateway.helicone.ai/v1","name":"Helicone","doc":"https://helicone.ai/models","models":{"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":40},"limit":{"context":128000,"output":16400}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"xAI Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Google Gemma 2","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-25","last_updated":"2024-06-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.03},"limit":{"context":8192,"output":8192}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Meta Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.39},"limit":{"context":128000,"output":16400}},"llama-4-scout":{"id":"llama-4-scout","name":"Meta Llama 4 Scout 17B 16E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3},"limit":{"context":131072,"output":8192}},"chatgpt-4o-latest":{"id":"chatgpt-4o-latest","name":"OpenAI ChatGPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-14","last_updated":"2024-08-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":128000,"output":16384}},"claude-3.5-sonnet-v2":{"id":"claude-3.5-sonnet-v2","name":"Anthropic: Claude 3.5 Sonnet v2","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"hermes-2-pro-llama-3-8b":{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.14},"limit":{"context":131072,"output":131072}},"claude-3.7-sonnet":{"id":"claude-3.7-sonnet","name":"Anthropic: Claude 3.7 Sonnet","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"llama-prompt-guard-2-22m":{"id":"llama-prompt-guard-2-22m","name":"Meta Llama Prompt Guard 2 22M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"o1-mini":{"id":"o1-mini","name":"OpenAI: o1-mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-4.1-mini-2025-04-14":{"id":"gpt-4.1-mini-2025-04-14","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.13},"limit":{"context":128000,"output":4096}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":40960}},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Meta Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.7899999999999999},"limit":{"context":131072,"output":32678}},"gpt-5-mini":{"id":"gpt-5-mini","name":"OpenAI GPT-5 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"OpenAI GPT-5 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.39999999999999997,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Google Gemini 3 Pro Preview","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.19999999999999998},"limit":{"context":1048576,"output":65536}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Anthropic: Claude 3 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-07","last_updated":"2024-03-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"llama-4-maverick":{"id":"llama-4-maverick","name":"Meta Llama 4 Maverick 17B 128E","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":8192}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Anthropic: Claude Sonnet 4.5 (20250929)","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Google Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.3125,"cache_write":1.25},"limit":{"context":1048576,"output":65536}},"claude-4.5-opus":{"id":"claude-4.5-opus","name":"Anthropic: Claude Opus 4.5","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"xAI Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-17","last_updated":"2025-11-17","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":30000}},"sonar-pro":{"id":"sonar-pro","name":"Perplexity Sonar Pro","family":"sonar-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":4096}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral-Large","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"o3-pro":{"id":"o3-pro","name":"OpenAI o3 Pro","family":"o-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Anthropic: Claude Opus 4.1","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"OpenAI GPT-4o-mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.075},"limit":{"context":128000,"output":16384}},"claude-4.5-haiku":{"id":"claude-4.5-haiku","name":"Anthropic: Claude 4.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"kimi-k2-0711":{"id":"kimi-k2-0711","name":"Kimi K2 (07/11)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5700000000000001,"output":2.3},"limit":{"context":131072,"output":16384}},"o4-mini":{"id":"o4-mini","name":"OpenAI o4 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.275},"limit":{"context":200000,"output":100000}},"sonar-deep-research":{"id":"sonar-deep-research","name":"Perplexity Sonar Deep Research","family":"sonar-deep-research","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Google Gemini 2.5 Flash","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.3},"limit":{"context":1048576,"output":65535}},"deepseek-tng-r1t2-chimera":{"id":"deepseek-tng-r1t2-chimera","name":"DeepSeek TNG R1T2 Chimera","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-02","last_updated":"2025-07-02","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":130000,"output":163840}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"OpenAI: GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.024999999999999998},"limit":{"context":400000,"output":128000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Anthropic: Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"xAI Grok Code Fast 1","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-25","last_updated":"2024-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"gpt-5.1":{"id":"gpt-5.1","name":"OpenAI GPT-5.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"deepseek-reasoner":{"id":"deepseek-reasoner","name":"DeepSeek Reasoner","family":"deepseek-thinking","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":64000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"xAI: Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"o1":{"id":"o1","name":"OpenAI: o1","family":"o","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Meta Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.08},"limit":{"context":131072,"output":32678}},"o3-mini":{"id":"o3-mini","name":"OpenAI o3 Mini","family":"o-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2023-10","release_date":"2023-10-01","last_updated":"2023-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"sonar":{"id":"sonar","name":"Perplexity Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":4096}},"kimi-k2-0905":{"id":"kimi-k2-0905","name":"Kimi K2 (09/05)","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.39999999999999997},"limit":{"context":262144,"output":16384}},"mistral-small":{"id":"mistral-small","name":"Mistral Small","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-02","release_date":"2024-02-26","last_updated":"2024-02-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":75,"output":200},"limit":{"context":128000,"output":128000}},"qwen3-30b-a3b":{"id":"qwen3-30b-a3b","name":"Qwen3 30B A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":41000,"output":41000}},"codex-mini-latest":{"id":"codex-mini-latest","name":"OpenAI Codex Mini Latest","family":"gpt-codex-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"grok-4":{"id":"grok-4","name":"xAI Grok 4","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-09","last_updated":"2024-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":256000,"output":256000}},"qwen3-235b-a22b-thinking":{"id":"qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9000000000000004},"limit":{"context":262144,"output":81920}},"qwen2.5-coder-7b-fast":{"id":"qwen2.5-coder-7b-fast","name":"Qwen2.5 Coder 7B fast","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-15","last_updated":"2024-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.09},"limit":{"context":32000,"output":8192}},"llama-3.1-8b-instruct-turbo":{"id":"llama-3.1-8b-instruct-turbo","name":"Meta Llama 3.1 8B Instruct Turbo","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.03},"limit":{"context":128000,"output":128000}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"Zai GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.44999999999999996,"output":1.5},"limit":{"context":204800,"output":131072}},"gpt-5-codex":{"id":"gpt-5-codex","name":"OpenAI: GPT-5 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Anthropic: Claude Opus 4.1 (20250805)","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"OpenAI GPT-5.1 Chat","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Anthropic: Claude 4.5 Haiku (20251001)","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.09999999999999999,"cache_write":1.25},"limit":{"context":200000,"output":8192}},"sonar-reasoning":{"id":"sonar-reasoning","name":"Perplexity Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":4096}},"claude-opus-4":{"id":"claude-opus-4","name":"Anthropic: Claude Opus 4","family":"claude-opus","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"llama-prompt-guard-2-86m":{"id":"llama-prompt-guard-2-86m","name":"Meta Llama Prompt Guard 2 86M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0.01},"limit":{"context":512,"output":2}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"OpenAI GPT-4.1 Nano","family":"gpt-nano","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998},"limit":{"context":1047576,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.3},"limit":{"context":262144,"output":262144}},"claude-3.5-haiku":{"id":"claude-3.5-haiku","name":"Anthropic: Claude 3.5 Haiku","family":"claude-haiku","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.7999999999999999,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"grok-3-mini":{"id":"grok-3-mini","name":"xAI Grok 3 Mini","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"cache_read":0.075},"limit":{"context":131072,"output":131072}},"o3":{"id":"o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":163840,"output":65536}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"OpenAI GPT-OSS 20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.19999999999999998},"limit":{"context":131072,"output":131072}},"gpt-5-pro":{"id":"gpt-5-pro","name":"OpenAI: GPT-5 Pro","family":"gpt-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":128000,"output":32768}},"llama-guard-4":{"id":"llama-guard-4","name":"Meta Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.21},"limit":{"context":131072,"output":1024}},"gpt-4o":{"id":"gpt-4o","name":"OpenAI GPT-4o","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"qwen3-vl-235b-a22b-instruct":{"id":"qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":256000,"output":16384}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Google Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.09999999999999999,"output":0.39999999999999997,"cache_read":0.024999999999999998,"cache_write":0.09999999999999999},"limit":{"context":1048576,"output":65535}},"qwen3-coder":{"id":"qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.22,"output":0.95},"limit":{"context":262144,"output":16384}},"gpt-5":{"id":"gpt-5","name":"OpenAI GPT-5","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"ernie-4.5-21b-a3b-thinking":{"id":"ernie-4.5-21b-a3b-thinking","name":"Baidu Ernie 4.5 21B A3B Thinking","family":"ernie","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":128000,"output":8000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"OpenAI GPT-OSS 120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"OpenAI GPT-5 Chat Latest","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2024-09","release_date":"2024-09-30","last_updated":"2024-09-30","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":128000,"output":16384}},"claude-4.5-sonnet":{"id":"claude-4.5-sonnet","name":"Anthropic: Claude Sonnet 4.5","family":"claude-sonnet","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.30000000000000004,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"deepseek-v3":{"id":"deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68,"cache_read":0.07},"limit":{"context":128000,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Meta Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0.049999999999999996},"limit":{"context":16384,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"OpenAI GPT-4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.48,"output":2},"limit":{"context":256000,"output":262144}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"OpenAI GPT-4.1 Mini","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.39999999999999997,"output":1.5999999999999999,"cache_read":0.09999999999999999},"limit":{"context":1047576,"output":32768}},"deepseek-v3.1-terminus":{"id":"deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1,"cache_read":0.21600000000000003},"limit":{"context":128000,"output":16384}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"OpenAI: GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":false,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.12500000000000003},"limit":{"context":400000,"output":128000}},"grok-3":{"id":"grok-3","name":"xAI Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":131072}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"xAI Grok 4 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":0.5,"cache_read":0.049999999999999996},"limit":{"context":2000000,"output":2000000}},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Perplexity Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-27","last_updated":"2025-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":4096}}}},"ollama-cloud":{"id":"ollama-cloud","env":["OLLAMA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://ollama.com/v1","name":"Ollama Cloud","doc":"https://docs.ollama.com/cloud","models":{"minimax-m2.7":{"id":"minimax-m2.7","name":"minimax-m2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"gpt-oss:20b":{"id":"gpt-oss:20b","name":"gpt-oss:20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"kimi-k2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"glm-4.7":{"id":"glm-4.7","name":"glm-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"gemma4:31b":{"id":"gemma4:31b","name":"gemma4:31b","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":8192}},"gpt-oss:120b":{"id":"gpt-oss:120b","name":"gpt-oss:120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":32768}},"qwen3.5:397b":{"id":"qwen3.5:397b","name":"qwen3.5:397b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"release_date":"2026-02-15","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":81920}},"deepseek-v3.1:671b":{"id":"deepseek-v3.1:671b","name":"deepseek-v3.1:671b","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-21","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":163840}},"glm-5":{"id":"glm-5","name":"glm-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"qwen3-vl:235b-instruct":{"id":"qwen3-vl:235b-instruct","name":"qwen3-vl:235b-instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":131072}},"gemma3:4b":{"id":"gemma3:4b","name":"gemma3:4b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"gemini-3-flash-preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2026-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":65536}},"ministral-3:14b":{"id":"ministral-3:14b","name":"ministral-3:14b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"minimax-m2":{"id":"minimax-m2","name":"minimax-m2","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-10-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":128000}},"qwen3-next:80b":{"id":"qwen3-next:80b","name":"qwen3-next:80b","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}},"qwen3-vl:235b":{"id":"qwen3-vl:235b","name":"qwen3-vl:235b","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"release_date":"2025-09-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":32768}},"rnj-1:8b":{"id":"rnj-1:8b","name":"rnj-1:8b","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":32768,"output":4096}},"minimax-m2.1":{"id":"minimax-m2.1","name":"minimax-m2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-23","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"glm-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-03-27","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"mistral-large-3:675b":{"id":"mistral-large-3:675b","name":"mistral-large-3:675b","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-02","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"ministral-3:8b":{"id":"ministral-3:8b","name":"ministral-3:8b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"gemma3:12b":{"id":"gemma3:12b","name":"gemma3:12b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"qwen3-coder:480b":{"id":"qwen3-coder:480b","name":"qwen3-coder:480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-22","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"nemotron-3-nano:30b":{"id":"nemotron-3-nano:30b","name":"nemotron-3-nano:30b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-12-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":1048576,"output":131072}},"glm-4.6":{"id":"glm-4.6","name":"glm-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-09-29","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":202752,"output":131072}},"ministral-3:3b":{"id":"ministral-3:3b","name":"ministral-3:3b","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2024-10-22","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":128000}},"gemma3:27b":{"id":"gemma3:27b","name":"gemma3:27b","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"release_date":"2025-07-27","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":131072,"output":131072}},"devstral-2:123b":{"id":"devstral-2:123b","name":"devstral-2:123b","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"cogito-2.1:671b":{"id":"cogito-2.1:671b","name":"cogito-2.1:671b","family":"cogito","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-11-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":32000}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"qwen3-coder-next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2026-02-02","last_updated":"2026-02-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"nemotron-3-super":{"id":"nemotron-3-super","name":"nemotron-3-super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2026-03-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":65536}},"minimax-m2.5":{"id":"minimax-m2.5","name":"minimax-m2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":204800,"output":131072}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"deepseek-v3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-06-15","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":163840,"output":65536}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"kimi-k2-thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"devstral-small-2:24b":{"id":"devstral-small-2:24b","name":"devstral-small-2:24b","family":"devstral","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-12-09","last_updated":"2026-01-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}},"kimi-k2:1t":{"id":"kimi-k2:1t","name":"kimi-k2:1t","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":262144,"output":262144}}}},"zai-coding-plan":{"id":"zai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.z.ai/api/coding/paas/v4","name":"Z.AI Coding Plan","doc":"https://docs.z.ai/devpack/overview","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}}}},"amazon-bedrock":{"id":"amazon-bedrock","env":["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_REGION","AWS_BEARER_TOKEN_BEDROCK"],"npm":"@ai-sdk/amazon-bedrock","name":"Amazon Bedrock","doc":"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html","models":{"anthropic.claude-opus-4-1-20250805-v1:0":{"id":"anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic.claude-3-5-sonnet-20241022-v2:0":{"id":"anthropic.claude-3-5-sonnet-20241022-v2:0","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"openai.gpt-oss-safeguard-120b":{"id":"openai.gpt-oss-safeguard-120b","name":"GPT OSS Safeguard 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"nvidia.nemotron-nano-3-30b":{"id":"nvidia.nemotron-nano-3-30b","name":"NVIDIA Nemotron Nano 3 30B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.24},"limit":{"context":128000,"output":4096}},"meta.llama3-2-90b-instruct-v1:0":{"id":"meta.llama3-2-90b-instruct-v1:0","name":"Llama 3.2 90B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"nvidia.nemotron-super-3-120b":{"id":"nvidia.nemotron-super-3-120b","name":"NVIDIA Nemotron 3 Super 120B A12B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.65},"limit":{"context":262144,"output":131072}},"writer.palmyra-x5-v1:0":{"id":"writer.palmyra-x5-v1:0","name":"Palmyra X5","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":6},"limit":{"context":1040000,"output":8192}},"mistral.ministral-3-8b-instruct":{"id":"mistral.ministral-3-8b-instruct","name":"Ministral 3 8B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-5-sonnet-20240620-v1:0":{"id":"anthropic.claude-3-5-sonnet-20240620-v1:0","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"mistral.ministral-3-3b-instruct":{"id":"mistral.ministral-3-3b-instruct","name":"Ministral 3 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":256000,"output":8192}},"eu.anthropic.claude-opus-4-6-v1":{"id":"eu.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"amazon.nova-premier-v1:0":{"id":"amazon.nova-premier-v1:0","name":"Nova Premier","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":12.5},"limit":{"context":1000000,"output":16384}},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"eu.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"mistral.devstral-2-123b":{"id":"mistral.devstral-2-123b","name":"Devstral 2 123B","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":256000,"output":8192}},"us.anthropic.claude-opus-4-20250514-v1:0":{"id":"us.anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"global.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"global.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"mistral.voxtral-small-24b-2507":{"id":"mistral.voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","family":"mistral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-01","last_updated":"2025-07-01","modalities":{"input":["text","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.35},"limit":{"context":32000,"output":8192}},"google.gemma-3-12b-it":{"id":"google.gemma-3-12b-it","name":"Google Gemma 3 12B","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.049999999999999996,"output":0.09999999999999999},"limit":{"context":131072,"output":8192}},"amazon.nova-pro-v1:0":{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"minimax.minimax-m2":{"id":"minimax.minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204608,"output":128000}},"mistral.pixtral-large-2502-v1:0":{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-08","last_updated":"2025-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":8192}},"meta.llama4-maverick-17b-instruct-v1:0":{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.97},"limit":{"context":1000000,"output":16384}},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"us.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (US)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"amazon.nova-micro-v1:0":{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-sonnet-4-6":{"id":"anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"openai.gpt-oss-20b-1:0":{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"us.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"zai.glm-5":{"id":"zai.glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":101376}},"qwen.qwen3-32b-v1:0":{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":16384,"output":16384}},"deepseek.v3.2":{"id":"deepseek.v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.62,"output":1.85},"limit":{"context":163840,"output":81920}},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"eu.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (EU)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"zai.glm-4.7-flash":{"id":"zai.glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4},"limit":{"context":200000,"output":131072}},"amazon.nova-2-lite-v1:0":{"id":"amazon.nova-2-lite-v1:0","name":"Nova 2 Lite","family":"nova","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.33,"output":2.75},"limit":{"context":128000,"output":4096}},"anthropic.claude-opus-4-5-20251101-v1:0":{"id":"anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"qwen.qwen3-coder-480b-a35b-v1:0":{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.8},"limit":{"context":131072,"output":65536}},"meta.llama3-2-1b-instruct-v1:0":{"id":"meta.llama3-2-1b-instruct-v1:0","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":4096}},"amazon.nova-lite-v1:0":{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"meta.llama3-1-8b-instruct-v1:0":{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":4096}},"global.anthropic.claude-sonnet-4-6":{"id":"global.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"us.anthropic.claude-sonnet-4-6":{"id":"us.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (US)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"global.anthropic.claude-opus-4-6-v1":{"id":"global.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (Global)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"google.gemma-3-27b-it":{"id":"google.gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-27","last_updated":"2025-07-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":202752,"output":8192}},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (Global)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"google.gemma-3-4b-it":{"id":"google.gemma-3-4b-it","name":"Gemma 3 4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.08},"limit":{"context":128000,"output":4096}},"us.anthropic.claude-opus-4-6-v1":{"id":"us.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"meta.llama4-scout-17b-instruct-v1:0":{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":3500000,"output":16384}},"us.anthropic.claude-opus-4-1-20250805-v1:0":{"id":"us.anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"deepseek.v3-v1:0":{"id":"deepseek.v3-v1:0","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":163840,"output":81920}},"mistral.magistral-small-2509":{"id":"mistral.magistral-small-2509","name":"Magistral Small 1.2","family":"magistral","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":40000}},"qwen.qwen3-next-80b-a3b":{"id":"qwen.qwen3-next-80b-a3b","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"zai.glm-4.7":{"id":"zai.glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"moonshot.kimi-k2-thinking":{"id":"moonshot.kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":256000,"output":256000}},"us.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"us.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (US)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"mistral.ministral-3-14b-instruct":{"id":"mistral.ministral-3-14b-instruct","name":"Ministral 14B 3.0","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":4096}},"anthropic.claude-3-haiku-20240307-v1:0":{"id":"anthropic.claude-3-haiku-20240307-v1:0","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-02","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25},"limit":{"context":200000,"output":4096}},"global.anthropic.claude-sonnet-4-20250514-v1:0":{"id":"global.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4 (Global)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"deepseek.r1-v1:0":{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"meta.llama3-1-405b-instruct-v1:0":{"id":"meta.llama3-1-405b-instruct-v1:0","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":2.4},"limit":{"context":128000,"output":4096}},"mistral.voxtral-mini-3b-2507":{"id":"mistral.voxtral-mini-3b-2507","name":"Voxtral Mini 3B 2507","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":4096}},"eu.anthropic.claude-sonnet-4-6":{"id":"eu.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"openai.gpt-oss-120b-1:0":{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"nvidia.nemotron-nano-12b-v2":{"id":"nvidia.nemotron-nano-12b-v2","name":"NVIDIA Nemotron Nano 12B v2 VL BF16","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":128000,"output":4096}},"minimax.minimax-m2.5":{"id":"minimax.minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":98304}},"meta.llama3-3-70b-instruct-v1:0":{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"meta.llama3-1-70b-instruct-v1:0":{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":4096}},"meta.llama3-2-3b-instruct-v1:0":{"id":"meta.llama3-2-3b-instruct-v1:0","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":131000,"output":4096}},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (EU)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic.claude-opus-4-20250514-v1:0":{"id":"anthropic.claude-opus-4-20250514-v1:0","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"eu.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (EU)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic.claude-sonnet-4-20250514-v1:0":{"id":"anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"meta.llama3-2-11b-instruct-v1:0":{"id":"meta.llama3-2-11b-instruct-v1:0","name":"Llama 3.2 11B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":4096}},"moonshotai.kimi-k2.5":{"id":"moonshotai.kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":256000,"output":256000}},"openai.gpt-oss-safeguard-20b":{"id":"openai.gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.2},"limit":{"context":128000,"output":4096}},"anthropic.claude-opus-4-6-v1":{"id":"anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"qwen.qwen3-coder-30b-a3b-v1:0":{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":262144,"output":131072}},"minimax.minimax-m2.1":{"id":"minimax.minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen.qwen3-vl-235b-a22b":{"id":"qwen.qwen3-vl-235b-a22b","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"qwen.qwen3-coder-next":{"id":"qwen.qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.8},"limit":{"context":131072,"output":65536}},"anthropic.claude-3-5-haiku-20241022-v1:0":{"id":"anthropic.claude-3-5-haiku-20241022-v1:0","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"nvidia.nemotron-nano-9b-v2":{"id":"nvidia.nemotron-nano-9b-v2","name":"NVIDIA Nemotron Nano 9B v2","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.23},"limit":{"context":128000,"output":4096}},"mistral.mistral-large-3-675b-instruct":{"id":"mistral.mistral-large-3-675b-instruct","name":"Mistral Large 3","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":8192}},"qwen.qwen3-235b-a22b-2507-v1:0":{"id":"qwen.qwen3-235b-a22b-2507-v1:0","name":"Qwen3 235B A22B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-18","last_updated":"2025-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":131072}},"anthropic.claude-3-7-sonnet-20250219-v1:0":{"id":"anthropic.claude-3-7-sonnet-20250219-v1:0","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"writer.palmyra-x4-v1:0":{"id":"writer.palmyra-x4-v1:0","name":"Palmyra X4","family":"palmyra","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":122880,"output":8192}}}},"the-grid-ai":{"id":"the-grid-ai","env":["THEGRIDAI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.thegrid.ai/v1","name":"The Grid AI","doc":"https://thegrid.ai/docs","models":{"text-prime":{"id":"text-prime","name":"Text Prime","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":30000},"status":"beta"},"text-standard":{"id":"text-standard","name":"Text Standard","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":16000},"status":"beta"},"text-max":{"id":"text-max","name":"Text Max","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-24","last_updated":"2026-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":1000000,"output":128000},"status":"beta"}}},"baseten":{"id":"baseten","env":["BASETEN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.baseten.co/v1","name":"Baseten","doc":"https://docs.baseten.co/development/model-apis/overview","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":204800,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":202752,"output":131072}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":200000}},"nvidia/Nemotron-120B-A12B":{"id":"nvidia/Nemotron-120B-A12B","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-02","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.75},"limit":{"context":262144,"output":32678}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":164000,"output":131000}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.77,"output":0.77},"limit":{"context":164000,"output":131000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-10","release_date":"2025-12-01","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":163800,"output":131100},"status":"deprecated"},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":128000,"output":128000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-09-05","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"status":"deprecated"},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2026-01-30","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":8192}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204000,"output":204000}}}},"zhipuai-coding-plan":{"id":"zhipuai-coding-plan","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/coding/paas/v4","name":"Zhipu AI Coding Plan","doc":"https://docs.bigmodel.cn/cn/coding-plan/overview","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.6v-flash":{"id":"glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":64000,"output":16384}},"glm-5-turbo":{"id":"glm-5-turbo","name":"GLM-5-Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"alibaba-coding-plan":{"id":"alibaba-coding-plan","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-intl.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan","doc":"https://www.alibabacloud.com/help/en/model-studio/coding-plan","models":{"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"input":196601,"output":24576}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"venice":{"id":"venice","env":["VENICE_API_KEY"],"npm":"venice-ai-sdk-provider","name":"Venice AI","doc":"https://docs.venice.ai","models":{"openai-gpt-4o-mini-2024-07-18":{"id":"openai-gpt-4o-mini-2024-07-18","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1875,"output":0.75,"cache_read":0.09375},"limit":{"context":128000,"output":16384}},"qwen3-next-80b":{"id":"qwen3-next-80b","name":"Qwen 3 Next 80b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.9},"limit":{"context":256000,"output":16384}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen 3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.75},"limit":{"context":128000,"output":16384}},"grok-41-fast":{"id":"grok-41-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-12-01","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.23,"output":0.57,"cache_read":0.06},"limit":{"context":1000000,"output":30000}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.6,"output":18,"cache_read":0.36,"cache_write":4.5},"limit":{"context":1000000,"output":64000}},"nvidia-nemotron-cascade-2-30b-a3b":{"id":"nvidia-nemotron-cascade-2-30b-a3b","name":"Nemotron Cascade 2 30B A3B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-24","last_updated":"2026-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.8},"limit":{"context":256000,"output":32768}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.7,"output":3.75,"cache_read":0.07},"limit":{"context":256000,"output":65536}},"qwen3-coder-480b-a35b-instruct-turbo":{"id":"qwen3-coder-480b-a35b-instruct-turbo","name":"Qwen 3 Coder 480B Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":256000,"output":65536}},"qwen3-5-397b-a17b":{"id":"qwen3-5-397b-a17b","name":"Qwen 3.5 397B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5},"limit":{"context":128000,"output":32768}},"zai-org-glm-4.7":{"id":"zai-org-glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-24","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.65,"cache_read":0.11},"limit":{"context":198000,"output":16384}},"openai-gpt-54":{"id":"openai-gpt-54","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.13,"output":18.8,"cache_read":0.313},"limit":{"context":1000000,"output":131072}},"zai-org-glm-4.7-flash":{"id":"zai-org-glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":16384}},"nvidia-nemotron-3-nano-30b-a3b":{"id":"nvidia-nemotron-3-nano-30b-a3b","name":"NVIDIA Nemotron 3 Nano 30B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":16384}},"qwen3-vl-235b-a22b":{"id":"qwen3-vl-235b-a22b","name":"Qwen3 VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-16","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1.5},"limit":{"context":256000,"output":16384}},"openai-gpt-53-codex":{"id":"openai-gpt-53-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":400000,"output":128000}},"claude-sonnet-45":{"id":"claude-sonnet-45","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-01-15","last_updated":"2026-01-28","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.75,"output":18.75,"cache_read":0.375,"cache_write":4.69},"limit":{"context":198000,"output":49500}},"openai-gpt-52":{"id":"openai-gpt-52","name":"GPT-5.2","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-13","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"mistral-small-3-2-24b-instruct":{"id":"mistral-small-3-2-24b-instruct","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-15","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09375,"output":0.25},"limit":{"context":256000,"output":16384}},"claude-opus-45":{"id":"claude-opus-45","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-06","last_updated":"2026-01-28","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":198000,"output":49500}},"grok-4-20-multi-agent-beta":{"id":"grok-4-20-multi-agent-beta","name":"Grok 4.20 Multi-Agent Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.27,"output":6.8,"cache_read":0.23,"context_over_200k":{"input":4.53,"output":13.6,"cache_read":0.23}},"limit":{"context":2000000,"output":128000}},"minimax-m27":{"id":"minimax-m27","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.375,"output":1.5,"cache_read":0.075},"limit":{"context":198000,"output":32768}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen 3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":3.5},"limit":{"context":128000,"output":16384}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.87,"cache_read":0.03},"limit":{"context":256000,"output":10000}},"qwen3-5-35b-a3b":{"id":"qwen3-5-35b-a3b","name":"Qwen 3.5 35B A3B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-25","last_updated":"2026-03-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3125,"output":1.25,"cache_read":0.15625},"limit":{"context":256000,"output":65536}},"mercury-2":{"id":"mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-20","last_updated":"2026-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3125,"output":0.9375,"cache_read":0.03125},"limit":{"context":128000,"output":50000}},"google-gemma-3-27b-it":{"id":"google-gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-04","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.2},"limit":{"context":198000,"output":16384}},"olafangensan-glm-4.7-flash-heretic":{"id":"olafangensan-glm-4.7-flash-heretic","name":"GLM 4.7 Flash Heretic","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.8},"limit":{"context":200000,"output":24000}},"openai-gpt-52-codex":{"id":"openai-gpt-52-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-01-15","last_updated":"2026-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.19,"output":17.5,"cache_read":0.219},"limit":{"context":256000,"output":65536}},"venice-uncensored-role-play":{"id":"venice-uncensored-role-play","name":"Venice Role Play Uncensored","family":"venice","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-20","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":128000,"output":4096}},"zai-org-glm-5":{"id":"zai-org-glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":198000,"output":32000}},"zai-org-glm-4.6":{"id":"zai-org-glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2024-04-01","last_updated":"2026-04-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":2.75,"cache_read":0.3},"limit":{"context":198000,"output":16384}},"mistral-small-2603":{"id":"mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-16","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1875,"output":0.75},"limit":{"context":256000,"output":65536}},"openai-gpt-oss-120b":{"id":"openai-gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":128000,"output":16384}},"qwen3-5-9b":{"id":"qwen3-5-9b","name":"Qwen 3.5 9B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-04-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.15},"limit":{"context":256000,"output":32768}},"openai-gpt-54-pro":{"id":"openai-gpt-54-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":37.5,"output":225,"context_over_200k":{"input":75,"output":337.5}},"limit":{"context":1000000,"output":128000}},"aion-labs.aion-2-0":{"id":"aion-labs.aion-2-0","name":"Aion 2.0","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-24","last_updated":"2026-03-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2,"cache_read":0.25},"limit":{"context":128000,"output":32768}},"openai-gpt-54-mini":{"id":"openai-gpt-54-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.9375,"output":5.625,"cache_read":0.09375},"limit":{"context":400000,"output":128000}},"google.gemma-4-31b-it":{"id":"google.gemma-4-31b-it","name":"Google Gemma 4 31B Instruct","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-03","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.175,"output":0.5},"limit":{"context":256000,"output":8192}},"minimax-m25":{"id":"minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.19,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen 3 Coder 480b","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-04-29","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3},"limit":{"context":256000,"output":65536}},"zai-org-glm-5-1":{"id":"zai-org-glm-5-1","name":"GLM 5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-07","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.75,"output":5.5,"cache_read":0.325},"limit":{"context":200000,"output":24000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":30,"cache_read":0.6,"cache_write":7.5},"limit":{"context":1000000,"output":128000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-10","release_date":"2025-12-04","last_updated":"2026-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.33,"output":0.48,"cache_read":0.16},"limit":{"context":160000,"output":32768}},"venice-uncensored":{"id":"venice-uncensored","name":"Venice Uncensored 1.1","family":"venice","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-03-18","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.9},"limit":{"context":32000,"output":8192}},"qwen-3-6-plus":{"id":"qwen-3-6-plus","name":"Qwen 3.6 Plus Uncensored","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-06","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.625,"output":3.75,"cache_read":0.0625,"cache_write":0.78,"context_over_200k":{"input":2.5,"output":7.5}},"limit":{"context":1000000,"output":65536}},"google.gemma-4-26b-a4b-it":{"id":"google.gemma-4-26b-a4b-it","name":"Google Gemma 4 26B A4B Instruct","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-09","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.1625,"output":0.5},"limit":{"context":256000,"output":8192}},"openai-gpt-4o-2024-11-20":{"id":"openai-gpt-4o-2024-11-20","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-28","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3.125,"output":12.5},"limit":{"context":128000,"output":16384}},"llama-3.3-70b":{"id":"llama-3.3-70b","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-06","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":128000,"output":4096}},"kimi-k2-5":{"id":"kimi-k2-5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-01-27","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":3.5,"cache_read":0.11},"limit":{"context":256000,"output":65536}},"grok-4-20-beta":{"id":"grok-4-20-beta","name":"Grok 4.20 Beta","family":"grok-beta","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-12","last_updated":"2026-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.27,"output":6.8,"cache_read":0.23,"context_over_200k":{"input":4.53,"output":13.6,"cache_read":0.23}},"limit":{"context":2000000,"output":128000}},"minimax-m21":{"id":"minimax-m21","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2026-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.5,"cache_read":0.04},"limit":{"context":198000,"output":32768}},"llama-3.2-3b":{"id":"llama-3.2-3b","name":"Llama 3.2 3B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-10-03","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"arcee-trinity-large-thinking":{"id":"arcee-trinity-large-thinking","name":"Trinity Large Thinking","family":"trinity","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3125,"output":1.125,"cache_read":0.075},"limit":{"context":256000,"output":65536}},"hermes-3-llama-3.1-405b":{"id":"hermes-3-llama-3.1-405b","name":"Hermes 3 Llama 3.1 405b","family":"hermes","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-04","release_date":"2025-09-25","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3},"limit":{"context":128000,"output":16384}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-03-12","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.5,"cache_write":0.5,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1000000,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-12-10","last_updated":"2026-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":3.2,"cache_read":0.375},"limit":{"context":256000,"output":65536}},"claude-opus-4-6-fast":{"id":"claude-opus-4-6-fast","name":"Claude Opus 4.6 Fast","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":36,"output":180,"cache_read":3.6,"cache_write":45},"limit":{"context":1000000,"output":128000}}}},"aihubmix":{"id":"aihubmix","env":["AIHUBMIX_API_KEY"],"npm":"@aihubmix/ai-sdk-provider","name":"AIHubMix","doc":"https://docs.aihubmix.com","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"coding-glm-5-free":{"id":"coding-glm-5-free","name":"Coding-GLM-5-Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":5.5,"cache_read":0.11,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"coding-glm-4.7":{"id":"coding-glm-4.7","name":"Coding-GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.12},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1,"cache_read":0.548},"limit":{"context":204800,"output":131072}},"gemini-3-pro-preview-search":{"id":"gemini-3-pro-preview-search","name":"Gemini 3 Pro Preview Search","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":2.82},"limit":{"context":204800,"output":131072}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"Kimi-K2-0905":{"id":"Kimi-K2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":64000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5-Nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2,"cache_read":0.25},"limit":{"context":128000,"output":16384}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.5},"limit":{"context":1000000,"output":65000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.31},"limit":{"context":2000000,"output":65000}},"coding-minimax-m2.1-free":{"id":"coding-minimax-m2.1-free","name":"Coding MiniMax M2.1 Free","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":82.5,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"deepseek-v3.2-fast":{"id":"deepseek-v3.2-fast","name":"DeepSeek-V3.2-Fast","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.1,"output":3.29},"limit":{"context":128000,"output":128000}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-09","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.75},"limit":{"context":200000,"output":65536}},"deepseek-v3.2-think":{"id":"deepseek-v3.2-think","name":"DeepSeek-V3.2-Think","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.02},"limit":{"context":1000000,"output":65000}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":2.8},"limit":{"context":262144,"output":262144}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"claude-opus-4-6-think":{"id":"claude-opus-4-6-think","name":"Claude Opus 4.6 Think","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":32000}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.41},"limit":{"context":128000,"output":32768}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34,"output":1.37},"limit":{"context":262144,"output":65536}},"coding-glm-4.7-free":{"id":"coding-glm-4.7-free","name":"Coding GLM 4.7 Free","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.55},"limit":{"context":262144,"input":262144,"output":65536}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.82,"output":3.29},"limit":{"context":262144,"output":131000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":128000}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":1.15},"limit":{"context":204800,"output":131072}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.45},"limit":{"context":131000,"output":64000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5-Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":7,"output":28,"cache_read":3.5},"limit":{"context":400000,"output":128000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.3,"output":16.5,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":20,"cache_read":2.5},"limit":{"context":400000,"output":128000}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.11,"output":0.66},"limit":{"context":1000000,"output":65536}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-15","last_updated":"2025-11-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"claude-sonnet-4-6-think":{"id":"claude-sonnet-4-6-think","name":"Claude Sonnet 4.6 Think","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}}}},"cerebras":{"id":"cerebras","env":["CEREBRAS_API_KEY"],"npm":"@ai-sdk/cerebras","name":"Cerebras","doc":"https://inference-docs.cerebras.ai/models/overview","models":{"llama3.1-8b":{"id":"llama3.1-8b","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":32000,"output":8000}},"qwen-3-235b-a22b-instruct-2507":{"id":"qwen-3-235b-a22b-instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":131000,"output":32000}},"zai-glm-4.7":{"id":"zai-glm-4.7","name":"Z.AI GLM-4.7","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-01-10","last_updated":"2026-01-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.25,"output":2.75,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":40000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.69},"limit":{"context":131072,"output":32768}}}},"firmware":{"id":"firmware","env":["FIRMWARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://app.frogbot.ai/api/v1","name":"Firmware","doc":"https://docs.frogbot.ai","models":{"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":128000}},"gpt-5-4":{"id":"gpt-5-4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":272000,"output":128000}},"deepseek-v3-2":{"id":"deepseek-v3-2","name":"DeepSeek v3.2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":1.68,"cache_read":0.28},"limit":{"context":128000,"output":8192}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-17","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65536}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":400000,"output":128000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"zai-glm-5-1":{"id":"zai-glm-5-1","name":"GLM-5","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-20","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_read":0.26},"limit":{"context":198000,"output":8192}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-17","last_updated":"2025-07-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075},"limit":{"context":1048576,"output":65536}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":128000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":128000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.2},"limit":{"context":131072,"output":32768}},"qwen-3-6-plus":{"id":"qwen-3-6-plus","name":"Qwen 3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.1},"limit":{"context":1000000,"output":64000}},"minimax-m2-5":{"id":"minimax-m2-5","name":"MiniMax-M2.5","family":"minimax","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-01-15","last_updated":"2025-02-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":192000,"output":8192}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"1970-01-01","last_updated":"1970-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"gemini-3-1-pro-preview":{"id":"gemini-3-1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-18","last_updated":"2026-02-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"gpt-5-3-codex":{"id":"gpt-5-3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2026-01-31","release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}}}},"lmstudio":{"id":"lmstudio","env":["LMSTUDIO_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"http://127.0.0.1:1234/v1","name":"LMStudio","doc":"https://lmstudio.ai/models","models":{"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":32768}},"qwen/qwen3-coder-30b":{"id":"qwen/qwen3-coder-30b","name":"Qwen3 Coder 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"qwen/qwen3-30b-a3b-2507":{"id":"qwen/qwen3-30b-a3b-2507","name":"Qwen3 30B A3B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}}}},"lucidquery":{"id":"lucidquery","env":["LUCIDQUERY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://lucidquery.com/api/v1","name":"LucidQuery AI","doc":"https://lucidquery.com/api/docs","models":{"lucidnova-rf1-100b":{"id":"lucidnova-rf1-100b","name":"LucidNova RF1 100B","family":"nova","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-09-16","release_date":"2024-12-28","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":120000,"output":8000}},"lucidquery-nexus-coder":{"id":"lucidquery-nexus-coder","name":"LucidQuery Nexus Coder","family":"lucid","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-08-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":5},"limit":{"context":250000,"output":60000}}}},"moonshotai-cn":{"id":"moonshotai-cn","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.cn/v1","name":"Moonshot AI (China)","doc":"https://platform.moonshot.cn/docs/api/chat","models":{"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}}}},"azure-cognitive-services":{"id":"azure-cognitive-services","env":["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME","AZURE_COGNITIVE_SERVICES_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure Cognitive Services","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}}}},"cohere":{"id":"cohere","env":["COHERE_API_KEY"],"npm":"@ai-sdk/cohere","name":"Cohere","doc":"https://docs.cohere.com/docs/models","models":{"command-a-reasoning-08-2025":{"id":"command-a-reasoning-08-2025","name":"Command A Reasoning","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":32000}},"command-r7b-12-2024":{"id":"command-r7b-12-2024","name":"Command R7B","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-02-27","last_updated":"2024-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"c4ai-aya-vision-8b":{"id":"c4ai-aya-vision-8b","name":"Aya Vision 8B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"command-r-plus-08-2024":{"id":"command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"c4ai-aya-expanse-8b":{"id":"c4ai-aya-expanse-8b","name":"Aya Expanse 8B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":8000,"output":4000}},"command-r7b-arabic-02-2025":{"id":"command-r7b-arabic-02-2025","name":"Command R7B Arabic","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-02-27","last_updated":"2025-02-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.0375,"output":0.15},"limit":{"context":128000,"output":4000}},"command-a-vision-07-2025":{"id":"command-a-vision-07-2025","name":"Command A Vision","family":"command-a","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":8000}},"c4ai-aya-vision-32b":{"id":"c4ai-aya-vision-32b","name":"Aya Vision 32B","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-05-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":16000,"output":4000}},"command-a-translate-08-2025":{"id":"command-a-translate-08-2025","name":"Command A Translate","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":8000,"output":8000}},"command-r-08-2024":{"id":"command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"c4ai-aya-expanse-32b":{"id":"c4ai-aya-expanse-32b","name":"Aya Expanse 32B","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-10-24","last_updated":"2024-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"limit":{"context":128000,"output":4000}},"command-a-03-2025":{"id":"command-a-03-2025","name":"Command A","family":"command-a","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}}}},"cloudferro-sherlock":{"id":"cloudferro-sherlock","env":["CLOUDFERRO_SHERLOCK_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-sherlock.cloudferro.com/openai/v1/","name":"CloudFerro Sherlock","doc":"https://docs.sherlock.cloudferro.com/","models":{"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10-09","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":70000,"output":70000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"OpenAI GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.92,"output":2.92},"limit":{"context":131000,"output":131000}},"speakleash/Bielik-11B-v3.0-Instruct":{"id":"speakleash/Bielik-11B-v3.0-Instruct","name":"Bielik 11B v3.0 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"speakleash/Bielik-11B-v2.6-Instruct":{"id":"speakleash/Bielik-11B-v2.6-Instruct","name":"Bielik 11B v2.6 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":0.67},"limit":{"context":32000,"output":32000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196000,"output":196000}}}},"kuae-cloud-coding-plan":{"id":"kuae-cloud-coding-plan","env":["KUAE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding-plan-endpoint.kuaecloud.net/v1","name":"KUAE Cloud Coding Plan","doc":"https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/","models":{"GLM-4.7":{"id":"GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"xai":{"id":"xai","env":["XAI_API_KEY"],"npm":"@ai-sdk/xai","name":"xAI","doc":"https://docs.x.ai/docs/models","models":{"grok-2-1212":{"id":"grok-2-1212","name":"Grok 2 (1212)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-12-12","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-vision-beta":{"id":"grok-vision-beta","name":"Grok Vision Beta","family":"grok-vision","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":8192,"output":4096}},"grok-3-mini-fast":{"id":"grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-3-mini-latest":{"id":"grok-3-mini-latest","name":"Grok 3 Mini Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-3-fast":{"id":"grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"grok-2-vision-latest":{"id":"grok-2-vision-latest","name":"Grok 2 Vision Latest","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-4.20-0309-reasoning":{"id":"grok-4.20-0309-reasoning","name":"Grok 4.20 (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3-mini-fast-latest":{"id":"grok-3-mini-fast-latest","name":"Grok 3 Mini Fast Latest","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"grok-4-fast":{"id":"grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3-latest":{"id":"grok-3-latest","name":"Grok 3 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-2":{"id":"grok-2","name":"Grok 2","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"grok-4.20-0309-non-reasoning":{"id":"grok-4.20-0309-non-reasoning","name":"Grok 4.20 (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-3-fast-latest":{"id":"grok-3-fast-latest","name":"Grok 3 Fast Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"grok-4.20-multi-agent-0309":{"id":"grok-4.20-multi-agent-0309","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2,"context_over_200k":{"input":4,"output":12,"cache_read":0.4}},"limit":{"context":2000000,"output":30000}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"grok-2-latest":{"id":"grok-2-latest","name":"Grok 2 Latest","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":131072,"output":8192}},"grok-beta":{"id":"grok-beta","name":"Grok Beta","family":"grok-beta","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15,"cache_read":5},"limit":{"context":131072,"output":4096}},"grok-2-vision":{"id":"grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-4-1-fast":{"id":"grok-4-1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"grok-2-vision-1212":{"id":"grok-2-vision-1212","name":"Grok 2 Vision (1212)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}}}},"meganova":{"id":"meganova","env":["MEGANOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.meganova.ai/v1","name":"Meganova","doc":"https://docs.meganova.ai","models":{"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3.5-Plus":{"id":"Qwen/Qwen3.5-Plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"reasoning":2.4},"limit":{"context":1000000,"output":65536}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":16384,"output":16384}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":202752,"output":131072}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.56},"limit":{"context":202752,"output":131072}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.9},"limit":{"context":202752,"output":131072}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"mistralai/Mistral-Nemo-Instruct-2407":{"id":"mistralai/Mistral-Nemo-Instruct-2407","name":"Mistral Nemo Instruct 2407","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.04},"limit":{"context":131072,"output":65536}},"XiaomiMiMo/MiMo-V2-Flash":{"id":"XiaomiMiMo/MiMo-V2-Flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262144,"output":32000}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":16384}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-08-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3-0324":{"id":"deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.88},"limit":{"context":163840,"output":163840}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-10-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-0528":{"id":"deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.15},"limit":{"context":163840,"output":64000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.26,"output":0.38},"limit":{"context":164000,"output":164000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.6},"limit":{"context":262144,"output":262144}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.8},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.2},"limit":{"context":196608,"output":131072}}}},"google-vertex-anthropic":{"id":"google-vertex-anthropic","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex/anthropic","name":"Vertex (Anthropic)","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude","models":{"claude-haiku-4-5@20251001":{"id":"claude-haiku-4-5@20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-6@default":{"id":"claude-sonnet-4-6@default","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku@20241022":{"id":"claude-3-5-haiku@20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-3-5-sonnet@20241022":{"id":"claude-3-5-sonnet@20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-opus-4-1@20250805":{"id":"claude-opus-4-1@20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-sonnet-4@20250514":{"id":"claude-sonnet-4@20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-7-sonnet@20250219":{"id":"claude-3-7-sonnet@20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4@20250514":{"id":"claude-opus-4@20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-opus-4-5@20251101":{"id":"claude-opus-4-5@20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-5@20250929":{"id":"claude-sonnet-4-5@20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-6@default":{"id":"claude-opus-4-6@default","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}}}},"evroc":{"id":"evroc","env":["EVROC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://models.think.evroc.com/v1","name":"evroc","doc":"https://docs.evroc.com/products/think/overview.html","models":{"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen3 VL 30B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":100000,"output":100000}},"Qwen/Qwen3-Embedding-8B":{"id":"Qwen/Qwen3-Embedding-8B","name":"Qwen3 Embedding 8B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":40960,"output":40960}},"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507-FP8","name":"Qwen3 30B 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.42},"limit":{"context":64000,"output":64000}},"mistralai/devstral-small-2-24b-instruct-2512":{"id":"mistralai/devstral-small-2-24b-instruct-2512","name":"Devstral Small 2 24B Instruct 2512","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.47},"limit":{"context":32768,"output":32768}},"mistralai/Voxtral-Small-24B-2507":{"id":"mistralai/Voxtral-Small-24B-2507","name":"Voxtral Small 24B","family":"voxtral","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["audio","text"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":32000,"output":32000}},"mistralai/Magistral-Small-2509":{"id":"mistralai/Magistral-Small-2509","name":"Magistral Small 1.2 24B","family":"magistral-small","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":2.36},"limit":{"context":131072,"output":131072}},"microsoft/Phi-4-multimodal-instruct":{"id":"microsoft/Phi-4-multimodal-instruct","name":"Phi-4 15B","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.47},"limit":{"context":32000,"output":32000}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB Whisper","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":448}},"nvidia/Llama-3.3-70B-Instruct-FP8":{"id":"nvidia/Llama-3.3-70B-Instruct-FP8","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.18,"output":1.18},"limit":{"context":131072,"output":32768}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper 3 Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.00236,"output":0.00236,"output_audio":2.36},"limit":{"context":448,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.94},"limit":{"context":65536,"output":65536}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":1.47,"output":5.9},"limit":{"context":262144,"output":262144}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"E5 Multi-Lingual Large Embeddings 0.6B","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-06-01","last_updated":"2024-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.12},"limit":{"context":512,"output":512}}}},"synthetic":{"id":"synthetic","env":["SYNTHETIC_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.synthetic.new/openai/v1","name":"Synthetic","doc":"https://synthetic.new/pricing","models":{"hf:meta-llama/Llama-3.1-405B-Instruct":{"id":"hf:meta-llama/Llama-3.1-405B-Instruct","name":"Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct":{"id":"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct","name":"Llama-4-Scout-17B-16E-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":328000,"output":4096}},"hf:meta-llama/Llama-3.3-70B-Instruct":{"id":"hf:meta-llama/Llama-3.3-70B-Instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-8B-Instruct":{"id":"hf:meta-llama/Llama-3.1-8B-Instruct","name":"Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-3.1-70B-Instruct":{"id":"hf:meta-llama/Llama-3.1-70B-Instruct","name":"Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":32768}},"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8":{"id":"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":524000,"output":4096}},"hf:MiniMaxAI/MiniMax-M2":{"id":"hf:MiniMaxAI/MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":196608,"output":131000}},"hf:MiniMaxAI/MiniMax-M2.5":{"id":"hf:MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-07","last_updated":"2026-02-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.6},"limit":{"context":191488,"output":65536}},"hf:MiniMaxAI/MiniMax-M2.1":{"id":"hf:MiniMaxAI/MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":204800,"output":131072}},"hf:Qwen/Qwen3.5-397B-A17B":{"id":"hf:Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5-97B-A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.6},"limit":{"context":262144,"output":65536},"status":"beta"},"hf:Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"hf:Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-11-11","last_updated":"2024-11-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":0.8},"limit":{"context":32768,"output":32768}},"hf:Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen 3 235B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"hf:Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.65,"output":3},"limit":{"context":256000,"output":32000}},"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen 3 Coder 480B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":256000,"output":32000}},"hf:deepseek-ai/DeepSeek-V3.1":{"id":"hf:deepseek-ai/DeepSeek-V3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.56,"output":1.68},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3-0324":{"id":"hf:deepseek-ai/DeepSeek-V3-0324","name":"DeepSeek V3 (0324)","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3":{"id":"hf:deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-R1":{"id":"hf:deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-R1-0528":{"id":"hf:deepseek-ai/DeepSeek-R1-0528","name":"DeepSeek R1 (0528)","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":8},"limit":{"context":128000,"output":128000}},"hf:deepseek-ai/DeepSeek-V3.2":{"id":"hf:deepseek-ai/DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.4,"cache_read":0.27,"cache_write":0},"limit":{"context":162816,"input":162816,"output":8000}},"hf:deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"hf:deepseek-ai/DeepSeek-V3.1-Terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-09-22","last_updated":"2025-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":1.2},"limit":{"context":128000,"output":128000}},"hf:openai/gpt-oss-120b":{"id":"hf:openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":32768}},"hf:moonshotai/Kimi-K2-Thinking":{"id":"hf:moonshotai/Kimi-K2-Thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-07","last_updated":"2025-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":262144}},"hf:moonshotai/Kimi-K2-Instruct-0905":{"id":"hf:moonshotai/Kimi-K2-Instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":1.2},"limit":{"context":262144,"output":32768}},"hf:moonshotai/Kimi-K2.5":{"id":"hf:moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4":{"id":"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1,"cache_read":0.3},"limit":{"context":262144,"output":65536}},"hf:nvidia/Kimi-K2.5-NVFP4":{"id":"hf:nvidia/Kimi-K2.5-NVFP4","name":"Kimi K2.5 (NVFP4)","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":262144,"output":65536}},"hf:zai-org/GLM-4.7-Flash":{"id":"hf:zai-org/GLM-4.7-Flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-01-18","last_updated":"2026-01-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.06},"limit":{"context":196608,"output":65536}},"hf:zai-org/GLM-4.7":{"id":"hf:zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}},"hf:zai-org/GLM-5":{"id":"hf:zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":1},"limit":{"context":196608,"output":65536}},"hf:zai-org/GLM-4.6":{"id":"hf:zai-org/GLM-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.19},"limit":{"context":200000,"output":64000}}}},"nvidia":{"id":"nvidia","env":["NVIDIA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://integrate.api.nvidia.com/v1","name":"Nvidia","doc":"https://docs.api.nvidia.com/nim/","models":{"black-forest-labs/flux.1-dev":{"id":"black-forest-labs/flux.1-dev","name":"FLUX.1-dev","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":0}},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":16384}},"mistralai/codestral-22b-instruct-v0.1":{"id":"mistralai/codestral-22b-instruct-v0.1","name":"Codestral 22b Instruct V0.1","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-29","last_updated":"2024-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B Instruct 2512","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/devstral-2-123b-instruct-2512":{"id":"mistralai/devstral-2-123b-instruct-2512","name":"Devstral-2-123B-Instruct-2512","family":"devstral","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/ministral-14b-instruct-2512":{"id":"mistralai/ministral-14b-instruct-2512","name":"Ministral 3 14B Instruct 2512","family":"ministral","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"mistralai/mistral-small-3.1-24b-instruct-2503":{"id":"mistralai/mistral-small-3.1-24b-instruct-2503","name":"Mistral Small 3.1 24b Instruct 2503","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-11","last_updated":"2025-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mamba-codestral-7b-v0.1":{"id":"mistralai/mamba-codestral-7b-v0.1","name":"Mamba Codestral 7b V0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"mistralai/mistral-large-2-instruct":{"id":"mistralai/mistral-large-2-instruct","name":"Mistral Large 2 Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-24","last_updated":"2024-07-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi 3 Medium 4k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4000,"output":4096}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi 3.5 Moe Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-17","last_updated":"2024-08-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-Mini","family":"phi","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi 3 Small 8k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":4096}},"microsoft/phi-3-vision-128k-instruct":{"id":"microsoft/phi-3-vision-128k-instruct","name":"Phi 3 Vision 128k Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-19","last_updated":"2024-05-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi 3.5 Vision Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-16","last_updated":"2024-08-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi 3 Small 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi 3 Medium 128k Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-07","last_updated":"2024-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.3-nemotron-super-49b-v1":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1","name":"Llama 3.3 Nemotron Super 49b V1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemotron-4-340b-instruct":{"id":"nvidia/nemotron-4-340b-instruct","name":"Nemotron 4 340b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-13","last_updated":"2024-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama3-chatqa-1.5-70b":{"id":"nvidia/llama3-chatqa-1.5-70b","name":"Llama3 Chatqa 1.5 70b","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-28","last_updated":"2024-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"id":"nvidia/llama-3.3-nemotron-super-49b-v1.5","name":"Llama 3.3 Nemotron Super 49b V1.5","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-16","last_updated":"2025-03-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"nvidia/parakeet-tdt-0.6b-v2":{"id":"nvidia/parakeet-tdt-0.6b-v2","name":"Parakeet TDT 0.6B v2","family":"parakeet","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"nemotron-3-nano-30b-a3b","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nvidia/llama-3.1-nemotron-ultra-253b-v1":{"id":"nvidia/llama-3.1-nemotron-ultra-253b-v1","name":"Llama-3.1-Nemotron-Ultra-253B-v1","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":131072}},"nvidia/cosmos-nemotron-34b":{"id":"nvidia/cosmos-nemotron-34b","name":"Cosmos Nemotron 34B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"nvidia/llama-embed-nemotron-8b":{"id":"nvidia/llama-embed-nemotron-8b","name":"Llama Embed Nemotron 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-03","release_date":"2025-03-18","last_updated":"2025-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":2048}},"nvidia/llama-3.1-nemotron-51b-instruct":{"id":"nvidia/llama-3.1-nemotron-51b-instruct","name":"Llama 3.1 Nemotron 51b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-22","last_updated":"2024-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/llama-3.1-nemotron-70b-instruct":{"id":"nvidia/llama-3.1-nemotron-70b-instruct","name":"Llama 3.1 Nemotron 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-10-12","last_updated":"2024-10-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"nvidia/nemoretriever-ocr-v1":{"id":"nvidia/nemoretriever-ocr-v1","name":"NeMo Retriever OCR v1","family":"nemoretriever","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-01","last_updated":"2025-09-05","modalities":{"input":["image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"deepseek-ai/deepseek-r1":{"id":"deepseek-ai/deepseek-r1","name":"Deepseek R1","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.1":{"id":"deepseek-ai/deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-20","last_updated":"2025-08-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek-ai/deepseek-coder-6.7b-instruct":{"id":"deepseek-ai/deepseek-coder-6.7b-instruct","name":"Deepseek Coder 6.7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2023-10-29","last_updated":"2023-10-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.2":{"id":"deepseek-ai/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":163840,"output":65536}},"deepseek-ai/deepseek-r1-0528":{"id":"deepseek-ai/deepseek-r1-0528","name":"Deepseek R1 0528","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"deepseek-ai/deepseek-v3.1-terminus":{"id":"deepseek-ai/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/whisper-large-v3":{"id":"openai/whisper-large-v3","name":"Whisper Large v3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"minimaxai/minimax-m2.1":{"id":"minimaxai/minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"minimaxai/minimax-m2.5":{"id":"minimaxai/minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"z-ai/glm4.7":{"id":"z-ai/glm4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":204800,"output":131072}},"z-ai/glm5":{"id":"z-ai/glm5","name":"GLM5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":131000}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17b 16e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-02","last_updated":"2025-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-26","last_updated":"2024-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-8b-instruct":{"id":"meta/llama3-8b-instruct","name":"Llama3 8b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama3-70b-instruct":{"id":"meta/llama3-70b-instruct","name":"Llama3 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/codellama-70b":{"id":"meta/codellama-70b","name":"Codellama 70b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-29","last_updated":"2024-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11b Vision Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.1-70b-instruct":{"id":"meta/llama-3.1-70b-instruct","name":"Llama 3.1 70b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-maverick-17b-128e-instruct":{"id":"meta/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17b 128e Instruct","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-02","release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-3.1-405b-instruct":{"id":"meta/llama-3.1-405b-instruct","name":"Llama 3.1 405b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3-235b-a22b":{"id":"qwen/qwen3-235b-a22b","name":"Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"qwen/qwen2.5-coder-7b-instruct":{"id":"qwen/qwen2.5-coder-7b-instruct","name":"Qwen2.5 Coder 7b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-17","last_updated":"2024-09-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen2.5-coder-32b-instruct":{"id":"qwen/qwen2.5-coder-32b-instruct","name":"Qwen2.5 Coder 32b Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-06","last_updated":"2024-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3.5-397b-a17b":{"id":"qwen/qwen3.5-397b-a17b","name":"Qwen3.5-397B-A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":8192}},"qwen/qwen3-next-80b-a3b-thinking":{"id":"qwen/qwen3-next-80b-a3b-thinking","name":"Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwq-32b":{"id":"qwen/qwq-32b","name":"Qwq 32b","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"qwen/qwen3-next-80b-a3b-instruct":{"id":"qwen/qwen3-next-80b-a3b-instruct","name":"Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"qwen/qwen3-coder-480b-a35b-instruct":{"id":"qwen/qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":66536}},"google/gemma-2-2b-it":{"id":"google/gemma-2-2b-it","name":"Gemma 2 2b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-16","last_updated":"2024-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e4b-it":{"id":"google/gemma-3n-e4b-it","name":"Gemma 3n E4b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-03","last_updated":"2025-06-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-1b-it":{"id":"google/gemma-3-1b-it","name":"Gemma 3 1b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/codegemma-7b":{"id":"google/codegemma-7b","name":"Codegemma 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-03-21","last_updated":"2024-03-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma-4-31B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":16384}},"google/gemma-3-12b-it":{"id":"google/gemma-3-12b-it","name":"Gemma 3 12b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/codegemma-1.1-7b":{"id":"google/codegemma-1.1-7b","name":"Codegemma 1.1 7b","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-04-30","last_updated":"2024-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3n-e2b-it":{"id":"google/gemma-3n-e2b-it","name":"Gemma 3n E2b It","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-06-12","last_updated":"2025-06-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-2-27b-it":{"id":"google/gemma-2-27b-it","name":"Gemma 2 27b It","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-06-24","last_updated":"2024-06-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma-3-27B-IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2024-12-01","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-07","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-01-01","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-11","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":262144}}}},"inference":{"id":"inference","env":["INFERENCE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://inference.net/v1","name":"Inference","doc":"https://inference.net/models","models":{"mistral/mistral-nemo-12b-instruct":{"id":"mistral/mistral-nemo-12b-instruct","name":"Mistral Nemo 12B Instruct","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.038,"output":0.1},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.055,"output":0.055},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-1b-instruct":{"id":"meta/llama-3.2-1b-instruct","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.01},"limit":{"context":16000,"output":4096}},"meta/llama-3.2-3b-instruct":{"id":"meta/llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":16000,"output":4096}},"meta/llama-3.1-8b-instruct":{"id":"meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.025,"output":0.025},"limit":{"context":16000,"output":4096}},"qwen/qwen-2.5-7b-vision-instruct":{"id":"qwen/qwen-2.5-7b-vision-instruct","name":"Qwen 2.5 7B Vision Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":125000,"output":4096}},"qwen/qwen3-embedding-4b":{"id":"qwen/qwen3-embedding-4b","name":"Qwen 3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0},"limit":{"context":32000,"output":2048}},"google/gemma-3":{"id":"google/gemma-3","name":"Google Gemma 3","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.3},"limit":{"context":125000,"output":4096}},"osmosis/osmosis-structure-0.6b":{"id":"osmosis/osmosis-structure-0.6b","name":"Osmosis Structure 0.6B","family":"osmosis","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":4000,"output":2048}}}},"inception":{"id":"inception","env":["INCEPTION_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.inceptionlabs.ai/v1/","name":"Inception","doc":"https://platform.inceptionlabs.ai/docs","models":{"mercury-edit":{"id":"mercury-edit","name":"Mercury Edit","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":8192}},"mercury-2":{"id":"mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01-01","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.025},"limit":{"context":128000,"output":50000}},"mercury":{"id":"mercury","name":"Mercury","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-06-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}},"mercury-coder":{"id":"mercury-coder","name":"Mercury Coder","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-02-26","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1,"cache_read":0.25,"cache_write":1},"limit":{"context":128000,"output":16384}}}},"openai":{"id":"openai","env":["OPENAI_API_KEY"],"npm":"@ai-sdk/openai","name":"OpenAI","doc":"https://platform.openai.com/docs/models","models":{"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-05-13":{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":15},"limit":{"context":128000,"output":4096}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat (latest)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2022-12","release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"o3-pro":{"id":"o3-pro","name":"o3-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-06-10","last_updated":"2025-06-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"output":100000}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"o4-mini-deep-research":{"id":"o4-mini-deep-research","name":"o4-mini-deep-research","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":1.5,"output":9,"cache_read":0.15},"provider":{"body":{"service_tier":"priority"}}}}}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-image-1":{"id":"gpt-image-1","name":"gpt-image-1","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-24","last_updated":"2025-04-24","modalities":{"input":["text","image"],"output":["image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":128000,"output":32768}},"gpt-4o-2024-08-06":{"id":"gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-08-06","last_updated":"2024-08-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-image-1-mini":{"id":"gpt-image-1-mini","name":"gpt-image-1-mini","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-09-26","last_updated":"2025-09-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"o1":{"id":"o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"context_over_200k":{"input":60,"output":270}},"limit":{"context":1050000,"input":922000,"output":128000}},"gpt-3.5-turbo":{"id":"gpt-3.5-turbo","name":"GPT-3.5-turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2021-09-01","release_date":"2023-03-01","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5,"cache_read":1.25},"limit":{"context":16385,"output":4096}},"o3-deep-research":{"id":"o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"output":100000}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2024-01","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"o1-pro":{"id":"o1-pro","name":"o1-pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2025-03-19","last_updated":"2025-03-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":150,"output":600},"limit":{"context":200000,"output":100000}},"codex-mini-latest":{"id":"codex-mini-latest","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":5,"output":30,"cache_read":0.5},"provider":{"body":{"service_tier":"priority"}}}}}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","family":"gpt-codex-spark","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":100000,"output":32000}},"chatgpt-image-latest":{"id":"chatgpt-image-latest","name":"chatgpt-image-latest","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":272000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-image-1.5":{"id":"gpt-image-1.5","name":"gpt-image-1.5","family":"gpt-image","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-11-25","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"input":0,"output":0}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}}}},"requesty":{"id":"requesty","env":["REQUESTY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://router.requesty.ai/v1","name":"Requesty","doc":"https://requesty.ai/solution/llm-routing/models","models":{"xai/grok-4-fast":{"id":"xai/grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05,"cache_write":0.2},"limit":{"context":2000000,"output":64000}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-09","last_updated":"2025-09-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":3},"limit":{"context":256000,"output":64000}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT-5.1-Codex-Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":9,"cache_read":0.11},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat (latest)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":128000,"output":32000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":16000,"output":4000}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT-5.3-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-5.1-chat":{"id":"openai/gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4 Mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1-Codex-Mini","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":100000}},"openai/gpt-5-image":{"id":"openai/gpt-5-image","name":"GPT-5 Image","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":5,"output":10,"cache_read":1.25},"limit":{"context":400000,"output":128000}},"openai/gpt-5.1":{"id":"openai/gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180,"cache_read":30},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25,"context_over_200k":{"input":5,"output":22.5,"cache_read":0.5}},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","audio","image","video"],"output":["text","audio","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"google/gemini-3-flash-preview":{"id":"google/gemini-3-flash-preview","name":"Gemini 3 Flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"cache_write":1},"limit":{"context":1048576,"output":65536}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"cache_write":4.5},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31,"cache_write":2.375},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.55},"limit":{"context":1048576,"output":65536}},"anthropic/claude-haiku-4-5":{"id":"anthropic/claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-01","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":62000}},"anthropic/claude-sonnet-4-6":{"id":"anthropic/claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3-7-sonnet":{"id":"anthropic/claude-3-7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-1":{"id":"anthropic/claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4-5":{"id":"anthropic/claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-opus-4-6":{"id":"anthropic/claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-05-30","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-sonnet-4-5":{"id":"anthropic/claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}}}},"vultr":{"id":"vultr","env":["VULTR_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.vultrinference.com/v1","name":"Vultr","doc":"https://api.vultrinference.com/","models":{"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-02-11","last_updated":"2025-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":194000,"output":4096}},"GLM-5-FP8":{"id":"GLM-5-FP8","name":"GLM 5 FP8","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.85,"output":3.1},"limit":{"context":200000,"output":131072}},"DeepSeek-V3.2":{"id":"DeepSeek-V3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":1.65},"limit":{"context":127000,"output":4096}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":129000,"output":4096}},"Kimi-K2.5":{"id":"Kimi-K2.5","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.75},"limit":{"context":254000,"output":32768}}}},"alibaba-coding-plan-cn":{"id":"alibaba-coding-plan-cn","env":["ALIBABA_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://coding.dashscope.aliyuncs.com/v1","name":"Alibaba Coding Plan (China)","doc":"https://help.aliyun.com/zh/model-studio/coding-plan","models":{"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":196608,"output":24576}},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":65536}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":65536}}}},"mistral":{"id":"mistral","env":["MISTRAL_API_KEY"],"npm":"@ai-sdk/mistral","name":"Mistral","doc":"https://docs.mistral.ai/getting-started/models/","models":{"mistral-small-latest":{"id":"mistral-small-latest","name":"Mistral Small (latest)","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":256000,"output":256000}},"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"mistral-large-2512":{"id":"mistral-large-2512","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"labs-devstral-small-2512":{"id":"labs-devstral-small-2512","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":256000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"magistral-medium-latest":{"id":"magistral-medium-latest","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}},"open-mixtral-8x7b":{"id":"open-mixtral-8x7b","name":"Mixtral 8x7B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32000,"output":32000}},"pixtral-large-latest":{"id":"pixtral-large-latest","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 2.1","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":131072,"output":16384}},"codestral-latest":{"id":"codestral-latest","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"mistral-large-latest":{"id":"mistral-large-latest","name":"Mistral Large (latest)","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":262144}},"mistral-small-2506":{"id":"mistral-small-2506","name":"Mistral Small 3.2","family":"mistral-small","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"pixtral-12b":{"id":"pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"ministral-8b-latest":{"id":"ministral-8b-latest","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"mistral-embed":{"id":"mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8000,"output":3072}},"magistral-small":{"id":"magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral-small-2603":{"id":"mistral-small-2603","name":"Mistral Small 4","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":256000,"output":256000}},"ministral-3b-latest":{"id":"ministral-3b-latest","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"open-mixtral-8x22b":{"id":"open-mixtral-8x22b","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"devstral-small-2505":{"id":"devstral-small-2505","name":"Devstral Small 2505","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"devstral-medium-2507":{"id":"devstral-medium-2507","name":"Devstral Medium","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"mistral-medium-latest":{"id":"mistral-medium-latest","name":"Mistral Medium (latest)","family":"mistral-medium","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":16384}},"open-mistral-7b":{"id":"open-mistral-7b","name":"Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2023-09-27","last_updated":"2023-09-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.25},"limit":{"context":8000,"output":8000}},"devstral-medium-latest":{"id":"devstral-medium-latest","name":"Devstral 2 (latest)","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131072,"output":131072}},"devstral-small-2507":{"id":"devstral-small-2507","name":"Devstral Small","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-07-10","last_updated":"2025-07-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":128000}},"mistral-medium-2508":{"id":"mistral-medium-2508","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-08-12","last_updated":"2025-08-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":262144}}}},"ovhcloud":{"id":"ovhcloud","env":["OVHCLOUD_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1","name":"OVHcloud AI Endpoints","doc":"https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//","models":{"mixtral-8x7b-instruct-v0.1":{"id":"mixtral-8x7b-instruct-v0.1","name":"Mixtral-8x7B-Instruct-v0.1","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":0.7},"limit":{"context":32768,"output":32768}},"qwen2.5-coder-32b-instruct":{"id":"qwen2.5-coder-32b-instruct","name":"Qwen2.5-Coder-32B-Instruct","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.96,"output":0.96},"limit":{"context":32768,"output":32768}},"meta-llama-3_3-70b-instruct":{"id":"meta-llama-3_3-70b-instruct","name":"Meta-Llama-3_3-70B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"mistral-7b-instruct-v0.3":{"id":"mistral-7b-instruct-v0.3","name":"Mistral-7B-Instruct-v0.3","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-01","last_updated":"2025-04-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":65536,"output":65536}},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek-R1-Distill-Llama-70B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-30","last_updated":"2025-01-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.74,"output":0.74},"limit":{"context":131072,"output":131072}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3-32B","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.25},"limit":{"context":32768,"output":32768}},"qwen2.5-vl-72b-instruct":{"id":"qwen2.5-vl-72b-instruct","name":"Qwen2.5-VL-72B-Instruct","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-31","last_updated":"2025-03-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.01,"output":1.01},"limit":{"context":32768,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3-Coder-30B-A3B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-28","last_updated":"2025-10-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.26},"limit":{"context":262144,"output":262144}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"gpt-oss-20b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.18},"limit":{"context":131072,"output":131072}},"mistral-small-3.2-24b-instruct-2506":{"id":"mistral-small-3.2-24b-instruct-2506","name":"Mistral-Small-3.2-24B-Instruct-2506","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-16","last_updated":"2025-07-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.31},"limit":{"context":131072,"output":131072}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.47},"limit":{"context":131072,"output":131072}},"mistral-nemo-instruct-2407":{"id":"mistral-nemo-instruct-2407","name":"Mistral-Nemo-Instruct-2407","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-20","last_updated":"2024-11-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":65536,"output":65536}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama-3.1-8B-Instruct","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-11","last_updated":"2025-06-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.11},"limit":{"context":131072,"output":131072}}}},"friendli":{"id":"friendli","env":["FRIENDLI_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://api.friendli.ai/serverless/v1","name":"Friendli","doc":"https://friendli.ai/docs/guides/serverless_endpoints/introduction","models":{"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-29","last_updated":"2026-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":262144,"output":262144}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4},"limit":{"context":202752,"output":202752}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":202752,"output":202752}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":0.6},"limit":{"context":131072,"output":131072}},"meta-llama/Llama-3.1-8B-Instruct":{"id":"meta-llama/Llama-3.1-8B-Instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-08-01","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":8000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":196608}}}},"cortecs":{"id":"cortecs","env":["CORTECS_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cortecs.ai/v1","name":"Cortecs","doc":"https://api.cortecs.ai/v1/models","models":{"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.09,"output":5.43},"limit":{"context":200000,"output":200000}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.76},"limit":{"context":256000,"output":256000}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":1.654},"limit":{"context":128000,"output":128000}},"glm-4.7":{"id":"glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":2.23},"limit":{"context":198000,"output":198000}},"glm-5":{"id":"glm-5","name":"GLM 5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.08,"output":3.44},"limit":{"context":202752,"output":202752}},"nova-pro-v1":{"id":"nova-pro-v1","name":"Nova Pro 1.0","family":"nova-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.016,"output":4.061},"limit":{"context":300000,"output":5000}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.099,"output":0.33},"limit":{"context":16384,"output":16384}},"claude-4-5-sonnet":{"id":"claude-4-5-sonnet","name":"Claude 4.5 Sonnet","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.259,"output":16.296},"limit":{"context":200000,"output":200000}},"kimi-k2-instruct":{"id":"kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-07-11","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.551,"output":2.646},"limit":{"context":131000,"output":131000}},"minimax-m2":{"id":"minimax-m2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-11","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.39,"output":1.57},"limit":{"context":400000,"output":400000}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.654,"output":11.024},"limit":{"context":1048576,"output":65535}},"claude-opus4-6":{"id":"claude-opus4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":1000000,"output":1000000}},"devstral-small-2512":{"id":"devstral-small-2512","name":"Devstral Small 2 2512","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262000,"output":262000}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.34,"output":1.34},"limit":{"context":196000,"output":196000}},"glm-4.5":{"id":"glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-07-29","last_updated":"2025-07-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.67,"output":2.46},"limit":{"context":131072,"output":131072}},"claude-opus4-5":{"id":"claude-opus4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5.98,"output":29.89},"limit":{"context":200000,"output":200000}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.307,"output":16.536},"limit":{"context":200000,"output":64000}},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.164,"output":1.311},"limit":{"context":128000,"output":128000}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":1.34},"limit":{"context":131072,"output":131072}},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next 80B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-04","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.158,"output":0.84},"limit":{"context":256000,"output":65536}},"claude-4-6-sonnet":{"id":"claude-4-6-sonnet","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3.59,"output":17.92},"limit":{"context":1000000,"output":1000000}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.441,"output":1.984},"limit":{"context":262000,"output":262000}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.32,"output":1.18},"limit":{"context":196608,"output":196608}},"intellect-3":{"id":"intellect-3","name":"INTELLECT 3","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.219,"output":1.202},"limit":{"context":128000,"output":128000}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-08-08","last_updated":"2025-08-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.53},"limit":{"context":203000,"output":203000}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT Oss 120b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-01","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT 4.1","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.354,"output":9.417},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-12","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.656,"output":2.731},"limit":{"context":262000,"output":262000}},"llama-3.1-405b-instruct":{"id":"llama-3.1-405b-instruct","name":"Llama 3.1 405B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}}}},"siliconflow":{"id":"siliconflow","env":["SILICONFLOW_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.siliconflow.com/v1","name":"SiliconFlow","doc":"https://cloud.siliconflow.com/models","models":{"nex-agi/DeepSeek-V3.1-Nex-N1":{"id":"nex-agi/DeepSeek-V3.1-Nex-N1","name":"nex-agi/DeepSeek-V3.1-Nex-N1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-VL-72B-Instruct":{"id":"Qwen/Qwen2.5-VL-72B-Instruct","name":"Qwen/Qwen2.5-VL-72B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen3-VL-32B-Thinking":{"id":"Qwen/Qwen3-VL-32B-Thinking","name":"Qwen/Qwen3-VL-32B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen/Qwen3-30B-A3B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":131000}},"Qwen/Qwen3-VL-235B-A22B-Thinking":{"id":"Qwen/Qwen3-VL-235B-A22B-Thinking","name":"Qwen/Qwen3-VL-235B-A22B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.45,"output":3.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-7B-Instruct":{"id":"Qwen/Qwen2.5-7B-Instruct","name":"Qwen/Qwen2.5-7B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen2.5-Coder-32B-Instruct":{"id":"Qwen/Qwen2.5-Coder-32B-Instruct","name":"Qwen/Qwen2.5-Coder-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-11-11","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-30B-A3B-Instruct":{"id":"Qwen/Qwen3-VL-30B-A3B-Instruct","name":"Qwen/Qwen3-VL-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/QwQ-32B":{"id":"Qwen/QwQ-32B","name":"Qwen/QwQ-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.58},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-235B-A22B":{"id":"Qwen/Qwen3-235B-A22B","name":"Qwen/Qwen3-235B-A22B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.35,"output":1.42},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Omni-30B-A3B-Captioner":{"id":"Qwen/Qwen3-Omni-30B-A3B-Captioner","name":"Qwen/Qwen3-Omni-30B-A3B-Captioner","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-VL-8B-Thinking":{"id":"Qwen/Qwen3-VL-8B-Thinking","name":"Qwen/Qwen3-VL-8B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":2},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-VL-7B-Instruct":{"id":"Qwen/Qwen2.5-VL-7B-Instruct","name":"Qwen/Qwen2.5-VL-7B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-28","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.05},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-Next-80B-A3B-Instruct":{"id":"Qwen/Qwen3-Next-80B-A3B-Instruct","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.4},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-8B":{"id":"Qwen/Qwen3-8B","name":"Qwen/Qwen3-8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen/Qwen3-30B-A3B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.3},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen/Qwen3-235B-A22B-Instruct-2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-32B":{"id":"Qwen/Qwen3-32B","name":"Qwen/Qwen3-32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen/Qwen3-Coder-30B-A3B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Omni-30B-A3B-Instruct","name":"Qwen/Qwen3-Omni-30B-A3B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen3-14B":{"id":"Qwen/Qwen3-14B","name":"Qwen/Qwen3-14B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"Qwen/Qwen2.5-72B-Instruct-128K":{"id":"Qwen/Qwen2.5-72B-Instruct-128K","name":"Qwen/Qwen2.5-72B-Instruct-128K","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":131000,"output":4000}},"Qwen/Qwen2.5-32B-Instruct":{"id":"Qwen/Qwen2.5-32B-Instruct","name":"Qwen/Qwen2.5-32B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen/Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Omni-30B-A3B-Thinking":{"id":"Qwen/Qwen3-Omni-30B-A3B-Thinking","name":"Qwen/Qwen3-Omni-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4},"limit":{"context":66000,"output":66000}},"Qwen/Qwen2.5-VL-32B-Instruct":{"id":"Qwen/Qwen2.5-VL-32B-Instruct","name":"Qwen/Qwen2.5-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-24","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":131000,"output":131000}},"Qwen/Qwen3-Next-80B-A3B-Thinking":{"id":"Qwen/Qwen3-Next-80B-A3B-Thinking","name":"Qwen/Qwen3-Next-80B-A3B-Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-235B-A22B-Instruct":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.5},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-14B-Instruct":{"id":"Qwen/Qwen2.5-14B-Instruct","name":"Qwen/Qwen2.5-14B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":33000,"output":4000}},"Qwen/Qwen3-VL-30B-A3B-Thinking":{"id":"Qwen/Qwen3-VL-30B-A3B-Thinking","name":"Qwen/Qwen3-VL-30B-A3B-Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-32B-Instruct":{"id":"Qwen/Qwen3-VL-32B-Instruct","name":"Qwen/Qwen3-VL-32B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-21","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-VL-8B-Instruct":{"id":"Qwen/Qwen3-VL-8B-Instruct","name":"Qwen/Qwen3-VL-8B-Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.68},"limit":{"context":262000,"output":262000}},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct","name":"Qwen/Qwen3-Coder-480B-A35B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":262000,"output":262000}},"Qwen/Qwen2.5-72B-Instruct":{"id":"Qwen/Qwen2.5-72B-Instruct","name":"Qwen/Qwen2.5-72B-Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.59,"output":0.59},"limit":{"context":33000,"output":4000}},"stepfun-ai/Step-3.5-Flash":{"id":"stepfun-ai/Step-3.5-Flash","name":"stepfun-ai/Step-3.5-Flash","family":"step","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":262000}},"zai-org/GLM-4.5":{"id":"zai-org/GLM-4.5","name":"zai-org/GLM-4.5","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":131000,"output":131000}},"zai-org/GLM-5V-Turbo":{"id":"zai-org/GLM-5V-Turbo","name":"zai-org/GLM-5V-Turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_write":0},"limit":{"context":200000,"output":131072}},"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"zai-org/GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2},"limit":{"context":205000,"output":205000}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"zai-org/GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4,"cache_write":0},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5-Air":{"id":"zai-org/GLM-4.5-Air","name":"zai-org/GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":131000,"output":131000}},"zai-org/GLM-5":{"id":"zai-org/GLM-5","name":"zai-org/GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.6V":{"id":"zai-org/GLM-4.6V","name":"zai-org/GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-07","last_updated":"2025-12-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":131000,"output":131000}},"zai-org/GLM-4.6":{"id":"zai-org/GLM-4.6","name":"zai-org/GLM-4.6","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.9},"limit":{"context":205000,"output":205000}},"zai-org/GLM-4.5V":{"id":"zai-org/GLM-4.5V","name":"zai-org/GLM-4.5V","family":"glm","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.86},"limit":{"context":66000,"output":66000}},"meta-llama/Meta-Llama-3.1-8B-Instruct":{"id":"meta-llama/Meta-Llama-3.1-8B-Instruct","name":"meta-llama/Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-23","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.06},"limit":{"context":33000,"output":4000}},"inclusionAI/Ring-flash-2.0":{"id":"inclusionAI/Ring-flash-2.0","name":"inclusionAI/Ring-flash-2.0","family":"ring","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-mini-2.0":{"id":"inclusionAI/Ling-mini-2.0","name":"inclusionAI/Ling-mini-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.28},"limit":{"context":131000,"output":131000}},"inclusionAI/Ling-flash-2.0":{"id":"inclusionAI/Ling-flash-2.0","name":"inclusionAI/Ling-flash-2.0","family":"ling","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"tencent/Hunyuan-A13B-Instruct":{"id":"tencent/Hunyuan-A13B-Instruct","name":"tencent/Hunyuan-A13B-Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-30","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"tencent/Hunyuan-MT-7B":{"id":"tencent/Hunyuan-MT-7B","name":"tencent/Hunyuan-MT-7B","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":33000,"output":33000}},"deepseek-ai/DeepSeek-V3.1":{"id":"deepseek-ai/DeepSeek-V3.1","name":"deepseek-ai/DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-25","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/deepseek-vl2":{"id":"deepseek-ai/deepseek-vl2","name":"deepseek-ai/deepseek-vl2","family":"deepseek","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-13","last_updated":"2025-11-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":4000,"output":4000}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"deepseek-ai/DeepSeek-V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-26","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0.18},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"deepseek-ai/DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":2.18},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B":{"id":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","name":"deepseek-ai/DeepSeek-R1-Distill-Qwen-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-20","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":131000,"output":131000}},"deepseek-ai/DeepSeek-V3.2-Exp":{"id":"deepseek-ai/DeepSeek-V3.2-Exp","name":"deepseek-ai/DeepSeek-V3.2-Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.41},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.2":{"id":"deepseek-ai/DeepSeek-V3.2","name":"deepseek-ai/DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.42},"limit":{"context":164000,"output":164000}},"deepseek-ai/DeepSeek-V3.1-Terminus":{"id":"deepseek-ai/DeepSeek-V3.1-Terminus","name":"deepseek-ai/DeepSeek-V3.1-Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":1},"limit":{"context":164000,"output":164000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"openai/gpt-oss-20b","family":"gpt-oss","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.18},"limit":{"context":131000,"output":8000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"openai/gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.45},"limit":{"context":131000,"output":8000}},"baidu/ERNIE-4.5-300B-A47B":{"id":"baidu/ERNIE-4.5-300B-A47B","name":"baidu/ERNIE-4.5-300B-A47B","family":"ernie","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-02","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":1.1},"limit":{"context":131000,"output":131000}},"THUDM/GLM-Z1-9B-0414":{"id":"THUDM/GLM-Z1-9B-0414","name":"THUDM/GLM-Z1-9B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":131000,"output":131000}},"THUDM/GLM-4-9B-0414":{"id":"THUDM/GLM-4-9B-0414","name":"THUDM/GLM-4-9B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.086,"output":0.086},"limit":{"context":33000,"output":33000}},"THUDM/GLM-4-32B-0414":{"id":"THUDM/GLM-4-32B-0414","name":"THUDM/GLM-4-32B-0414","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.27},"limit":{"context":33000,"output":33000}},"THUDM/GLM-Z1-32B-0414":{"id":"THUDM/GLM-Z1-32B-0414","name":"THUDM/GLM-Z1-32B-0414","family":"glm-z","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-18","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.57},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Thinking":{"id":"moonshotai/Kimi-K2-Thinking","name":"moonshotai/Kimi-K2-Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-07","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":2.5},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2-Instruct":{"id":"moonshotai/Kimi-K2-Instruct","name":"moonshotai/Kimi-K2-Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-13","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.58,"output":2.29},"limit":{"context":131000,"output":131000}},"moonshotai/Kimi-K2-Instruct-0905":{"id":"moonshotai/Kimi-K2-Instruct-0905","name":"moonshotai/Kimi-K2-Instruct-0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-08","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":262000,"output":262000}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"moonshotai/Kimi-K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.55,"output":3},"limit":{"context":262000,"output":262000}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMaxAI/MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"MiniMaxAI/MiniMax-M2.1":{"id":"MiniMaxAI/MiniMax-M2.1","name":"MiniMaxAI/MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2},"limit":{"context":197000,"output":131000}},"ByteDance-Seed/Seed-OSS-36B-Instruct":{"id":"ByteDance-Seed/Seed-OSS-36B-Instruct","name":"ByteDance-Seed/Seed-OSS-36B-Instruct","family":"seed","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-04","last_updated":"2025-11-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.21,"output":0.57},"limit":{"context":262000,"output":262000}}}},"vercel":{"id":"vercel","env":["AI_GATEWAY_API_KEY"],"npm":"@ai-sdk/gateway","name":"Vercel AI Gateway","doc":"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway","models":{"alibaba/qwen3-coder-plus":{"id":"alibaba/qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":1000000,"output":1000000}},"alibaba/qwen3-embedding-8b":{"id":"alibaba/qwen3-embedding-8b","name":"Qwen3 Embedding 8B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen-3-30b":{"id":"alibaba/qwen-3-30b","name":"Qwen3-30B-A3B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.29},"limit":{"context":40960,"output":16384}},"alibaba/qwen-3-235b":{"id":"alibaba/qwen-3-235b","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.6},"limit":{"context":40960,"output":16384}},"alibaba/qwen3.5-flash":{"id":"alibaba/qwen3.5-flash","name":"Qwen 3.5 Flash","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.001,"cache_write":0.125},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3.6-plus":{"id":"alibaba/qwen3.6-plus","name":"Qwen 3.6 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.09999999999999999,"cache_write":0.625},"limit":{"context":1000000,"output":64000}},"alibaba/qwen3-max":{"id":"alibaba/qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6},"limit":{"context":262144,"output":32768}},"alibaba/qwen3-embedding-0.6b":{"id":"alibaba/qwen3-embedding-0.6b","name":"Qwen3 Embedding 0.6B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.01,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen-3-32b":{"id":"alibaba/qwen-3-32b","name":"Qwen 3.32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-next-80b-a3b-thinking":{"id":"alibaba/qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":1.5},"limit":{"context":131072,"output":65536}},"alibaba/qwen3-vl-thinking":{"id":"alibaba/qwen3-vl-thinking","name":"Qwen3 VL Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":8.4},"limit":{"context":131072,"output":129024}},"alibaba/qwen3-235b-a22b-thinking":{"id":"alibaba/qwen3-235b-a22b-thinking","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.9},"limit":{"context":262114,"output":262114}},"alibaba/qwen3-next-80b-a3b-instruct":{"id":"alibaba/qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-12","last_updated":"2025-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":1.1},"limit":{"context":262144,"output":32768}},"alibaba/qwen3-coder-next":{"id":"alibaba/qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.2},"limit":{"context":256000,"output":256000}},"alibaba/qwen3-embedding-4b":{"id":"alibaba/qwen3-embedding-4b","name":"Qwen3 Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":32768,"output":32768}},"alibaba/qwen3-max-thinking":{"id":"alibaba/qwen3-max-thinking","name":"Qwen 3 Max Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":256000,"output":65536}},"alibaba/qwen3-coder":{"id":"alibaba/qwen3-coder","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.38,"output":1.53},"limit":{"context":262144,"output":66536}},"alibaba/qwen3-max-preview":{"id":"alibaba/qwen3-max-preview","name":"Qwen3 Max Preview","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":32768}},"alibaba/qwen3.5-plus":{"id":"alibaba/qwen3.5-plus","name":"Qwen 3.5 Plus","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2.4,"cache_read":0.04,"cache_write":0.5},"limit":{"context":1000000,"output":64000}},"alibaba/qwen-3-14b":{"id":"alibaba/qwen-3-14b","name":"Qwen3-14B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":40960,"output":16384}},"alibaba/qwen3-vl-instruct":{"id":"alibaba/qwen3-vl-instruct","name":"Qwen3 VL Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.8},"limit":{"context":131072,"output":129024}},"alibaba/qwen3-coder-30b-a3b":{"id":"alibaba/qwen3-coder-30b-a3b","name":"Qwen 3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.27},"limit":{"context":160000,"output":32768}},"perplexity/sonar-pro":{"id":"perplexity/sonar-pro","name":"Sonar Pro","family":"sonar-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8000}},"perplexity/sonar":{"id":"perplexity/sonar","name":"Sonar","family":"sonar","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-02","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":127000,"output":8000}},"perplexity/sonar-reasoning":{"id":"perplexity/sonar-reasoning","name":"Sonar Reasoning","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5},"limit":{"context":127000,"output":8000}},"perplexity/sonar-reasoning-pro":{"id":"perplexity/sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar-reasoning","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-09","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":127000,"output":8000}},"deepseek/deepseek-v3.2-thinking":{"id":"deepseek/deepseek-v3.2-thinking","name":"DeepSeek V3.2 Thinking","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":128000,"output":64000}},"deepseek/deepseek-v3.2-exp":{"id":"deepseek/deepseek-v3.2-exp","name":"DeepSeek V3.2 Exp","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4},"limit":{"context":163840,"output":163840}},"deepseek/deepseek-v3.1":{"id":"deepseek/deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1},"limit":{"context":163840,"output":128000}},"deepseek/deepseek-v3.2":{"id":"deepseek/deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.27,"output":0.4,"cache_read":0.22},"limit":{"context":163842,"output":8000}},"deepseek/deepseek-v3":{"id":"deepseek/deepseek-v3","name":"DeepSeek V3 0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.77,"output":0.77},"limit":{"context":163840,"output":16384}},"deepseek/deepseek-v3.1-terminus":{"id":"deepseek/deepseek-v3.1-terminus","name":"DeepSeek V3.1 Terminus","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-22","last_updated":"2025-09-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1},"limit":{"context":131072,"output":65536}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":32768}},"arcee-ai/trinity-mini":{"id":"arcee-ai/trinity-mini","name":"Trinity Mini","family":"trinity","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.15},"limit":{"context":131072,"output":131072}},"arcee-ai/trinity-large-thinking":{"id":"arcee-ai/trinity-large-thinking","name":"Trinity Large Thinking","family":"trinity","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":0.8999999999999999},"limit":{"context":262100,"output":80000}},"arcee-ai/trinity-large-preview":{"id":"arcee-ai/trinity-large-preview","name":"Trinity Large Preview","family":"trinity","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":131000,"output":131000}},"recraft/recraft-v3":{"id":"recraft/recraft-v3","name":"Recraft V3","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"recraft/recraft-v2":{"id":"recraft/recraft-v2","name":"Recraft V2","family":"recraft","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"voyage/voyage-3-large":{"id":"voyage/voyage-3-large","name":"voyage-3-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-large":{"id":"voyage/voyage-4-large","name":"voyage-4-large","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-3.5-lite":{"id":"voyage/voyage-3.5-lite","name":"voyage-3.5-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-code-3":{"id":"voyage/voyage-code-3","name":"voyage-code-3","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.18,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-finance-2":{"id":"voyage/voyage-finance-2","name":"voyage-finance-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-4-lite":{"id":"voyage/voyage-4-lite","name":"voyage-4-lite","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-4":{"id":"voyage/voyage-4","name":"voyage-4","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32000,"output":0}},"voyage/voyage-code-2":{"id":"voyage/voyage-code-2","name":"voyage-code-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01","last_updated":"2024-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-law-2":{"id":"voyage/voyage-law-2","name":"voyage-law-2","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"voyage/voyage-3.5":{"id":"voyage/voyage-3.5","name":"voyage-3.5","family":"voyage","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0},"limit":{"context":8192,"output":1536}},"morph/morph-v3-large":{"id":"morph/morph-v3-large","name":"Morph v3 Large","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.9,"output":1.9},"limit":{"context":32000,"output":32000}},"morph/morph-v3-fast":{"id":"morph/morph-v3-fast","name":"Morph v3 Fast","family":"morph","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08-15","last_updated":"2024-08-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":1.2},"limit":{"context":16000,"output":16000}},"zai/glm-5v-turbo":{"id":"zai/glm-5v-turbo","name":"GLM 5V Turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24},"limit":{"context":200000,"output":128000}},"zai/glm-4.7":{"id":"zai/glm-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":1.75,"cache_read":0.08},"limit":{"context":202752,"output":120000}},"zai/glm-5":{"id":"zai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131072}},"zai/glm-4.7-flashx":{"id":"zai/glm-4.7-flashx","name":"GLM 4.7 FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"zai/glm-4.6v-flash":{"id":"zai/glm-4.6v-flash","name":"GLM-4.6V-Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":24000}},"zai/glm-4.5":{"id":"zai/glm-4.5","name":"GLM 4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":131072,"output":131072}},"zai/glm-4.5-air":{"id":"zai/glm-4.5-air","name":"GLM 4.5 Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":128000,"output":96000}},"zai/glm-5-turbo":{"id":"zai/glm-5-turbo","name":"GLM 5 Turbo","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-15","last_updated":"2026-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.2,"output":4,"cache_read":0.24},"limit":{"context":202800,"output":131100}},"zai/glm-4.5v":{"id":"zai/glm-4.5v","name":"GLM 4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":66000,"output":66000}},"zai/glm-4.6":{"id":"zai/glm-4.6","name":"GLM 4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.45,"output":1.8},"limit":{"context":200000,"output":96000}},"zai/glm-4.6v":{"id":"zai/glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9,"cache_read":0.05},"limit":{"context":128000,"output":24000}},"zai/glm-4.7-flash":{"id":"zai/glm-4.7-flash","name":"GLM 4.7 Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.39999999999999997},"limit":{"context":200000,"output":131000}},"cohere/command-a":{"id":"cohere/command-a","name":"Command A","family":"command","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"cohere/embed-v4.0":{"id":"cohere/embed-v4.0","name":"Embed v4.0","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.12,"output":0},"limit":{"context":8192,"output":1536}},"prime-intellect/intellect-3":{"id":"prime-intellect/intellect-3","name":"INTELLECT 3","family":"intellect","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-11-26","last_updated":"2025-11-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.1},"limit":{"context":131072,"output":131072}},"xai/grok-4.20-non-reasoning":{"id":"xai/grok-4.20-non-reasoning","name":"Grok 4.20 Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-non-reasoning-beta":{"id":"xai/grok-4.20-non-reasoning-beta","name":"Grok 4.20 Beta Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-reasoning":{"id":"xai/grok-4.20-reasoning","name":"Grok 4.20 Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image":{"id":"xai/grok-imagine-image","name":"Grok Imagine Image","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4.20-multi-agent-beta":{"id":"xai/grok-4.20-multi-agent-beta","name":"Grok 4.20 Multi Agent Beta","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-imagine-image-pro":{"id":"xai/grok-imagine-image-pro","name":"Grok Imagine Image Pro","family":"grok","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-01-28","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"limit":{"context":0,"output":0}},"xai/grok-4-fast-reasoning":{"id":"xai/grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":256000}},"xai/grok-4.1-fast-non-reasoning":{"id":"xai/grok-4.1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4.20-reasoning-beta":{"id":"xai/grok-4.20-reasoning-beta","name":"Grok 4.20 Beta Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.20-multi-agent":{"id":"xai/grok-4.20-multi-agent","name":"Grok 4.20 Multi-Agent","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.19999999999999998},"limit":{"context":2000000,"output":2000000}},"xai/grok-4.1-fast-reasoning":{"id":"xai/grok-4.1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-4-fast-non-reasoning":{"id":"xai/grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"xai/grok-2-vision":{"id":"xai/grok-2-vision","name":"Grok 2 Vision","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":10,"cache_read":2},"limit":{"context":8192,"output":4096}},"xai/grok-4":{"id":"xai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"xai/grok-code-fast-1":{"id":"xai/grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"xai/grok-3-fast":{"id":"xai/grok-3-fast","name":"Grok 3 Fast","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":1.25},"limit":{"context":131072,"output":8192}},"xai/grok-3-mini-fast":{"id":"xai/grok-3-mini-fast","name":"Grok 3 Mini Fast","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":4,"reasoning":4,"cache_read":0.15},"limit":{"context":131072,"output":8192}},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"NVIDIA Nemotron 3 Super 120B A12B","family":"nemotron","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.65},"limit":{"context":256000,"output":32000}},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"Nemotron 3 Nano 30B A3B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24},"limit":{"context":262144,"output":262144}},"nvidia/nemotron-nano-12b-v2-vl":{"id":"nvidia/nemotron-nano-12b-v2-vl","name":"Nvidia Nemotron Nano 12B V2 VL","family":"nemotron","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12","last_updated":"2024-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":131072}},"nvidia/nemotron-nano-9b-v2":{"id":"nvidia/nemotron-nano-9b-v2","name":"Nvidia Nemotron Nano 9B V2","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-18","last_updated":"2025-08-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.16},"limit":{"context":131072,"output":131072}},"inception/mercury-2":{"id":"inception/mercury-2","name":"Mercury 2","family":"mercury","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":0.75,"cache_read":0.024999999999999998},"limit":{"context":128000,"output":128000}},"inception/mercury-coder-small":{"id":"inception/mercury-coder-small","name":"Mercury Coder Small Beta","family":"mercury","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-02-26","last_updated":"2025-02-26","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1},"limit":{"context":32000,"output":16384}},"openai/gpt-5.1-codex-max":{"id":"openai/gpt-5.1-codex-max","name":"GPT 5.1 Codex Max","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-chat":{"id":"openai/gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-4o-mini-search-preview":{"id":"openai/gpt-4o-mini-search-preview","name":"GPT 4o Mini Search Preview","family":"gpt-mini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2025-01","last_updated":"2025-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"input":111616,"output":16384}},"openai/codex-mini":{"id":"openai/codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.38},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5-chat":{"id":"openai/gpt-5-chat","name":"GPT-5 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.3-chat":{"id":"openai/gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.2-pro":{"id":"openai/gpt-5.2-pro","name":"GPT 5.2 ","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"input":272000,"output":128000}},"openai/text-embedding-3-large":{"id":"openai/text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-5.3-codex":{"id":"openai/gpt-5.3-codex","name":"GPT 5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/text-embedding-ada-002":{"id":"openai/text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-5.2":{"id":"openai/gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-pro":{"id":"openai/o3-pro","name":"o3 Pro","family":"o-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":20,"output":80},"limit":{"context":200000,"input":100000,"output":100000}},"openai/gpt-5.4-mini":{"id":"openai/gpt-5.4-mini","name":"GPT 5.4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4-nano":{"id":"openai/gpt-5.4-nano","name":"GPT 5.4 Nano","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.19999999999999998,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.2-codex":{"id":"openai/gpt-5.2-codex","name":"GPT-5.2-Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2025-12","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-codex-mini":{"id":"openai/gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.1-thinking":{"id":"openai/gpt-5.1-thinking","name":"GPT 5.1 Thinking","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5.4-pro":{"id":"openai/gpt-5.4-pro","name":"GPT 5.4 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-3.5-turbo":{"id":"openai/gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"input":12289,"output":4096}},"openai/o3-deep-research":{"id":"openai/o3-deep-research","name":"o3-deep-research","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-10","release_date":"2024-06-26","last_updated":"2024-06-26","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":40,"cache_read":2.5},"limit":{"context":200000,"input":100000,"output":100000}},"openai/text-embedding-3-small":{"id":"openai/text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"input":6656,"output":1536}},"openai/gpt-5.4":{"id":"openai/gpt-5.4","name":"GPT 5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-05","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"input":922000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.3},"limit":{"context":131072,"input":98304,"output":32768}},"openai/gpt-5-pro":{"id":"openai/gpt-5-pro","name":"GPT-5 pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"input":128000,"output":272000}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"gpt-oss-safeguard-20b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3,"cache_read":0.04},"limit":{"context":131072,"input":65536,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":131072}},"openai/gpt-3.5-turbo-instruct":{"id":"openai/gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-09","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":8192,"input":4096,"output":4096}},"openai/gpt-5.1-instant":{"id":"openai/gpt-5.1-instant","name":"GPT-5.1 Instant","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"input":111616,"output":16384}},"openai/gpt-5.1-codex":{"id":"openai/gpt-5.1-codex","name":"GPT-5.1-Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-08-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"openai/gpt-5-codex":{"id":"openai/gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"input":272000,"output":128000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"openai/o1":{"id":"openai/o1","name":"o1","family":"o","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"openai/o4-mini":{"id":"openai/o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"openai/gpt-4-turbo":{"id":"openai/gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"knowledge":"2023-12","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"input":272000,"output":128000}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"input":272000,"output":128000}},"amazon/titan-embed-text-v2":{"id":"amazon/titan-embed-text-v2","name":"Titan Text Embeddings V2","family":"titan-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-04","last_updated":"2024-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8192,"output":1536}},"amazon/nova-2-lite":{"id":"amazon/nova-2-lite","name":"Nova 2 Lite","family":"nova","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-01","last_updated":"2024-12-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":1000000,"output":1000000}},"amazon/nova-pro":{"id":"amazon/nova-pro","name":"Nova Pro","family":"nova-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":3.2,"cache_read":0.2},"limit":{"context":300000,"output":8192}},"amazon/nova-lite":{"id":"amazon/nova-lite","name":"Nova Lite","family":"nova-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.06,"output":0.24,"cache_read":0.015},"limit":{"context":300000,"output":8192}},"amazon/nova-micro":{"id":"amazon/nova-micro","name":"Nova Micro","family":"nova-micro","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-03","last_updated":"2024-12-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.035,"output":0.14,"cache_read":0.00875},"limit":{"context":128000,"output":8192}},"mistral/mistral-nemo":{"id":"mistral/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.17},"limit":{"context":60288,"output":16000}},"mistral/ministral-14b":{"id":"mistral/ministral-14b","name":"Ministral 14B","family":"ministral","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.2},"limit":{"context":256000,"output":256000}},"mistral/codestral-embed":{"id":"mistral/codestral-embed","name":"Codestral Embed","family":"codestral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"mistral/mistral-medium":{"id":"mistral/mistral-medium","name":"Mistral Medium 3.1","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":64000}},"mistral/mistral-embed":{"id":"mistral/mistral-embed","name":"Mistral Embed","family":"mistral-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"mistral/devstral-2":{"id":"mistral/devstral-2","name":"Devstral 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/mistral-large-3":{"id":"mistral/mistral-large-3","name":"Mistral Large 3","family":"mistral-large","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"mistral/devstral-small-2":{"id":"mistral/devstral-small-2","name":"Devstral Small 2","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":256000}},"mistral/devstral-small":{"id":"mistral/devstral-small","name":"Devstral Small 1.1","family":"devstral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":64000}},"mistral/ministral-8b":{"id":"mistral/ministral-8b","name":"Ministral 8B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":128000}},"mistral/magistral-medium":{"id":"mistral/magistral-medium","name":"Magistral Medium (latest)","family":"magistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":5},"limit":{"context":128000,"output":16384}},"mistral/mistral-small":{"id":"mistral/mistral-small","name":"Mistral Small (latest)","family":"mistral-small","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2026-03-16","last_updated":"2026-03-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":256000,"output":256000}},"mistral/magistral-small":{"id":"mistral/magistral-small","name":"Magistral Small","family":"magistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-06","release_date":"2025-03-17","last_updated":"2025-03-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":128000,"output":128000}},"mistral/pixtral-12b":{"id":"mistral/pixtral-12b","name":"Pixtral 12B","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-09-01","last_updated":"2024-09-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"mistral/mixtral-8x22b-instruct":{"id":"mistral/mixtral-8x22b-instruct","name":"Mixtral 8x22B","family":"mixtral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-04-17","last_updated":"2024-04-17","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":64000,"output":64000}},"mistral/pixtral-large":{"id":"mistral/pixtral-large","name":"Pixtral Large (latest)","family":"pixtral","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2024-11-01","last_updated":"2024-11-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":128000}},"mistral/ministral-3b":{"id":"mistral/ministral-3b","name":"Ministral 3B (latest)","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":128000}},"mistral/codestral":{"id":"mistral/codestral","name":"Codestral (latest)","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-05-29","last_updated":"2025-01-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":4096}},"meta/llama-3.2-1b":{"id":"meta/llama-3.2-1b","name":"Llama 3.2 1B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":8192}},"meta/llama-3.1-8b":{"id":"meta/llama-3.1-8b","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0.05},"limit":{"context":131072,"output":16384}},"meta/llama-3.2-90b":{"id":"meta/llama-3.2-90b","name":"Llama 3.2 90B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-3b":{"id":"meta/llama-3.2-3b","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-11b":{"id":"meta/llama-3.2-11b","name":"Llama 3.2 11B Vision Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.16,"output":0.16},"limit":{"context":128000,"output":8192}},"meta/llama-3.1-70b":{"id":"meta/llama-3.1-70b","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":0.4},"limit":{"context":131072,"output":16384}},"meta/llama-3.3-70b":{"id":"meta/llama-3.3-70b","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-maverick":{"id":"meta/llama-4-maverick","name":"Llama-4-Maverick-17B-128E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"meta/llama-4-scout":{"id":"meta/llama-4-scout","name":"Llama-4-Scout-17B-16E-Instruct-FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"vercel/v0-1.5-md":{"id":"vercel/v0-1.5-md","name":"v0-1.5-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-09","last_updated":"2025-06-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"vercel/v0-1.0-md":{"id":"vercel/v0-1.0-md","name":"v0-1.0-md","family":"v0","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":128000,"output":32000}},"minimax/minimax-m2.7":{"id":"minimax/minimax-m2.7","name":"Minimax M2.7","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"minimax/minimax-m2.7-highspeed":{"id":"minimax/minimax-m2.7-highspeed","name":"MiniMax M2.7 High Speed","family":"minimax","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131100}},"minimax/minimax-m2":{"id":"minimax/minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.15,"cache_read":0.03,"cache_write":0.38},"limit":{"context":262114,"output":262114}},"minimax/minimax-m2.1":{"id":"minimax/minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.1-lightning":{"id":"minimax/minimax-m2.1-lightning","name":"MiniMax M2.1 Lightning","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.4,"cache_read":0.03,"cache_write":0.38},"limit":{"context":204800,"output":131072}},"minimax/minimax-m2.5":{"id":"minimax/minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131000}},"minimax/minimax-m2.5-highspeed":{"id":"minimax/minimax-m2.5-highspeed","name":"MiniMax M2.5 High Speed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.4,"cache_read":0.03,"cache_write":0.375},"limit":{"context":0,"output":0}},"kwaipilot/kat-coder-pro-v1":{"id":"kwaipilot/kat-coder-pro-v1","name":"KAT-Coder-Pro V1","family":"kat-coder","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-10-24","last_updated":"2025-10-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":256000,"output":32000}},"kwaipilot/kat-coder-pro-v2":{"id":"kwaipilot/kat-coder-pro-v2","name":"Kat Coder Pro V2","family":"kat-coder","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":256000,"output":256000}},"google/gemini-2.5-flash-lite-preview-09-2025":{"id":"google/gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/gemini-3.1-flash-lite-preview":{"id":"google/gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-06","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1000000,"output":65000}},"google/gemini-3-pro-image":{"id":"google/gemini-3-pro-image","name":"Nano Banana Pro (Gemini 3 Pro Image)","family":"gemini-pro","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-03","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":2,"output":120},"limit":{"context":65536,"output":32768}},"google/gemini-3.1-pro-preview":{"id":"google/gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-02-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1000000,"output":64000}},"google/gemini-3-pro-preview":{"id":"google/gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"google/imagen-4.0-ultra-generate-001":{"id":"google/imagen-4.0-ultra-generate-001","name":"Imagen 4 Ultra","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-24","last_updated":"2025-05-24","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-embedding-001":{"id":"google/gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":8192,"output":1536}},"google/gemma-4-31b-it":{"id":"google/gemma-4-31b-it","name":"Gemma 4 31B IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.39999999999999997},"limit":{"context":262144,"output":131072}},"google/gemini-2.5-flash-image":{"id":"google/gemini-2.5-flash-image","name":"Nano Banana (Gemini 2.5 Flash Image)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/text-embedding-005":{"id":"google/text-embedding-005","name":"Text Embedding 005","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-08","last_updated":"2024-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/text-multilingual-embedding-002":{"id":"google/text-multilingual-embedding-002","name":"Text Multilingual Embedding 002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-03","last_updated":"2024-03","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.03,"output":0},"limit":{"context":8192,"output":1536}},"google/gemini-3.1-flash-image-preview":{"id":"google/gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image Preview (Nano Banana 2)","family":"gemini","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.5,"output":3},"limit":{"context":131072,"output":32768}},"google/gemini-3-flash":{"id":"google/gemini-3-flash","name":"Gemini 3 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1000000,"output":64000}},"google/imagen-4.0-generate-001":{"id":"google/imagen-4.0-generate-001","name":"Imagen 4","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-preview-09-2025":{"id":"google/gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"google/gemini-embedding-2":{"id":"google/gemini-embedding-2","name":"Gemini Embedding 2","family":"gemini-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2026-03-10","last_updated":"2026-03-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":0,"output":0}},"google/gemma-4-26b-a4b-it":{"id":"google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-03","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0.39999999999999997},"limit":{"context":262144,"output":131072}},"google/imagen-4.0-fast-generate-001":{"id":"google/imagen-4.0-fast-generate-001","name":"Imagen 4 Fast","family":"imagen","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":480,"output":0}},"google/gemini-2.5-flash-lite":{"id":"google/gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash-image-preview":{"id":"google/gemini-2.5-flash-image-preview","name":"Nano Banana Preview (Gemini 2.5 Flash Image Preview)","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-03-20","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"google/gemini-2.0-flash-lite":{"id":"google/gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-2.0-flash":{"id":"google/gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"moonshotai/kimi-k2-turbo":{"id":"moonshotai/kimi-k2-turbo","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.4,"output":10},"limit":{"context":256000,"output":16384}},"moonshotai/kimi-k2.5":{"id":"moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.2},"limit":{"context":262144,"output":262144}},"moonshotai/kimi-k2-thinking-turbo":{"id":"moonshotai/kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262114,"output":262114}},"moonshotai/kimi-k2-0905":{"id":"moonshotai/kimi-k2-0905","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5},"limit":{"context":131072,"output":16384}},"moonshotai/kimi-k2-thinking":{"id":"moonshotai/kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.47,"output":2,"cache_read":0.14},"limit":{"context":216144,"output":216144}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"anthropic/claude-3.5-sonnet-20240620":{"id":"anthropic/claude-3.5-sonnet-20240620","name":"Claude 3.5 Sonnet (2024-06-20)","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4.6":{"id":"anthropic/claude-opus-4.6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02","last_updated":"2026-02","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000}},"anthropic/claude-opus-4.5":{"id":"anthropic/claude-opus-4.5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":18.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-haiku-4.5":{"id":"anthropic/claude-haiku-4.5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4.6":{"id":"anthropic/claude-sonnet-4.6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75,"context_over_200k":{"input":6,"output":22.5,"cache_read":0.6,"cache_write":7.5}},"limit":{"context":1000000,"output":128000}},"anthropic/claude-3-opus":{"id":"anthropic/claude-3-opus","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"anthropic/claude-3.5-haiku":{"id":"anthropic/claude-3.5-haiku","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"anthropic/claude-opus-4":{"id":"anthropic/claude-opus-4","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-3-haiku":{"id":"anthropic/claude-3-haiku","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"anthropic/claude-sonnet-4.5":{"id":"anthropic/claude-sonnet-4.5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-3.5-sonnet":{"id":"anthropic/claude-3.5-sonnet","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"anthropic/claude-3.7-sonnet":{"id":"anthropic/claude-3.7-sonnet","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"xiaomi/mimo-v2-pro":{"id":"xiaomi/mimo-v2-pro","name":"MiMo V2 Pro","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3,"cache_read":0.19999999999999998},"limit":{"context":1000000,"output":128000}},"xiaomi/mimo-v2-flash":{"id":"xiaomi/mimo-v2-flash","name":"MiMo V2 Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.29},"limit":{"context":262144,"output":32000}},"bytedance/seed-1.6":{"id":"bytedance/seed-1.6","name":"Seed 1.6","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09","last_updated":"2025-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":32000}},"bytedance/seed-1.8":{"id":"bytedance/seed-1.8","name":"Seed 1.8","family":"seed","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-10","last_updated":"2025-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":64000}},"meituan/longcat-flash-chat":{"id":"meituan/longcat-flash-chat","name":"LongCat Flash Chat","family":"longcat","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-08-30","last_updated":"2025-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":128000,"output":8192}},"meituan/longcat-flash-thinking":{"id":"meituan/longcat-flash-thinking","name":"LongCat Flash Thinking","family":"longcat","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":1.5},"limit":{"context":128000,"output":8192}},"meituan/longcat-flash-thinking-2601":{"id":"meituan/longcat-flash-thinking-2601","name":"LongCat Flash Thinking 2601","family":"longcat","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"release_date":"2026-03-13","last_updated":"2026-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"limit":{"context":32768,"output":32768}},"bfl/flux-pro-1.0-fill":{"id":"bfl/flux-pro-1.0-fill","name":"FLUX.1 Fill [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1":{"id":"bfl/flux-pro-1.1","name":"FLUX1.1 [pro]","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-10","last_updated":"2024-10","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-pro":{"id":"bfl/flux-kontext-pro","name":"FLUX.1 Kontext Pro","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-kontext-max":{"id":"bfl/flux-kontext-max","name":"FLUX.1 Kontext Max","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-06","last_updated":"2025-06","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}},"bfl/flux-pro-1.1-ultra":{"id":"bfl/flux-pro-1.1-ultra","name":"FLUX1.1 [pro] Ultra","family":"flux","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2024-11","last_updated":"2024-11","modalities":{"input":["text"],"output":["image"]},"open_weights":false,"limit":{"context":512,"output":0}}}},"minimax":{"id":"minimax","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimax.io/anthropic/v1","name":"MiniMax (minimax.io)","doc":"https://platform.minimax.io/docs/guides/quickstart","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"llmgateway":{"id":"llmgateway","env":["LLMGATEWAY_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.llmgateway.io/v1","name":"LLM Gateway","doc":"https://llmgateway.io/docs","models":{"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131100}},"gpt-4o-mini-search-preview":{"id":"gpt-4o-mini-search-preview","name":"GPT-4o Mini Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":16384}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"grok-4-20-beta-0309-non-reasoning":{"id":"grok-4-20-beta-0309-non-reasoning","name":"Grok 4.20 Beta Non-Reasoning (0309)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":2000000,"output":30000}},"qwen3-coder-plus":{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":6,"output":60},"limit":{"context":1000000,"output":66000}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":200000,"output":32000}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview (09-2025)","family":"gemini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65535}},"qwen3-235b-a22b-instruct-2507":{"id":"qwen3-235b-a22b-instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-21","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":8192},"status":"beta"},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-26","last_updated":"2026-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":32768}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":128000,"output":16384}},"mistral-large-2512":{"id":"mistral-large-2512","name":"Mistral Large 3","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":262144,"output":16384}},"llama-4-scout":{"id":"llama-4-scout","name":"Llama 4 Scout","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.18,"output":0.59},"limit":{"context":32768,"output":16384},"status":"beta"},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":128000}},"minimax-m2.7-highspeed":{"id":"minimax-m2.7-highspeed","name":"MiniMax M2.7 Highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06},"limit":{"context":204800,"output":131100}},"hermes-2-pro-llama-3-8b":{"id":"hermes-2-pro-llama-3-8b","name":"Hermes 2 Pro Llama 3 8B","family":"nousresearch","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-05-27","last_updated":"2024-05-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.14,"output":0.14},"limit":{"context":8192,"output":8192},"status":"beta"},"qwen-coder-plus":{"id":"qwen-coder-plus","name":"Qwen Coder Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":5},"limit":{"context":131072,"output":8192}},"auto":{"id":"auto","name":"Auto Route","family":"auto","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"gemma-3n-e4b-it":{"id":"gemma-3n-e4b-it","name":"Gemma 3n E4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude 3.5 Sonnet (2024-10-22)","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":8192},"status":"deprecated"},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":21,"output":168},"limit":{"context":400000,"output":272000}},"qwq-plus":{"id":"qwq-plus","name":"QwQ Plus","family":"qwen","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-06","last_updated":"2025-03-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4},"limit":{"context":131072,"output":8192}},"glm-4.6v-flashx":{"id":"glm-4.6v-flashx","name":"GLM-4.6V FlashX","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.4,"cache_read":0},"limit":{"context":128000,"output":16000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.03},"limit":{"context":1048576,"output":65536}},"qwen-vl-plus":{"id":"qwen-vl-plus","name":"Qwen VL Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.21,"output":0.64},"limit":{"context":131072,"output":32000}},"gemma-2-27b-it-together":{"id":"gemma-2-27b-it-together","name":"Gemma 2 27B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.08},"limit":{"context":8192,"output":16384}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3.2,"cache_read":0.2},"limit":{"context":202800,"output":131100}},"devstral-2512":{"id":"devstral-2512","name":"Devstral 2","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-09","last_updated":"2025-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2},"limit":{"context":262144,"output":16384}},"qwen3-32b":{"id":"qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":32768,"output":8192}},"codestral-2508":{"id":"codestral-2508","name":"Codestral","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":16384}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7 FlashX","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.4,"cache_read":0.01},"limit":{"context":200000,"output":128000}},"gemma-3-1b-it":{"id":"gemma-3-1b-it","name":"Gemma 3 1B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro (Preview)","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"qwen35-397b-a17b":{"id":"qwen35-397b-a17b","name":"Qwen3.5 397B A17B","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":65536}},"qwen-max":{"id":"qwen-max","name":"Qwen Max","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.6,"output":6.4},"limit":{"context":131072,"output":32000}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"output":16384}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-02-05","last_updated":"2025-02-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1048576,"output":8192},"status":"deprecated"},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash (Preview)","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05},"limit":{"context":1048576,"output":65535}},"qwen-plus":{"id":"qwen-plus","name":"Qwen Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":131072,"output":32000}},"glm-4-32b-0414-128k":{"id":"glm-4-32b-0414-128k","name":"GLM-4 32B (0414-128k)","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.1},"limit":{"context":128000,"output":16384}},"seed-1-6-flash-250715":{"id":"seed-1-6-flash-250715","name":"Seed 1.6 Flash (250715)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-26","last_updated":"2025-07-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.3,"cache_read":0.02},"limit":{"context":256000,"output":16384}},"qwen-omni-turbo":{"id":"qwen-omni-turbo","name":"Qwen Omni Turbo","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-26","last_updated":"2025-03-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":32768,"output":8192}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":400000,"output":128000}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Claude 3 Haiku (2024-03-07)","family":"claude","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03},"limit":{"context":200000,"output":4096}},"seed-1-6-250615":{"id":"seed-1-6-250615","name":"Seed 1.6 (250615)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-06-25","last_updated":"2025-06-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":16384}},"qwen3-vl-235b-a22b-thinking":{"id":"qwen3-vl-235b-a22b-thinking","name":"Qwen3 VL 235B A22B Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"qwen3-vl-30b-a3b-thinking":{"id":"qwen3-vl-30b-a3b-thinking","name":"Qwen3 VL 30B A3B Thinking","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-11","last_updated":"2025-10-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1},"limit":{"context":131072,"output":32768}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"output":128000}},"minimax-m2":{"id":"minimax-m2","name":"MiniMax M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1,"cache_read":0.03},"limit":{"context":196608,"output":131072}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5 (2025-09-29)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"qwen-flash":{"id":"qwen-flash","name":"Qwen Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-09","last_updated":"2024-09-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":1000000,"output":32000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":16384}},"cogview-4":{"id":"cogview-4","name":"CogView-4","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-04","last_updated":"2025-03-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen2-5-vl-32b-instruct":{"id":"qwen2-5-vl-32b-instruct","name":"Qwen2.5 VL 32B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.2},"limit":{"context":131072,"output":32768}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-03-25","last_updated":"2025-03-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":1048576,"output":65536}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"sonar-pro":{"id":"sonar-pro","name":"Sonar Pro","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-07","last_updated":"2025-03-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":200000,"output":16384}},"pixtral-large-latest":{"id":"pixtral-large-latest","name":"Pixtral Large Latest","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-11-18","last_updated":"2024-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":12},"limit":{"context":128000,"output":16384}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"output":128000}},"qwen3-vl-8b-instruct":{"id":"qwen3-vl-8b-instruct","name":"Qwen3 VL 8B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-14","last_updated":"2025-10-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.5},"limit":{"context":131072,"output":8192}},"claude-3-7-sonnet":{"id":"claude-3-7-sonnet","name":"Claude 3.7 Sonnet","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-02-24","last_updated":"2025-02-24","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":8192}},"grok-4-20-beta-0309-reasoning":{"id":"grok-4-20-beta-0309-reasoning","name":"Grok 4.20 Beta Reasoning (0309)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":2000000,"output":30000}},"grok-imagine-image":{"id":"grok-imagine-image","name":"Grok Imagine Image","family":"grok","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-02","last_updated":"2026-03-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o Mini","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"gemini-pro-latest":{"id":"gemini-pro-latest","name":"Gemini Pro Latest","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-27","last_updated":"2026-02-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":1048576,"output":65536}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.08},"limit":{"context":400000,"output":128000}},"claude-3-5-haiku":{"id":"claude-3-5-haiku","name":"Claude 3.5 Haiku","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08},"limit":{"context":200000,"output":8192},"status":"deprecated"},"qwen3-max":{"id":"qwen3-max","name":"Qwen3 Max","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-24","last_updated":"2025-09-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":15,"cache_read":0.6},"limit":{"context":256000,"output":32800}},"minimax-m2.1":{"id":"minimax-m2.1","name":"MiniMax M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":1.1},"limit":{"context":196608,"output":131072}},"gemini-3-pro-image-preview":{"id":"gemini-3-pro-image-preview","name":"Gemini 3 Pro Image (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-11-20","last_updated":"2025-11-20","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2},"limit":{"context":65536,"output":32768}},"mixtral-8x7b-instruct-together":{"id":"mixtral-8x7b-instruct-together","name":"Mixtral 8x7B Instruct","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2023-12-10","last_updated":"2023-12-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.06},"limit":{"context":32768,"output":16384}},"qwen-max-latest":{"id":"qwen-max-latest","name":"Qwen Max Latest","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-25","last_updated":"2025-01-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.6,"output":6.4},"limit":{"context":131072,"output":32000}},"o4-mini":{"id":"o4-mini","name":"o4 Mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":16384}},"glm-4.6v-flash":{"id":"glm-4.6v-flash","name":"GLM-4.6V Flash","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"output":128000}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-02","last_updated":"2025-10-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.03},"limit":{"context":32768,"output":32768}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":128000,"output":16384}},"mistral-large-latest":{"id":"mistral-large-latest","name":"Mistral Large Latest","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":4,"output":12},"limit":{"context":128000,"output":16384}},"mistral-small-2506":{"id":"mistral-small-2506","name":"Mistral Small 3.2","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-20","last_updated":"2025-06-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":16384}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Gemma 3 12B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"seedream-4-0":{"id":"seedream-4-0","name":"Seedream 4.0","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-09-16","last_updated":"2025-09-16","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-30b-a3b-instruct-2507":{"id":"qwen3-30b-a3b-instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":8192}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":400000,"output":128000}},"minimax-text-01":{"id":"minimax-text-01","name":"MiniMax Text 01","family":"minimax","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-15","last_updated":"2025-01-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1},"limit":{"context":1000000,"output":131072}},"qwen3-32b-fp8":{"id":"qwen3-32b-fp8","name":"Qwen3 32B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.45},"limit":{"context":40960,"output":20000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.03},"limit":{"context":1048576,"output":65535}},"llama-4-scout-17b-instruct":{"id":"llama-4-scout-17b-instruct","name":"Llama 4 Scout 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.66},"limit":{"context":8192,"output":2048},"status":"beta"},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.18},"limit":{"context":128000,"output":16400}},"qwen3-4b-fp8":{"id":"qwen3-4b-fp8","name":"Qwen3 4B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":128000,"output":20000}},"veo-3.1-generate-preview":{"id":"veo-3.1-generate-preview","name":"Veo 3.1","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-14","last_updated":"2026-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":1},"status":"beta"},"llama-guard-4-12b":{"id":"llama-guard-4-12b","name":"Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-30","last_updated":"2025-04-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":131072,"output":16384}},"gemma-3n-e2b-it":{"id":"gemma-3n-e2b-it","name":"Gemma 3n E2B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-06-26","last_updated":"2025-06-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex mini","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-12","last_updated":"2025-11-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":400000,"output":128000}},"gemini-3.1-flash-image-preview":{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":1.5},"limit":{"context":65536,"output":65536}},"ministral-8b-2512":{"id":"ministral-8b-2512","name":"Ministral 8B","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":262144,"output":16384}},"grok-4-fast":{"id":"grok-4-fast","name":"Grok 4 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"gemma-3-27b":{"id":"gemma-3-27b","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.27},"limit":{"context":128000,"output":16384}},"grok-imagine-image-pro":{"id":"grok-imagine-image-pro","name":"Grok Imagine Image Pro","family":"grok","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-02","last_updated":"2026-03-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-vl-flash":{"id":"qwen3-vl-flash","name":"Qwen3 VL Flash","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":262144,"output":32768}},"llama-3.1-70b-instruct":{"id":"llama-3.1-70b-instruct","name":"Llama 3.1 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":2048},"status":"beta"},"seed-1-8-251228":{"id":"seed-1-8-251228","name":"Seed 1.8 (251228)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-18","last_updated":"2025-12-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":16384}},"qwen3-235b-a22b-thinking-2507":{"id":"qwen3-235b-a22b-thinking-2507","name":"Qwen3 235B A22B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262000,"output":8192},"status":"beta"},"qwen3-next-80b-a3b-thinking":{"id":"qwen3-next-80b-a3b-thinking","name":"Qwen3 Next 80B A3B Thinking","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":6},"limit":{"context":131072,"output":32768},"status":"beta"},"seed-1-6-250915":{"id":"seed-1-6-250915","name":"Seed 1.6 (250915)","family":"seed","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.05},"limit":{"context":256000,"output":16384}},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5},"limit":{"context":256000,"output":10000}},"glm-4.5-x":{"id":"glm-4.5-x","name":"GLM-4.5 X","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2.2,"output":8.9,"cache_read":0.45},"limit":{"context":128000,"output":16384},"status":"beta"},"veo-3.1-fast-generate-preview":{"id":"veo-3.1-fast-generate-preview","name":"Veo 3.1 Fast","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-03-14","last_updated":"2026-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":1},"status":"beta"},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gemma-3-4b-it":{"id":"gemma-3-4b-it","name":"Gemma 3 4B IT","family":"gemma","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-03-10","last_updated":"2025-03-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.3},"limit":{"context":1000000,"output":16384}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"qwen-image-max":{"id":"qwen-image-max","name":"Qwen Image Max","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-04","last_updated":"2025-08-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-30b-a3b-thinking-2507":{"id":"qwen3-30b-a3b-thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":8192}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast Reasoning","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"o1":{"id":"o1","name":"o1","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":16384}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5 Air","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.1,"cache_read":0.03},"limit":{"context":128000,"output":16384}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-01","last_updated":"2026-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":1050000,"output":128000}},"claude-3-5-sonnet":{"id":"claude-3-5-sonnet","name":"Claude 3.5 Sonnet","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":16384}},"gpt-3.5-turbo":{"id":"gpt-3.5-turbo","name":"GPT-3.5 Turbo","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2022-11-30","last_updated":"2022-11-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16385,"output":16384}},"o3-mini":{"id":"o3-mini","name":"o3 Mini","family":"gpt","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":16384}},"qwen-image-max-2025-12-30":{"id":"qwen-image-max-2025-12-30","name":"Qwen Image Max 2025-12-30","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-31","last_updated":"2025-12-31","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen-vl-max":{"id":"qwen-vl-max","name":"Qwen VL Max","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":3.2},"limit":{"context":131072,"output":32000}},"sonar":{"id":"sonar","name":"Sonar","family":"sonar","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":1},"limit":{"context":130000,"output":16384}},"qwen3-coder-flash":{"id":"qwen3-coder-flash","name":"Qwen3 Coder Flash","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.5,"cache_read":0.06},"limit":{"context":1000000,"output":65536}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek V3.1","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.11},"limit":{"context":128000,"output":32768}},"ministral-3b-2512":{"id":"ministral-3b-2512","name":"Ministral 3B","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":131072,"output":16384}},"grok-4-20-multi-agent-beta-0309":{"id":"grok-4-20-multi-agent-beta-0309","name":"Grok 4.20 Multi-Agent Beta (0309)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-09","last_updated":"2026-03-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6,"cache_read":0.2},"limit":{"context":2000000,"output":30000}},"qwen-plus-latest":{"id":"qwen-plus-latest","name":"Qwen Plus Latest","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-09-09","last_updated":"2024-09-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.2,"cache_read":0.08},"limit":{"context":1000000,"output":32000}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":1.8,"cache_read":0.11},"limit":{"context":128000,"output":16000}},"seedream-4-5":{"id":"seedream-4-5","name":"Seedream 4.5","family":"seed","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-03","last_updated":"2025-12-03","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"llama-3.1-nemotron-ultra-253b":{"id":"llama-3.1-nemotron-ultra-253b","name":"Llama 3.1 Nemotron Ultra 253B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-07","last_updated":"2025-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":128000,"output":16384}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":256000}},"llama-4-maverick-17b-instruct":{"id":"llama-4-maverick-17b-instruct","name":"Llama 4 Maverick 17B Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.24,"output":0.97},"limit":{"context":8192,"output":2048},"status":"beta"},"grok-4-0709":{"id":"grok-4-0709","name":"Grok 4 (0709)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":256000,"output":256000}},"qwen3-next-80b-a3b-instruct":{"id":"qwen3-next-80b-a3b-instruct","name":"Qwen3 Next 80B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-10","last_updated":"2025-09-10","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":129024,"output":32768}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":60},"limit":{"context":8192,"output":8192}},"qwen-image":{"id":"qwen-image","name":"Qwen Image","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-04","last_updated":"2025-08-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen-image-edit-plus":{"id":"qwen-image-edit-plus","name":"Qwen Image Edit Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-19","last_updated":"2025-08-19","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.2,"cache_read":0.11},"limit":{"context":200000,"output":16384}},"qwen3-30b-a3b-fp8":{"id":"qwen3-30b-a3b-fp8","name":"Qwen3 30B A3B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.45},"limit":{"context":40960,"output":20000}},"minimax-m2.1-lightning":{"id":"minimax-m2.1-lightning","name":"MiniMax M2.1 Lightning","family":"minimax","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0.48},"limit":{"context":196608,"output":131072}},"claude-3-haiku":{"id":"claude-3-haiku","name":"Claude 3 Haiku","family":"claude","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03},"limit":{"context":200000,"output":4096}},"glm-image":{"id":"glm-image","name":"GLM-Image","family":"glm","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-01-14","last_updated":"2025-01-14","modalities":{"input":["text"],"output":["text","image"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9,"cache_read":0.05},"limit":{"context":128000,"output":16000}},"qwen3-max-2026-01-23":{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","family":"qwen","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.2,"output":6,"cache_read":0.24},"limit":{"context":262144,"output":65536}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5},"limit":{"context":200000,"output":32000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-03-06","last_updated":"2026-03-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":1050000,"output":128000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5 (2025-10-01)","family":"claude","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1},"limit":{"context":200000,"output":64000}},"qwen-image-edit-max":{"id":"qwen-image-edit-max","name":"Qwen Image Edit Max","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2026-01-16","last_updated":"2026-01-16","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5 Flash","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"llama-3.2-3b-instruct":{"id":"llama-3.2-3b-instruct","name":"Llama 3.2 3B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-18","last_updated":"2024-09-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.05},"limit":{"context":32768,"output":32000},"status":"beta"},"qwen3-coder-next":{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.68,"cache_read":0.06},"limit":{"context":262144,"output":262144}},"qwen-image-plus":{"id":"qwen-image-plus","name":"Qwen Image Plus","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-08-04","last_updated":"2025-08-04","modalities":{"input":["text"],"output":["text","image"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":2000,"output":4096}},"qwen3-vl-plus":{"id":"qwen3-vl-plus","name":"Qwen3 VL Plus","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.6,"cache_read":0.04},"limit":{"context":262144,"output":32768}},"grok-4-1-fast":{"id":"grok-4-1-fast","name":"Grok 4.1 Fast","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4 (2025-05-14)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-05-14","last_updated":"2025-05-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":16384}},"qwen3-coder-480b-a35b-instruct":{"id":"qwen3-coder-480b-a35b-instruct","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":1.8},"limit":{"context":262000,"output":8192}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5},"limit":{"context":1000000,"output":128000}},"gpt-4o-search-preview":{"id":"gpt-4o-search-preview","name":"GPT-4o Search Preview","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":16384}},"custom":{"id":"custom","name":"Custom Model","family":"auto","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 Nano","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1000000,"output":16384}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude 3.7 Sonnet (2025-02-19)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":8192}},"qwen3-vl-30b-a3b-instruct":{"id":"qwen3-vl-30b-a3b-instruct","name":"Qwen3 VL 30B A3B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-10-05","last_updated":"2025-10-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":131072,"output":32768}},"qwen3-coder-30b-a3b-instruct":{"id":"qwen3-coder-30b-a3b-instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":262000,"output":8192}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-02-15","last_updated":"2026-02-15","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"o3":{"id":"o3","name":"o3","family":"gpt","attachment":true,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-06-01","last_updated":"2025-06-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":16384}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek V3.2","family":"deepseek","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":0.42,"cache_read":0.03},"limit":{"context":163840,"output":16384}},"qwen3-235b-a22b-fp8":{"id":"qwen3-235b-a22b-fp8","name":"Qwen3 235B A22B FP8","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-28","last_updated":"2025-04-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.8},"limit":{"context":40960,"output":20000}},"gpt-oss-20b":{"id":"gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.5},"limit":{"context":131072,"output":32766}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"minimax-m2.5-highspeed":{"id":"minimax-m2.5-highspeed","name":"MiniMax M2.5 Highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2024-01-01","last_updated":"2024-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.03},"limit":{"context":204800,"output":131100}},"qwen-turbo":{"id":"qwen-turbo","name":"Qwen Turbo","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-02-01","last_updated":"2025-02-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":1000000,"output":8192}},"kimi-k2":{"id":"kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":3,"cache_read":0.5},"limit":{"context":131072,"output":16384}},"llama-3-8b-instruct":{"id":"llama-3-8b-instruct","name":"Llama 3 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-04-03","last_updated":"2025-04-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":8192,"output":8192}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3},"limit":{"context":200000,"output":64000}},"qwen3-vl-235b-a22b-instruct":{"id":"qwen3-vl-235b-a22b-instruct","name":"Qwen3 VL 235B A22B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-09-23","last_updated":"2025-09-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2},"limit":{"context":131072,"output":32768}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-22","last_updated":"2025-07-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.01},"limit":{"context":1048576,"output":65535}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7 Flash","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":128000}},"gemini-2.5-flash-image-preview":{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image (Preview)","family":"gemini","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-10-02","last_updated":"2025-10-02","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":2.5},"limit":{"context":32768,"output":32768}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.75},"limit":{"context":131072,"output":32766}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat Latest","family":"gpt","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-08-01","last_updated":"2025-08-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4 (2025-05-14)","family":"claude","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5},"limit":{"context":200000,"output":16384}},"qwen2-5-vl-72b-instruct":{"id":"qwen2-5-vl-72b-instruct","name":"Qwen2.5 VL 72B Instruct","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-01-26","last_updated":"2025-01-26","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.4},"limit":{"context":32768,"output":8192}},"qwen25-coder-7b":{"id":"qwen25-coder-7b","name":"Qwen2.5 Coder 7B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-19","last_updated":"2024-09-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.01,"output":0.03},"limit":{"context":32768,"output":8192}},"llama-3.1-8b-instruct":{"id":"llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.22},"limit":{"context":128000,"output":2048},"status":"beta"},"llama-3-70b-instruct":{"id":"llama-3-70b-instruct","name":"Llama 3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.51,"output":0.74},"limit":{"context":8192,"output":8000}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek R1 (0528)","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.8,"output":2.4},"limit":{"context":64000,"output":16384},"status":"beta"},"glm-4.5-airx":{"id":"glm-4.5-airx","name":"GLM-4.5 AirX","family":"glm","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.5,"cache_read":0.22},"limit":{"context":128000,"output":16384}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1000000,"output":16384}},"devstral-small-2507":{"id":"devstral-small-2507","name":"Devstral Small 1.1","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-07-21","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":131072,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-02-25","last_updated":"2025-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.08,"output":0.3},"limit":{"context":1048576,"output":8192},"status":"deprecated"},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 Mini","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1000000,"output":16384}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10},"limit":{"context":400000,"output":272000}},"grok-3":{"id":"grok-3","name":"Grok-3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15},"limit":{"context":131072,"output":16384}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast Non-Reasoning","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-10-10","last_updated":"2025-10-10","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"ministral-14b-2512":{"id":"ministral-14b-2512","name":"Ministral 14B","family":"mistral","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-12-02","last_updated":"2025-12-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":262144,"output":16384}},"llama-3.2-11b-instruct":{"id":"llama-3.2-11b-instruct","name":"Llama 3.2 11B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.33},"limit":{"context":128000,"output":16384},"status":"beta"},"sonar-reasoning-pro":{"id":"sonar-reasoning-pro","name":"Sonar Reasoning Pro","family":"sonar","attachment":false,"reasoning":true,"tool_call":false,"structured_output":true,"temperature":true,"release_date":"2025-03-07","last_updated":"2025-03-07","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8},"limit":{"context":128000,"output":16384}},"claude-3-opus":{"id":"claude-3-opus","name":"Claude 3 Opus","family":"claude","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5},"limit":{"context":200000,"output":4096}}}},"google-vertex":{"id":"google-vertex","env":["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],"npm":"@ai-sdk/google-vertex","name":"Vertex","doc":"https://cloud.google.com/vertex-ai/generative-ai/docs/models","models":{"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":65536,"output":65536}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"cache_write":0.383},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}},"zai-org/glm-5-maas":{"id":"zai-org/glm-5-maas","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.1},"limit":{"context":202752,"output":131072},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"zai-org/glm-4.7-maas":{"id":"zai-org/glm-4.7-maas","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-06","last_updated":"2026-01-06","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"deepseek-ai/deepseek-v3.2-maas":{"id":"deepseek-ai/deepseek-v3.2-maas","name":"DeepSeek V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-12-17","last_updated":"2026-04-04","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68,"cache_read":0.056},"limit":{"context":163840,"output":65536},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"deepseek-ai/deepseek-v3.1-maas":{"id":"deepseek-ai/deepseek-v3.1-maas","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":163840,"output":32768},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"openai/gpt-oss-120b-maas":{"id":"openai/gpt-oss-120b-maas","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":32768}},"openai/gpt-oss-20b-maas":{"id":"openai/gpt-oss-20b-maas","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.25},"limit":{"context":131072,"output":32768}},"meta/llama-3.3-70b-instruct-maas":{"id":"meta/llama-3.3-70b-instruct-maas","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.72,"output":0.72},"limit":{"context":128000,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"meta/llama-4-maverick-17b-128e-instruct-maas":{"id":"meta/llama-4-maverick-17b-128e-instruct-maas","name":"Llama 4 Maverick 17B 128E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-29","last_updated":"2025-04-29","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":1.15},"limit":{"context":524288,"output":8192},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"qwen/qwen3-235b-a22b-instruct-2507-maas":{"id":"qwen/qwen3-235b-a22b-instruct-2507-maas","name":"Qwen3 235B A22B Instruct","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-13","last_updated":"2025-08-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.22,"output":0.88},"limit":{"context":262144,"output":16384},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}},"moonshotai/kimi-k2-thinking-maas":{"id":"moonshotai/kimi-k2-thinking-maas","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"}}}},"cloudflare-workers-ai":{"id":"cloudflare-workers-ai","env":["CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1","name":"Cloudflare Workers AI","doc":"https://developers.cloudflare.com/workers-ai/models/","models":{"@cf/zai-org/glm-4.7-flash":{"id":"@cf/zai-org/glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.06,"output":0.4},"limit":{"context":131072,"output":131072}},"@cf/nvidia/nemotron-3-120b-a12b":{"id":"@cf/nvidia/nemotron-3-120b-a12b","name":"Nemotron 3 Super 120B","family":"nemotron","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-11","last_updated":"2026-03-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.5},"limit":{"context":256000,"output":256000}},"@cf/openai/gpt-oss-20b":{"id":"@cf/openai/gpt-oss-20b","name":"GPT OSS 20B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.3},"limit":{"context":128000,"output":16384}},"@cf/openai/gpt-oss-120b":{"id":"@cf/openai/gpt-oss-120b","name":"GPT OSS 120B","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.35,"output":0.75},"limit":{"context":128000,"output":16384}},"@cf/meta/llama-4-scout-17b-16e-instruct":{"id":"@cf/meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.27,"output":0.85},"limit":{"context":128000,"output":16384}},"@cf/google/gemma-4-26b-a4b-it":{"id":"@cf/google/gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-15","last_updated":"2025-12-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3},"limit":{"context":256000,"output":16384}},"@cf/moonshotai/kimi-k2.5":{"id":"@cf/moonshotai/kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":256000,"output":256000}}}},"groq":{"id":"groq","env":["GROQ_API_KEY"],"npm":"@ai-sdk/groq","name":"Groq","doc":"https://console.groq.com/docs/models","models":{"gemma2-9b-it":{"id":"gemma2-9b-it","name":"Gemma 2 9B","family":"gemma","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-06-27","last_updated":"2024-06-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"mistral-saba-24b":{"id":"mistral-saba-24b","name":"Mistral Saba 24B","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-02-06","last_updated":"2025-02-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.79,"output":0.79},"limit":{"context":32768,"output":32768},"status":"deprecated"},"deepseek-r1-distill-llama-70b":{"id":"deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.75,"output":0.99},"limit":{"context":131072,"output":8192},"status":"deprecated"},"llama-guard-3-8b":{"id":"llama-guard-3-8b","name":"Llama Guard 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":8192,"output":8192},"status":"deprecated"},"llama-3.3-70b-versatile":{"id":"llama-3.3-70b-versatile","name":"Llama 3.3 70B Versatile","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":131072,"output":32768}},"allam-2-7b":{"id":"allam-2-7b","name":"ALLaM-2-7b","family":"allam","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-09","release_date":"2024-09","last_updated":"2024-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":4096}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper Large V3","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2025-09-05","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":448,"output":448}},"llama-3.1-8b-instant":{"id":"llama-3.1-8b-instant","name":"Llama 3.1 8B Instant","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":131072,"output":131072}},"llama3-70b-8192":{"id":"llama3-70b-8192","name":"Llama 3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.59,"output":0.79},"limit":{"context":8192,"output":8192},"status":"deprecated"},"qwen-qwq-32b":{"id":"qwen-qwq-32b","name":"Qwen QwQ 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-27","last_updated":"2024-11-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.39},"limit":{"context":131072,"output":16384},"status":"deprecated"},"whisper-large-v3-turbo":{"id":"whisper-large-v3-turbo","name":"Whisper Large v3 Turbo","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":448,"output":448}},"llama3-8b-8192":{"id":"llama3-8b-8192","name":"Llama 3 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.08},"limit":{"context":8192,"output":8192},"status":"deprecated"},"canopylabs/orpheus-arabic-saudi":{"id":"canopylabs/orpheus-arabic-saudi","name":"Orpheus Arabic Saudi","family":"canopylabs","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-12-16","release_date":"2025-12-16","last_updated":"2025-12-16","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":40,"output":0},"limit":{"context":4000,"output":50000}},"canopylabs/orpheus-v1-english":{"id":"canopylabs/orpheus-v1-english","name":"Orpheus V1 English","family":"canopylabs","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2025-12-19","release_date":"2025-12-19","last_updated":"2025-12-19","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":4000,"output":50000}},"meta-llama/llama-4-scout-17b-16e-instruct":{"id":"meta-llama/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.11,"output":0.34},"limit":{"context":131072,"output":8192}},"meta-llama/llama-prompt-guard-2-22m":{"id":"meta-llama/llama-prompt-guard-2-22m","name":"Llama Prompt Guard 2 22M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.03},"limit":{"context":512,"output":512}},"meta-llama/llama-guard-4-12b":{"id":"meta-llama/llama-guard-4-12b","name":"Llama Guard 4 12B","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.2},"limit":{"context":131072,"output":1024},"status":"deprecated"},"meta-llama/llama-4-maverick-17b-128e-instruct":{"id":"meta-llama/llama-4-maverick-17b-128e-instruct","name":"Llama 4 Maverick 17B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":131072,"output":8192},"status":"deprecated"},"meta-llama/llama-prompt-guard-2-86m":{"id":"meta-llama/llama-prompt-guard-2-86m","name":"Llama Prompt Guard 2 86M","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2024-10-01","last_updated":"2024-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":512,"output":512}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-safeguard-20b":{"id":"openai/gpt-oss-safeguard-20b","name":"Safety GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-03-05","last_updated":"2025-03-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3,"cache_read":0.037},"limit":{"context":131072,"output":65536}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":65536}},"qwen/qwen3-32b":{"id":"qwen/qwen3-32b","name":"Qwen3 32B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11-08","release_date":"2024-12-23","last_updated":"2024-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.29,"output":0.59},"limit":{"context":131072,"output":40960}},"groq/compound":{"id":"groq/compound","name":"Compound","family":"groq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09-04","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"groq/compound-mini":{"id":"groq/compound-mini","name":"Compound Mini","family":"groq","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09-04","release_date":"2025-09-04","last_updated":"2025-09-04","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"moonshotai/kimi-k2-instruct":{"id":"moonshotai/kimi-k2-instruct","name":"Kimi K2 Instruct","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":131072,"output":16384},"status":"deprecated"},"moonshotai/kimi-k2-instruct-0905":{"id":"moonshotai/kimi-k2-instruct-0905","name":"Kimi K2 Instruct 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3},"limit":{"context":262144,"output":16384}}}},"azure":{"id":"azure","env":["AZURE_RESOURCE_NAME","AZURE_API_KEY"],"npm":"@ai-sdk/azure","name":"Azure","doc":"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models","models":{"mistral-nemo":{"id":"mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":128000,"output":128000}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-13","last_updated":"2025-11-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"gpt-5.2-chat":{"id":"gpt-5.2-chat","name":"GPT-5.2 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"codex-mini":{"id":"codex-mini","name":"Codex Mini","family":"gpt-codex-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-04","release_date":"2025-05-16","last_updated":"2025-05-16","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":6,"cache_read":0.375},"limit":{"context":200000,"output":100000}},"phi-4-multimodal":{"id":"phi-4-multimodal","name":"Phi-4-multimodal","family":"phi","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0.08,"output":0.32,"input_audio":4},"limit":{"context":128000,"output":4096}},"phi-3.5-mini-instruct":{"id":"phi-3.5-mini-instruct","name":"Phi-3.5-mini-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"llama-4-scout-17b-16e-instruct":{"id":"llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.78},"limit":{"context":128000,"output":8192}},"grok-4-1-fast-reasoning":{"id":"grok-4-1-fast-reasoning","name":"Grok 4.1 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"phi-3-medium-4k-instruct":{"id":"phi-3-medium-4k-instruct","name":"Phi-3-medium-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":4096,"output":1024}},"ministral-3b":{"id":"ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.04,"output":0.04},"limit":{"context":128000,"output":8192}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-02-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"meta-llama-3.1-8b-instruct":{"id":"meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":128000,"output":32768}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-06","last_updated":"2026-02-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3},"limit":{"context":262144,"output":262144},"provider":{"npm":"@ai-sdk/openai-compatible","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models","shape":"completions"}},"llama-3.3-70b-instruct":{"id":"llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.71,"output":0.71},"limit":{"context":128000,"output":32768}},"deepseek-v3-0324":{"id":"deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.14,"output":4.56},"limit":{"context":131072,"output":131072}},"gpt-5-chat":{"id":"gpt-5-chat","name":"GPT-5 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-10-24","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":128000,"output":16384}},"phi-3.5-moe-instruct":{"id":"phi-3.5-moe-instruct","name":"Phi-3.5-MoE-instruct","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.64},"limit":{"context":128000,"output":4096}},"gpt-5.3-chat":{"id":"gpt-5.3-chat","name":"GPT-5.3 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":128000,"output":16384}},"o1-mini":{"id":"o1-mini","name":"o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":128000,"output":65536}},"text-embedding-3-large":{"id":"text-embedding-3-large","name":"text-embedding-3-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.13,"output":0},"limit":{"context":8191,"output":3072}},"phi-3-mini-128k-instruct":{"id":"phi-3-mini-128k-instruct","name":"Phi-3-mini-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":128000,"output":4096}},"phi-4-reasoning":{"id":"phi-4-reasoning","name":"Phi-4-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.03},"limit":{"context":272000,"output":128000}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.01},"limit":{"context":272000,"output":128000}},"meta-llama-3-70b-instruct":{"id":"meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":8192,"output":2048}},"phi-3-small-8k-instruct":{"id":"phi-3-small-8k-instruct","name":"Phi-3-small-instruct (8k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":8192,"output":2048}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-24","last_updated":"2026-02-24","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"text-embedding-ada-002":{"id":"text-embedding-ada-002","name":"text-embedding-ada-002","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2022-12-15","last_updated":"2022-12-15","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0},"limit":{"context":8192,"output":1536}},"llama-3.2-90b-vision-instruct":{"id":"llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.04,"output":2.04},"limit":{"context":128000,"output":8192}},"deepseek-r1":{"id":"deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"grok-4-1-fast-non-reasoning":{"id":"grok-4-1-fast-non-reasoning","name":"Grok 4.1 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2025-06-27","last_updated":"2025-06-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":128000,"input":128000,"output":8192},"status":"beta"},"deepseek-v3.2-speciale":{"id":"deepseek-v3.2-speciale","name":"DeepSeek-V3.2-Speciale","family":"deepseek","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"mistral-large-2411":{"id":"mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":128000,"output":32768}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.08},"limit":{"context":128000,"output":16384}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.75,"output":4.5,"cache_read":0.075},"limit":{"context":400000,"input":272000,"output":128000}},"cohere-command-r-08-2024":{"id":"cohere-command-r-08-2024","name":"Command R","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4000}},"cohere-command-a":{"id":"cohere-command-a","name":"Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":256000,"output":8000}},"llama-3.2-11b-vision-instruct":{"id":"llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.37,"output":0.37},"limit":{"context":128000,"output":8192}},"meta-llama-3.1-405b-instruct":{"id":"meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":5.33,"output":16},"limit":{"context":128000,"output":32768}},"gpt-5.1-chat":{"id":"gpt-5.1-chat","name":"GPT-5.1 Chat","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":128000,"output":16384}},"gpt-4-turbo-vision":{"id":"gpt-4-turbo-vision","name":"GPT-4 Turbo Vision","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-11-06","last_updated":"2024-04-09","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":10,"output":30},"limit":{"context":128000,"output":4096}},"o4-mini":{"id":"o4-mini","name":"o4-mini","family":"o-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.28},"limit":{"context":200000,"output":100000}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.25,"cache_read":0.02},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-14","last_updated":"2026-01-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.75,"output":14,"cache_read":0.175},"limit":{"context":400000,"output":128000}},"cohere-embed-v-4-0":{"id":"cohere-embed-v-4-0","name":"Embed v4","family":"cohere-embed","attachment":true,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2025-04-15","last_updated":"2025-04-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.12,"output":0},"limit":{"context":128000,"output":1536}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"gpt-3.5-turbo-0125":{"id":"gpt-3.5-turbo-0125","name":"GPT-3.5 Turbo 0125","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":1.5},"limit":{"context":16384,"output":16384}},"o1-preview":{"id":"o1-preview","name":"o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":16.5,"output":66,"cache_read":8.25},"limit":{"context":128000,"output":32768}},"cohere-embed-v3-multilingual":{"id":"cohere-embed-v3-multilingual","name":"Embed v3 Multilingual","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"grok-4-20-non-reasoning":{"id":"grok-4-20-non-reasoning","name":"Grok 4.20 (Non-Reasoning)","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":262000,"output":8192},"status":"beta"},"grok-code-fast-1":{"id":"grok-code-fast-1","name":"Grok Code Fast 1","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2025-08-28","last_updated":"2025-08-28","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":1.5,"cache_read":0.02},"limit":{"context":256000,"output":10000}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":272000,"output":128000}},"grok-4-fast-reasoning":{"id":"grok-4-fast-reasoning","name":"Grok 4 Fast (Reasoning)","family":"grok","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"o1":{"id":"o1","name":"o1","family":"o","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2023-09","release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":60,"cache_read":7.5},"limit":{"context":200000,"output":100000}},"mistral-small-2503":{"id":"mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.3},"limit":{"context":128000,"output":32768}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":30,"output":180},"limit":{"context":400000,"input":272000,"output":128000}},"model-router":{"id":"model-router","name":"Model Router","family":"model-router","attachment":true,"reasoning":false,"tool_call":true,"release_date":"2025-05-19","last_updated":"2025-11-18","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0},"limit":{"context":128000,"output":16384}},"gpt-3.5-turbo-1106":{"id":"gpt-3.5-turbo-1106","name":"GPT-3.5 Turbo 1106","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-11-06","last_updated":"2023-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":2},"limit":{"context":16384,"output":16384}},"o3-mini":{"id":"o3-mini","name":"o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2024-12-20","last_updated":"2025-01-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.1,"output":4.4,"cache_read":0.55},"limit":{"context":200000,"output":100000}},"text-embedding-3-small":{"id":"text-embedding-3-small","name":"text-embedding-3-small","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2024-01-25","last_updated":"2024-01-25","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.02,"output":0},"limit":{"context":8191,"output":1536}},"deepseek-v3.1":{"id":"deepseek-v3.1","name":"DeepSeek-V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.56,"output":1.68},"limit":{"context":131072,"output":131072}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-08-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-3-mini-4k-instruct":{"id":"phi-3-mini-4k-instruct","name":"Phi-3-mini-instruct (4k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.13,"output":0.52},"limit":{"context":4096,"output":1024}},"meta-llama-3.1-70b-instruct":{"id":"meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.68,"output":3.54},"limit":{"context":128000,"output":32768}},"grok-4":{"id":"grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"reasoning":15,"cache_read":0.75},"limit":{"context":256000,"output":64000}},"phi-4-mini-reasoning":{"id":"phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"gpt-4":{"id":"gpt-4","name":"GPT-4","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":8192,"output":8192}},"meta-llama-3-8b-instruct":{"id":"meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.61},"limit":{"context":8192,"output":2048}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":400000,"output":128000}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":15,"cache_read":0.25},"limit":{"context":400000,"input":272000,"output":128000}},"phi-4-mini":{"id":"phi-4-mini","name":"Phi-4-mini","family":"phi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.075,"output":0.3},"limit":{"context":128000,"output":4096}},"grok-4-20-reasoning":{"id":"grok-4-20-reasoning","name":"Grok 4.20 (Reasoning)","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-09","release_date":"2026-04-08","last_updated":"2026-04-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":6},"limit":{"context":262000,"output":8192},"status":"beta"},"gpt-3.5-turbo-0301":{"id":"gpt-3.5-turbo-0301","name":"GPT-3.5 Turbo 0301","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-03-01","last_updated":"2023-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25,"context_over_200k":{"input":10,"output":37.5,"cache_read":1,"cache_write":12.5}},"limit":{"context":200000,"output":128000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-3-small-128k-instruct":{"id":"phi-3-small-128k-instruct","name":"Phi-3-small-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":128000,"output":4096}},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.03},"limit":{"context":1047576,"output":32768}},"grok-3-mini":{"id":"grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.5,"reasoning":0.5,"cache_read":0.075},"limit":{"context":131072,"output":8192}},"o3":{"id":"o3","name":"o3","family":"o","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-05","release_date":"2025-04-16","last_updated":"2025-04-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":200000,"output":100000}},"deepseek-v3.2":{"id":"deepseek-v3.2","name":"DeepSeek-V3.2","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.58,"output":1.68},"limit":{"context":128000,"output":128000}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","family":"gpt-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-10-06","last_updated":"2025-10-06","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":120},"limit":{"context":400000,"output":272000}},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-09","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2.5,"output":10,"cache_read":1.25},"limit":{"context":128000,"output":16384}},"phi-3-medium-128k-instruct":{"id":"phi-3-medium-128k-instruct","name":"Phi-3-medium-instruct (128k)","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.17,"output":0.68},"limit":{"context":128000,"output":4096}},"gpt-3.5-turbo-0613":{"id":"gpt-3.5-turbo-0613","name":"GPT-3.5 Turbo 0613","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-06-13","last_updated":"2023-06-13","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":4},"limit":{"context":16384,"output":16384}},"cohere-command-r-plus-08-2024":{"id":"cohere-command-r-plus-08-2024","name":"Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-06-01","release_date":"2024-08-30","last_updated":"2024-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":10},"limit":{"context":128000,"output":4000}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"provider":{"npm":"@ai-sdk/anthropic","api":"https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1"}},"phi-4":{"id":"phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":128000,"output":4096}},"gpt-5":{"id":"gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.13},"limit":{"context":272000,"output":128000}},"gpt-4-32k":{"id":"gpt-4-32k","name":"GPT-4 32K","family":"gpt","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-11","release_date":"2023-03-14","last_updated":"2023-03-14","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":60,"output":120},"limit":{"context":32768,"output":32768}},"cohere-embed-v3-english":{"id":"cohere-embed-v3-english","name":"Embed v3 English","family":"cohere-embed","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"release_date":"2023-11-07","last_updated":"2023-11-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0},"limit":{"context":512,"output":1024}},"phi-4-reasoning-plus":{"id":"phi-4-reasoning-plus","name":"Phi-4-reasoning-plus","family":"phi","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.125,"output":0.5},"limit":{"context":32000,"output":4096}},"mistral-medium-2505":{"id":"mistral-medium-2505","name":"Mistral Medium 3","family":"mistral-medium","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2025-05-07","last_updated":"2025-05-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":2},"limit":{"context":128000,"output":128000}},"gpt-3.5-turbo-instruct":{"id":"gpt-3.5-turbo-instruct","name":"GPT-3.5 Turbo Instruct","family":"gpt","attachment":false,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2021-08","release_date":"2023-09-21","last_updated":"2023-09-21","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.5,"output":2},"limit":{"context":4096,"output":4096}},"deepseek-r1-0528":{"id":"deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.35,"output":5.4},"limit":{"context":163840,"output":163840}},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-12-02","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-05","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.4,"output":1.6,"cache_read":0.1},"limit":{"context":1047576,"output":32768}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2025-11-14","last_updated":"2025-11-14","modalities":{"input":["text","image","audio"],"output":["text","image","audio"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"codestral-2501":{"id":"codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":0.9},"limit":{"context":256000,"output":256000}},"llama-4-maverick-17b-128e-instruct-fp8":{"id":"llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-04-05","last_updated":"2025-04-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.25,"output":1},"limit":{"context":128000,"output":8192}},"grok-3":{"id":"grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-11","release_date":"2025-02-17","last_updated":"2025-02-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75},"limit":{"context":131072,"output":8192}},"grok-4-fast-non-reasoning":{"id":"grok-4-fast-non-reasoning","name":"Grok 4 Fast (Non-Reasoning)","family":"grok","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-19","last_updated":"2025-09-19","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.2,"output":0.5,"cache_read":0.05},"limit":{"context":2000000,"output":30000}},"mai-ds-r1":{"id":"mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":1.35,"output":5.4},"limit":{"context":128000,"output":8192}}}},"fastrouter":{"id":"fastrouter","env":["FASTROUTER_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://go.fastrouter.ai/api/v1","name":"FastRouter","doc":"https://fastrouter.ai/models","models":{"x-ai/grok-4":{"id":"x-ai/grok-4","name":"Grok 4","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.75,"cache_write":15},"limit":{"context":256000,"output":64000}},"deepseek-ai/deepseek-r1-distill-llama-70b":{"id":"deepseek-ai/deepseek-r1-distill-llama-70b","name":"DeepSeek R1 Distill Llama 70B","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-01-23","last_updated":"2025-01-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.03,"output":0.14},"limit":{"context":131072,"output":131072}},"openai/gpt-5-mini":{"id":"openai/gpt-5-mini","name":"GPT-5 Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2,"cache_read":0.025},"limit":{"context":400000,"output":128000}},"openai/gpt-5-nano":{"id":"openai/gpt-5-nano","name":"GPT-5 Nano","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.05,"output":0.4,"cache_read":0.005},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.05,"output":0.2},"limit":{"context":131072,"output":65536}},"openai/gpt-5":{"id":"openai/gpt-5","name":"GPT-5","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-01","release_date":"2025-08-07","last_updated":"2025-08-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.125},"limit":{"context":400000,"output":128000}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":32768}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":8,"cache_read":0.5},"limit":{"context":1047576,"output":32768}},"z-ai/glm-5":{"id":"z-ai/glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.95,"output":3.15},"limit":{"context":204800,"output":131072}},"qwen/qwen3-coder":{"id":"qwen/qwen3-coder","name":"Qwen3 Coder","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":262144,"output":66536}},"google/gemini-2.5-pro":{"id":"google/gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"google/gemini-2.5-flash":{"id":"google/gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"moonshotai/kimi-k2":{"id":"moonshotai/kimi-k2","name":"Kimi K2","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-11","last_updated":"2025-07-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32768}},"anthropic/claude-opus-4.1":{"id":"anthropic/claude-opus-4.1","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"anthropic/claude-sonnet-4":{"id":"anthropic/claude-sonnet-4","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}}}},"stackit":{"id":"stackit","env":["STACKIT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1","name":"STACKIT","doc":"https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models","models":{"Qwen/Qwen3-VL-Embedding-8B":{"id":"Qwen/Qwen3-VL-Embedding-8B","name":"Qwen3-VL Embedding 8B","family":"qwen","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.09},"limit":{"context":32000,"output":4096}},"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8":{"id":"Qwen/Qwen3-VL-235B-A22B-Instruct-FP8","name":"Qwen3-VL 235B","family":"qwen","attachment":true,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.64,"output":1.91},"limit":{"context":218000,"output":8192}},"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8":{"id":"neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8","name":"Llama 3.1 8B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.16,"output":0.27},"limit":{"context":128000,"output":8192}},"neuralmagic/Mistral-Nemo-Instruct-2407-FP8":{"id":"neuralmagic/Mistral-Nemo-Instruct-2407-FP8","name":"Mistral Nemo","family":"mistral","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-07-01","last_updated":"2024-07-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS 120B","family":"gpt","attachment":false,"reasoning":true,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":131000,"output":8192}},"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic":{"id":"cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"structured_output":false,"temperature":true,"release_date":"2024-12-05","last_updated":"2024-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":128000,"output":8192}},"google/gemma-3-27b-it":{"id":"google/gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"release_date":"2025-05-17","last_updated":"2025-05-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.49,"output":0.71},"limit":{"context":37000,"output":8192}},"intfloat/e5-mistral-7b-instruct":{"id":"intfloat/e5-mistral-7b-instruct","name":"E5 Mistral 7B","family":"mistral","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":false,"release_date":"2023-12-11","last_updated":"2023-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0.02},"limit":{"context":4096,"output":4096}}}},"tencent-coding-plan":{"id":"tencent-coding-plan","env":["TENCENT_CODING_PLAN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.lkeap.cloud.tencent.com/coding/v3","name":"Tencent Coding Plan (China)","doc":"https://cloud.tencent.com/document/product/1772/128947","models":{"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi-K2.5","family":"kimi","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":262144,"output":32768}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":202752,"output":16384}},"hunyuan-turbos":{"id":"hunyuan-turbos","name":"Hunyuan-TurboS","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-t1":{"id":"hunyuan-t1","name":"Hunyuan-T1","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-instruct":{"id":"hunyuan-2.0-instruct","name":"Tencent HY 2.0 Instruct","family":"hunyuan","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":32768}},"tc-code-latest":{"id":"tc-code-latest","name":"Auto","family":"auto","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}},"hunyuan-2.0-thinking":{"id":"hunyuan-2.0-thinking","name":"Tencent HY 2.0 Think","family":"hunyuan","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-03-08","last_updated":"2026-03-08","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":16384}}}},"privatemode-ai":{"id":"privatemode-ai","env":["PRIVATEMODE_API_KEY","PRIVATEMODE_ENDPOINT"],"npm":"@ai-sdk/openai-compatible","api":"http://localhost:8080/v1","name":"Privatemode AI","doc":"https://docs.privatemode.ai/api/overview","models":{"gemma-3-27b":{"id":"gemma-3-27b","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-08","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"whisper-large-v3":{"id":"whisper-large-v3","name":"Whisper large-v3","family":"whisper","attachment":true,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2023-09","release_date":"2023-09-01","last_updated":"2023-09-01","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":0,"output":4096}},"qwen3-embedding-4b":{"id":"qwen3-embedding-4b","name":"Qwen3-Embedding 4B","family":"qwen","attachment":false,"reasoning":false,"tool_call":false,"structured_output":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-06-06","last_updated":"2025-06-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":2560}},"gpt-oss-120b":{"id":"gpt-oss-120b","name":"gpt-oss-120b","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-04","last_updated":"2025-08-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":128000}},"qwen3-coder-30b-a3b":{"id":"qwen3-coder-30b-a3b","name":"Qwen3-Coder 30B-A3B","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04","last_updated":"2025-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}}}},"google":{"id":"google","env":["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],"npm":"@ai-sdk/google","name":"Google","doc":"https://ai.google.dev/gemini-api/docs/pricing","models":{"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-05-06":{"id":"gemini-2.5-pro-preview-05-06","name":"Gemini 2.5 Pro Preview 05-06","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-06","last_updated":"2025-05-06","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-live-2.5-flash-preview-native-audio":{"id":"gemini-live-2.5-flash-preview-native-audio","name":"Gemini Live 2.5 Flash Preview Native Audio","family":"gemini-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-09-18","modalities":{"input":["text","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":131072,"output":65536}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-lite-preview-09-2025":{"id":"gemini-2.5-flash-lite-preview-09-2025","name":"Gemini 2.5 Flash Lite Preview 09-25","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemini-1.5-flash":{"id":"gemini-1.5-flash","name":"Gemini 1.5 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-05-14","last_updated":"2024-05-14","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3,"cache_read":0.01875},"limit":{"context":1000000,"output":8192}},"gemini-1.5-pro":{"id":"gemini-1.5-pro","name":"Gemini 1.5 Pro","family":"gemini-pro","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-02-15","last_updated":"2024-02-15","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":5,"cache_read":0.3125},"limit":{"context":1000000,"output":8192}},"gemma-3n-e4b-it":{"id":"gemma-3n-e4b-it","name":"Gemma 3n 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-03-03","last_updated":"2026-03-03","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.5,"cache_read":0.025,"cache_write":1},"limit":{"context":1048576,"output":65536}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-19","last_updated":"2026-02-19","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1048576,"output":65536}},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":8192}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.5,"output":3,"cache_read":0.05,"context_over_200k":{"input":0.5,"output":3,"cache_read":0.05}},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-preview-tts":{"id":"gemini-2.5-flash-preview-tts","name":"Gemini 2.5 Flash Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":0.5,"output":10},"limit":{"context":8000,"output":16000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-11-18","last_updated":"2025-11-18","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":2,"output":12,"cache_read":0.2,"context_over_200k":{"input":4,"output":18,"cache_read":0.4}},"limit":{"context":1000000,"output":64000}},"gemini-2.5-flash-preview-05-20":{"id":"gemini-2.5-flash-preview-05-20","name":"Gemini 2.5 Flash Preview 05-20","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-embedding-001":{"id":"gemini-embedding-001","name":"Gemini Embedding 001","family":"gemini","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-05","release_date":"2025-05-20","last_updated":"2025-05-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0},"limit":{"context":2048,"output":3072}},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B","family":"gemma","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":256000,"output":8192}},"gemini-2.5-pro-preview-06-05":{"id":"gemini-2.5-pro-preview-06-05","name":"Gemini 2.5 Pro Preview 06-05","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-05","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1.25,"output":10,"cache_read":0.31},"limit":{"context":1048576,"output":65536}},"gemini-2.5-flash-image":{"id":"gemini-2.5-flash-image","name":"Gemini 2.5 Flash Image","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-2.5-flash-lite-preview-06-17":{"id":"gemini-2.5-flash-lite-preview-06-17","name":"Gemini 2.5 Flash Lite Preview 06-17","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025,"input_audio":0.3},"limit":{"context":1048576,"output":65536}},"gemma-3-12b-it":{"id":"gemma-3-12b-it","name":"Gemma 3 12B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-03-20","last_updated":"2025-06-05","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemma-3n-e2b-it":{"id":"gemma-3n-e2b-it","name":"Gemma 3n 2B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-09","last_updated":"2025-07-09","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2000}},"gemini-3.1-flash-image-preview":{"id":"gemini-3.1-flash-image-preview","name":"Gemini 3.1 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-26","last_updated":"2026-02-26","modalities":{"input":["text","image","pdf"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.25,"output":60},"limit":{"context":131072,"output":32768}},"gemma-3-4b-it":{"id":"gemma-3-4b-it","name":"Gemma 3 4B","family":"gemma","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-13","last_updated":"2025-03-13","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":32768,"output":8192}},"gemini-2.5-flash-preview-04-17":{"id":"gemini-2.5-flash-preview-04-17","name":"Gemini 2.5 Flash Preview 04-17","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-04-17","last_updated":"2025-04-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.15,"output":0.6,"cache_read":0.0375},"limit":{"context":1048576,"output":65536}},"gemini-2.5-pro-preview-tts":{"id":"gemini-2.5-pro-preview-tts","name":"Gemini 2.5 Pro Preview TTS","family":"gemini-flash","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-01","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text"],"output":["audio"]},"open_weights":false,"cost":{"input":1,"output":20},"limit":{"context":8000,"output":16000}},"gemini-2.5-flash-preview-09-2025":{"id":"gemini-2.5-flash-preview-09-2025","name":"Gemini 2.5 Flash Preview 09-25","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-25","last_updated":"2025-09-25","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.3,"output":2.5,"cache_read":0.075,"input_audio":1},"limit":{"context":1048576,"output":65536}},"gemma-3-27b-it":{"id":"gemma-3-27b-it","name":"Gemma 3 27B","family":"gemma","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-03-12","last_updated":"2025-03-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":8192}},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-06-17","last_updated":"2025-06-17","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.1,"output":0.4,"cache_read":0.025},"limit":{"context":1048576,"output":65536}},"gemma-4-26b-it":{"id":"gemma-4-26b-it","name":"Gemma 4 26B","family":"gemma","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2026-04-02","last_updated":"2026-04-02","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"limit":{"context":256000,"output":8192}},"gemini-2.5-flash-image-preview":{"id":"gemini-2.5-flash-image-preview","name":"Gemini 2.5 Flash Image (Preview)","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2025-06","release_date":"2025-08-26","last_updated":"2025-08-26","modalities":{"input":["text","image"],"output":["text","image"]},"open_weights":false,"cost":{"input":0.3,"output":30,"cache_read":0.075},"limit":{"context":32768,"output":32768}},"gemini-1.5-flash-8b":{"id":"gemini-1.5-flash-8b","name":"Gemini 1.5 Flash-8B","family":"gemini-flash","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2024-10-03","last_updated":"2024-10-03","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.0375,"output":0.15,"cache_read":0.01},"limit":{"context":1000000,"output":8192}},"gemini-live-2.5-flash":{"id":"gemini-live-2.5-flash","name":"Gemini Live 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-09-01","last_updated":"2025-09-01","modalities":{"input":["text","image","audio","video"],"output":["text","audio"]},"open_weights":false,"cost":{"input":0.5,"output":2,"input_audio":3,"output_audio":12},"limit":{"context":128000,"output":8000}},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash Lite","family":"gemini-flash-lite","attachment":true,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2024-06","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.075,"output":0.3},"limit":{"context":1048576,"output":8192}}}},"drun":{"id":"drun","env":["DRUN_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://chat.d.run/v1","name":"D.Run (China)","doc":"https://www.d.run","models":{"public/deepseek-r1":{"id":"public/deepseek-r1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.55,"output":2.2},"limit":{"context":131072,"output":32000}},"public/minimax-m25":{"id":"public/minimax-m25","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_details"},"temperature":true,"release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.29,"output":1.16},"limit":{"context":204800,"output":131072}},"public/deepseek-v3":{"id":"public/deepseek-v3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2024-12-26","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.28,"output":1.1},"limit":{"context":131072,"output":8192}}}},"moonshotai":{"id":"moonshotai","env":["MOONSHOT_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.moonshot.ai/v1","name":"Moonshot AI","doc":"https://platform.moonshot.ai/docs/api/chat","models":{"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.1},"limit":{"context":262144,"output":262144}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.15,"output":8,"cache_read":0.15},"limit":{"context":262144,"output":262144}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-09-05","last_updated":"2025-09-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2.4,"output":10,"cache_read":0.6},"limit":{"context":262144,"output":262144}},"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","family":"kimi","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-07-14","last_updated":"2025-07-14","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":131072,"output":16384}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","family":"kimi-thinking","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-08","release_date":"2025-11-06","last_updated":"2025-11-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.5,"cache_read":0.15},"limit":{"context":262144,"output":262144}}}},"berget":{"id":"berget","env":["BERGET_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.berget.ai/v1","name":"Berget.AI","doc":"https://api.berget.ai","models":{"zai-org/GLM-4.7":{"id":"zai-org/GLM-4.7","name":"GLM 4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-12","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.7,"output":2.3},"limit":{"context":128000,"output":8192}},"BAAI/bge-reranker-v2-m3":{"id":"BAAI/bge-reranker-v2-m3","name":"bge-reranker-v2-m3","family":"bge","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-23","last_updated":"2025-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.1},"limit":{"context":512,"output":512}},"mistralai/Mistral-Small-3.2-24B-Instruct-2506":{"id":"mistralai/Mistral-Small-3.2-24B-Instruct-2506","name":"Mistral Small 3.2 24B Instruct 2506","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-09","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.3},"limit":{"context":32000,"output":8192}},"meta-llama/Llama-3.3-70B-Instruct":{"id":"meta-llama/Llama-3.3-70B-Instruct","name":"Llama 3.3 70B Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2023-12","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.9,"output":0.9},"limit":{"context":128000,"output":8192}},"KBLab/kb-whisper-large":{"id":"KBLab/kb-whisper-large","name":"KB-Whisper-Large","family":"whisper","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["audio"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":3},"limit":{"context":480000,"output":4800}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":8192}},"intfloat/multilingual-e5-large-instruct":{"id":"intfloat/multilingual-e5-large-instruct","name":"Multilingual-E5-large-instruct","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-04","release_date":"2025-04-27","last_updated":"2025-04-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}},"intfloat/multilingual-e5-large":{"id":"intfloat/multilingual-e5-large","name":"Multilingual-E5-large","family":"text-embedding","attachment":false,"reasoning":false,"tool_call":false,"temperature":false,"knowledge":"2025-09","release_date":"2025-09-11","last_updated":"2025-09-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.02,"output":0},"limit":{"context":512,"output":1024}}}},"github-models":{"id":"github-models","env":["GITHUB_TOKEN"],"npm":"@ai-sdk/openai-compatible","api":"https://models.github.ai/inference","name":"GitHub Models","doc":"https://docs.github.com/en/github-models","models":{"deepseek/deepseek-v3-0324":{"id":"deepseek/deepseek-v3-0324","name":"DeepSeek-V3-0324","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-03-24","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"deepseek/deepseek-r1":{"id":"deepseek/deepseek-r1","name":"DeepSeek-R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"deepseek/deepseek-r1-0528":{"id":"deepseek/deepseek-r1-0528","name":"DeepSeek-R1-0528","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-05-28","last_updated":"2025-05-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"ai21-labs/ai21-jamba-1.5-mini":{"id":"ai21-labs/ai21-jamba-1.5-mini","name":"AI21 Jamba 1.5 Mini","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"ai21-labs/ai21-jamba-1.5-large":{"id":"ai21-labs/ai21-jamba-1.5-large","name":"AI21 Jamba 1.5 Large","family":"jamba","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-29","last_updated":"2024-08-29","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":256000,"output":4096}},"microsoft/phi-3.5-mini-instruct":{"id":"microsoft/phi-3.5-mini-instruct","name":"Phi-3.5-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-4k-instruct":{"id":"microsoft/phi-3-medium-4k-instruct","name":"Phi-3-medium instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-3.5-moe-instruct":{"id":"microsoft/phi-3.5-moe-instruct","name":"Phi-3.5-MoE instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-mini-128k-instruct":{"id":"microsoft/phi-3-mini-128k-instruct","name":"Phi-3-mini instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-mini-instruct":{"id":"microsoft/phi-4-mini-instruct","name":"Phi-4-mini-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4-reasoning":{"id":"microsoft/phi-4-reasoning","name":"Phi-4-Reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-8k-instruct":{"id":"microsoft/phi-3-small-8k-instruct","name":"Phi-3-small instruct (8k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"microsoft/phi-3.5-vision-instruct":{"id":"microsoft/phi-3.5-vision-instruct","name":"Phi-3.5-vision instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-08-20","last_updated":"2024-08-20","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-mini-4k-instruct":{"id":"microsoft/phi-3-mini-4k-instruct","name":"Phi-3-mini instruct (4k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":4096,"output":1024}},"microsoft/phi-4-mini-reasoning":{"id":"microsoft/phi-4-mini-reasoning","name":"Phi-4-mini-reasoning","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-small-128k-instruct":{"id":"microsoft/phi-3-small-128k-instruct","name":"Phi-3-small instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-3-medium-128k-instruct":{"id":"microsoft/phi-3-medium-128k-instruct","name":"Phi-3-medium instruct (128k)","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-04-23","last_updated":"2024-04-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/phi-4":{"id":"microsoft/phi-4","name":"Phi-4","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":16000,"output":4096}},"microsoft/phi-4-multimodal-instruct":{"id":"microsoft/phi-4-multimodal-instruct","name":"Phi-4-multimodal-instruct","family":"phi","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-12-11","last_updated":"2024-12-11","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"microsoft/mai-ds-r1":{"id":"microsoft/mai-ds-r1","name":"MAI-DS-R1","family":"mai","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-06","release_date":"2025-01-20","last_updated":"2025-01-20","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":65536,"output":8192}},"cohere/cohere-command-r-08-2024":{"id":"cohere/cohere-command-r-08-2024","name":"Cohere Command R 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-a":{"id":"cohere/cohere-command-a","name":"Cohere Command A","family":"command-a","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus":{"id":"cohere/cohere-command-r-plus","name":"Cohere Command R+","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-04-04","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r":{"id":"cohere/cohere-command-r","name":"Cohere Command R","family":"command-r","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-03-11","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"cohere/cohere-command-r-plus-08-2024":{"id":"cohere/cohere-command-r-plus-08-2024","name":"Cohere Command R+ 08-2024","family":"command-r","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-08-01","last_updated":"2024-08-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":4096}},"xai/grok-3-mini":{"id":"xai/grok-3-mini","name":"Grok 3 Mini","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"xai/grok-3":{"id":"xai/grok-3","name":"Grok 3","family":"grok","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2024-12-09","last_updated":"2024-12-09","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"openai/o1-mini":{"id":"openai/o1-mini","name":"OpenAI o1-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":65536}},"openai/gpt-4o-mini":{"id":"openai/gpt-4o-mini","name":"GPT-4o mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o4-mini":{"id":"openai/o4-mini","name":"OpenAI o4-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o1-preview":{"id":"openai/o1-preview","name":"OpenAI o1-preview","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-09-12","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"openai/o1":{"id":"openai/o1","name":"OpenAI o1","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2023-10","release_date":"2024-09-12","last_updated":"2024-12-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/o3-mini":{"id":"openai/o3-mini","name":"OpenAI o3-mini","family":"o-mini","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4.1-nano":{"id":"openai/gpt-4.1-nano","name":"GPT-4.1-nano","family":"gpt-nano","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/o3":{"id":"openai/o3","name":"OpenAI o3","family":"o","attachment":false,"reasoning":true,"tool_call":false,"temperature":false,"knowledge":"2024-04","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":200000,"output":100000}},"openai/gpt-4o":{"id":"openai/gpt-4o","name":"GPT-4o","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-10","release_date":"2024-05-13","last_updated":"2024-05-13","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1":{"id":"openai/gpt-4.1","name":"GPT-4.1","family":"gpt","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"openai/gpt-4.1-mini":{"id":"openai/gpt-4.1-mini","name":"GPT-4.1-mini","family":"gpt-mini","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04","release_date":"2025-04-14","last_updated":"2025-04-14","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":16384}},"meta/llama-4-scout-17b-16e-instruct":{"id":"meta/llama-4-scout-17b-16e-instruct","name":"Llama 4 Scout 17B 16E Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3.1-8b-instruct":{"id":"meta/meta-llama-3.1-8b-instruct","name":"Meta-Llama-3.1-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama-3.3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3-70b-instruct":{"id":"meta/meta-llama-3-70b-instruct","name":"Meta-Llama-3-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/llama-3.2-90b-vision-instruct":{"id":"meta/llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama-3.2-11B-Vision-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-09-25","last_updated":"2024-09-25","modalities":{"input":["text","image","audio"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"meta/meta-llama-3.1-405b-instruct":{"id":"meta/meta-llama-3.1-405b-instruct","name":"Meta-Llama-3.1-405B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3.1-70b-instruct":{"id":"meta/meta-llama-3.1-70b-instruct","name":"Meta-Llama-3.1-70B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-07-23","last_updated":"2024-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"meta/meta-llama-3-8b-instruct":{"id":"meta/meta-llama-3-8b-instruct","name":"Meta-Llama-3-8B-Instruct","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-04-18","last_updated":"2024-04-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"meta/llama-4-maverick-17b-128e-instruct-fp8":{"id":"meta/llama-4-maverick-17b-128e-instruct-fp8","name":"Llama 4 Maverick 17B 128E Instruct FP8","family":"llama","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-12","release_date":"2025-01-31","last_updated":"2025-01-31","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"core42/jais-30b-chat":{"id":"core42/jais-30b-chat","name":"JAIS 30b Chat","family":"jais","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2023-03","release_date":"2023-08-30","last_updated":"2023-08-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8192,"output":2048}},"mistral-ai/mistral-nemo":{"id":"mistral-ai/mistral-nemo","name":"Mistral Nemo","family":"mistral-nemo","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-07-18","last_updated":"2024-07-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/ministral-3b":{"id":"mistral-ai/ministral-3b","name":"Ministral 3B","family":"ministral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":8192}},"mistral-ai/mistral-large-2411":{"id":"mistral-ai/mistral-large-2411","name":"Mistral Large 24.11","family":"mistral-large","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2024-11-01","last_updated":"2024-11-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-small-2503":{"id":"mistral-ai/mistral-small-2503","name":"Mistral Small 3.1","family":"mistral-small","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-03-01","last_updated":"2025-03-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/mistral-medium-2505":{"id":"mistral-ai/mistral-medium-2505","name":"Mistral Medium 3 (25.05)","family":"mistral-medium","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09","release_date":"2025-05-01","last_updated":"2025-05-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":128000,"output":32768}},"mistral-ai/codestral-2501":{"id":"mistral-ai/codestral-2501","name":"Codestral 25.01","family":"codestral","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-03","release_date":"2025-01-01","last_updated":"2025-01-01","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":32000,"output":8192}}}},"togetherai":{"id":"togetherai","env":["TOGETHER_API_KEY"],"npm":"@ai-sdk/togetherai","name":"Together AI","doc":"https://docs.together.ai/docs/serverless-models","models":{"essentialai/Rnj-1-Instruct":{"id":"essentialai/Rnj-1-Instruct","name":"Rnj-1 Instruct","family":"rnj","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12-05","last_updated":"2025-12-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.15},"limit":{"context":32768,"output":32768}},"Qwen/Qwen3.5-397B-A17B":{"id":"Qwen/Qwen3.5-397B-A17B","name":"Qwen3.5 397B A17B","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3.6},"limit":{"context":262144,"output":130000}},"Qwen/Qwen3-Coder-Next-FP8":{"id":"Qwen/Qwen3-Coder-Next-FP8","name":"Qwen3 Coder Next FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2026-02-03","release_date":"2026-02-03","last_updated":"2026-02-03","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":1.2},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507-tput","name":"Qwen3 235B A22B Instruct 2507 FP8","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.6},"limit":{"context":262144,"output":262144}},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"id":"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8","name":"Qwen3 Coder 480B A35B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":2,"output":2},"limit":{"context":262144,"output":262144}},"zai-org/GLM-5.1":{"id":"zai-org/GLM-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-11","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.4,"output":4.4},"limit":{"context":202752,"output":131072}},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"id":"meta-llama/Llama-3.3-70B-Instruct-Turbo","name":"Llama 3.3 70B","family":"llama","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-12","release_date":"2024-12-06","last_updated":"2024-12-06","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.88,"output":0.88},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-V3":{"id":"deepseek-ai/DeepSeek-V3","name":"DeepSeek V3","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-07","release_date":"2025-01-20","last_updated":"2025-05-29","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1.25,"output":1.25},"limit":{"context":131072,"output":131072}},"deepseek-ai/DeepSeek-R1":{"id":"deepseek-ai/DeepSeek-R1","name":"DeepSeek R1","family":"deepseek-thinking","attachment":false,"reasoning":true,"tool_call":false,"temperature":true,"knowledge":"2024-07","release_date":"2024-12-26","last_updated":"2025-03-24","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":3,"output":7},"limit":{"context":163839,"output":163839}},"deepseek-ai/DeepSeek-V3-1":{"id":"deepseek-ai/DeepSeek-V3-1","name":"DeepSeek V3.1","family":"deepseek","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-21","last_updated":"2025-08-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.7},"limit":{"context":131072,"output":131072}},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT OSS 120B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.15,"output":0.6},"limit":{"context":131072,"output":131072}},"google/gemma-4-31B-it":{"id":"google/gemma-4-31B-it","name":"Gemma 4 31B Instruct","family":"gemma","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-01","release_date":"2026-04-07","last_updated":"2026-04-07","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.5},"limit":{"context":262144,"output":131072}},"moonshotai/Kimi-K2.5":{"id":"moonshotai/Kimi-K2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":true,"tool_call":true,"interleaved":true,"temperature":true,"knowledge":"2026-01","release_date":"2026-01-27","last_updated":"2026-01-27","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.5,"output":2.8},"limit":{"context":262144,"output":262144}},"MiniMaxAI/MiniMax-M2.5":{"id":"MiniMaxAI/MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06},"limit":{"context":204800,"output":131072}}}},"qihang-ai":{"id":"qihang-ai","env":["QIHANG_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.qhaigc.net/v1","name":"QiHang","doc":"https://www.qhaigc.net/docs","models":{"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.71,"output":3.57},"limit":{"context":200000,"output":32000}},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.07,"output":0.43,"context_over_200k":{"input":0.07,"output":0.43}},"limit":{"context":1048576,"output":65536}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5-Mini","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-09-30","release_date":"2025-09-15","last_updated":"2025-09-15","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.04,"output":0.29},"limit":{"context":200000,"output":64000}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","family":"gemini-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-11","release_date":"2025-11-19","last_updated":"2025-11-19","modalities":{"input":["text","image","audio","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.57,"output":3.43},"limit":{"context":1000000,"output":65000}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.43,"output":2.14},"limit":{"context":200000,"output":64000}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":2},"limit":{"context":400000,"input":272000,"output":128000}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2025-12-11","last_updated":"2025-12-11","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":1.14},"limit":{"context":400000,"input":272000,"output":128000}},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","family":"gemini-flash","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"knowledge":"2025-01","release_date":"2025-12-17","last_updated":"2025-12-17","modalities":{"input":["text","image","video","audio","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.09,"output":0.71,"context_over_200k":{"input":0.09,"output":0.71}},"limit":{"context":1048576,"output":65536}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-10-01","last_updated":"2025-10-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.14,"output":0.71},"limit":{"context":200000,"output":64000}}}},"anthropic":{"id":"anthropic","env":["ANTHROPIC_API_KEY"],"npm":"@ai-sdk/anthropic","name":"Anthropic","doc":"https://docs.anthropic.com/en/docs/about-claude/models","models":{"claude-3-sonnet-20240229":{"id":"claude-3-sonnet-20240229","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-3-opus-20240229":{"id":"claude-3-opus-20240229","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096}},"claude-3-5-haiku-20241022":{"id":"claude-3-5-haiku-20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-3-5-sonnet-20241022":{"id":"claude-3-5-sonnet-20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000}},"claude-opus-4-0":{"id":"claude-opus-4-0","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-3-haiku-20240307":{"id":"claude-3-haiku-20240307","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-5-haiku-latest":{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192}},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-sonnet-4-0":{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-3-5-sonnet-20240620":{"id":"claude-3-5-sonnet-20240620","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000}},"claude-opus-4-1-20250805":{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-20250514":{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-05","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":30,"output":150,"cache_read":3,"cache_write":37.5},"provider":{"body":{"speed":"fast"},"headers":{"anthropic-beta":"fast-mode-2026-02-01"}}}}}},"claude-3-7-sonnet-20250219":{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000}},"claude-opus-4-20250514":{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000}}}},"modelscope":{"id":"modelscope","env":["MODELSCOPE_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api-inference.modelscope.cn/v1","name":"ModelScope","doc":"https://modelscope.cn/docs/model-service/API-Inference/intro","models":{"Qwen/Qwen3-30B-A3B-Thinking-2507":{"id":"Qwen/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":32768}},"Qwen/Qwen3-30B-A3B-Instruct-2507":{"id":"Qwen/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-30","last_updated":"2025-07-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":16384}},"Qwen/Qwen3-235B-A22B-Instruct-2507":{"id":"Qwen/Qwen3-235B-A22B-Instruct-2507","name":"Qwen3 235B A22B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-04-28","last_updated":"2025-07-21","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{"id":"Qwen/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2025-07-31","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":65536}},"Qwen/Qwen3-235B-A22B-Thinking-2507":{"id":"Qwen/Qwen3-235B-A22B-Thinking-2507","name":"Qwen3-235B-A22B-Thinking-2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-25","last_updated":"2025-07-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":262144,"output":131072}},"ZhipuAI/GLM-4.5":{"id":"ZhipuAI/GLM-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":131072,"output":98304}},"ZhipuAI/GLM-4.6":{"id":"ZhipuAI/GLM-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":202752,"output":98304}}}},"gitlab":{"id":"gitlab","env":["GITLAB_TOKEN"],"npm":"gitlab-ai-provider","name":"GitLab Duo","doc":"https://docs.gitlab.com/user/duo_agent_platform/","models":{"duo-chat-gpt-5-4-nano":{"id":"duo-chat-gpt-5-4-nano","name":"Agentic Chat (GPT-5.4 Nano)","family":"gpt-nano","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-mini":{"id":"duo-chat-gpt-5-mini","name":"Agentic Chat (GPT-5 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-05-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-6":{"id":"duo-chat-sonnet-4-6","name":"Agentic Chat (Claude Sonnet 4.6)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-17","last_updated":"2026-02-17","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}},"duo-chat-gpt-5-2":{"id":"duo-chat-gpt-5-2","name":"Agentic Chat (GPT-5.2)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-23","last_updated":"2026-01-23","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-codex":{"id":"duo-chat-gpt-5-codex","name":"Agentic Chat (GPT-5 Codex)","family":"gpt-codex","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-1":{"id":"duo-chat-gpt-5-1","name":"Agentic Chat (GPT-5.1)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2024-09-30","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-2-codex":{"id":"duo-chat-gpt-5-2-codex","name":"Agentic Chat (GPT-5.2 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-01-22","last_updated":"2026-01-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-sonnet-4-5":{"id":"duo-chat-sonnet-4-5","name":"Agentic Chat (Claude Sonnet 4.5)","family":"claude-sonnet","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-4":{"id":"duo-chat-gpt-5-4","name":"Agentic Chat (GPT-5.4)","family":"gpt","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-05","last_updated":"2026-03-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":1050000,"input":922000,"output":128000}},"duo-chat-haiku-4-5":{"id":"duo-chat-haiku-4-5","name":"Agentic Chat (Claude Haiku 4.5)","family":"claude-haiku","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-gpt-5-3-codex":{"id":"duo-chat-gpt-5-3-codex","name":"Agentic Chat (GPT-5.3 Codex)","family":"gpt-codex","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-gpt-5-4-mini":{"id":"duo-chat-gpt-5-4-mini","name":"Agentic Chat (GPT-5.4 Mini)","family":"gpt-mini","attachment":true,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":false,"knowledge":"2025-08-31","release_date":"2026-03-17","last_updated":"2026-03-17","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0},"limit":{"context":400000,"input":272000,"output":128000}},"duo-chat-opus-4-5":{"id":"duo-chat-opus-4-5","name":"Agentic Chat (Claude Opus 4.5)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-01-08","last_updated":"2026-01-08","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":64000}},"duo-chat-opus-4-6":{"id":"duo-chat-opus-4-6","name":"Agentic Chat (Claude Opus 4.6)","family":"claude-opus","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2026-02-05","last_updated":"2026-02-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":1000000,"output":64000}}}},"xiaomi":{"id":"xiaomi","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.xiaomimimo.com/v1","name":"Xiaomi","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0.4,"output":2,"cache_read":0.08},"limit":{"context":256000,"output":128000}},"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3,"cache_read":0.2},"limit":{"context":1000000,"output":128000}},"mimo-v2-flash":{"id":"mimo-v2-flash","name":"MiMo-V2-Flash","family":"mimo","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12-01","release_date":"2025-12-16","last_updated":"2026-02-04","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.1,"output":0.3,"cache_read":0.01},"limit":{"context":256000,"output":64000}}}},"clarifai":{"id":"clarifai","env":["CLARIFAI_PAT"],"npm":"@ai-sdk/openai-compatible","api":"https://api.clarifai.com/v2/ext/openai/v1","name":"Clarifai","doc":"https://docs.clarifai.com/compute/inference/","models":{"arcee_ai/AFM/models/trinity-mini":{"id":"arcee_ai/AFM/models/trinity-mini","name":"Trinity Mini","family":"trinity-mini","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2024-10","release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.15},"limit":{"context":131072,"output":131072}},"mistralai/completion/models/Ministral-3-14B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-14B-Reasoning-2512","name":"Ministral 3 14B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-12","release_date":"2025-12-01","last_updated":"2025-12-12","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":2.5,"output":1.7},"limit":{"context":262144,"output":262144}},"mistralai/completion/models/Ministral-3-3B-Reasoning-2512":{"id":"mistralai/completion/models/Ministral-3-3B-Reasoning-2512","name":"Ministral 3 3B Reasoning 2512","family":"ministral","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":1.039,"output":0.54825},"limit":{"context":262144,"output":262144}},"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR":{"id":"deepseek-ai/deepseek-ocr/models/DeepSeek-OCR","name":"DeepSeek OCR","family":"deepseek","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-10-20","last_updated":"2026-02-25","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":0.7},"limit":{"context":8192,"output":8192}},"openai/chat-completion/models/gpt-oss-20b":{"id":"openai/chat-completion/models/gpt-oss-20b","name":"GPT OSS 20B","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2025-12-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.045,"output":0.18},"limit":{"context":131072,"output":16384}},"openai/chat-completion/models/gpt-oss-120b-high-throughput":{"id":"openai/chat-completion/models/gpt-oss-120b-high-throughput","name":"GPT OSS 120B High Throughput","family":"gpt-oss","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-08-05","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.09,"output":0.36},"limit":{"context":131072,"output":16384}},"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput":{"id":"minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput","name":"MiniMax-M2.5 High Throughput","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct":{"id":"qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct","name":"Qwen3 Coder 30B A3B Instruct","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-31","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.11458,"output":0.74812},"limit":{"context":262144,"output":65536}},"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507","name":"Qwen3 30B A3B Thinking 2507","family":"qwen","attachment":false,"reasoning":true,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-31","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.36,"output":1.3},"limit":{"context":262144,"output":131072}},"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507":{"id":"qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507","name":"Qwen3 30B A3B Instruct 2507","family":"qwen","attachment":false,"reasoning":false,"tool_call":true,"structured_output":true,"temperature":true,"release_date":"2025-07-30","last_updated":"2026-02-25","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.5},"limit":{"context":262144,"output":262144}},"clarifai/main/models/mm-poly-8b":{"id":"clarifai/main/models/mm-poly-8b","name":"MM Poly 8B","family":"mm-poly","attachment":true,"reasoning":false,"tool_call":false,"temperature":true,"release_date":"2025-06","last_updated":"2026-02-25","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":false,"cost":{"input":0.658,"output":1.11},"limit":{"context":32768,"output":4096}}}},"minimax-cn":{"id":"minimax-cn","env":["MINIMAX_API_KEY"],"npm":"@ai-sdk/anthropic","api":"https://api.minimaxi.com/anthropic/v1","name":"MiniMax (minimaxi.com)","doc":"https://platform.minimaxi.com/docs/guides/quickstart","models":{"MiniMax-M2":{"id":"MiniMax-M2","name":"MiniMax-M2","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-10-27","last_updated":"2025-10-27","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":196608,"output":128000}},"MiniMax-M2.5":{"id":"MiniMax-M2.5","name":"MiniMax-M2.5","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.03,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7":{"id":"MiniMax-M2.7","name":"MiniMax-M2.7","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.7-highspeed":{"id":"MiniMax-M2.7-highspeed","name":"MiniMax-M2.7-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}},"MiniMax-M2.1":{"id":"MiniMax-M2.1","name":"MiniMax-M2.1","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-23","last_updated":"2025-12-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":1.2},"limit":{"context":204800,"output":131072}},"MiniMax-M2.5-highspeed":{"id":"MiniMax-M2.5-highspeed","name":"MiniMax-M2.5-highspeed","family":"minimax","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2026-02-13","last_updated":"2026-02-13","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.4,"cache_read":0.06,"cache_write":0.375},"limit":{"context":204800,"output":131072}}}},"xiaomi-token-plan-ams":{"id":"xiaomi-token-plan-ams","env":["XIAOMI_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://token-plan-ams.xiaomimimo.com/v1","name":"Xiaomi Token Plan (Europe)","doc":"https://platform.xiaomimimo.com/#/docs","models":{"mimo-v2-pro":{"id":"mimo-v2-pro","name":"MiMo-V2-Pro","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":1000000,"output":128000}},"mimo-v2-tts":{"id":"mimo-v2-tts","name":"MiMo-V2-TTS","family":"mimo","attachment":false,"reasoning":false,"tool_call":false,"release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text"],"output":["audio"]},"open_weights":true,"cost":{"input":0,"output":0},"limit":{"context":8000,"output":16000}},"mimo-v2-omni":{"id":"mimo-v2-omni","name":"MiMo-V2-Omni","family":"mimo","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2024-12","release_date":"2026-03-18","last_updated":"2026-03-18","modalities":{"input":["text","image","audio","video","pdf"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0},"limit":{"context":256000,"output":128000}}}},"zhipuai":{"id":"zhipuai","env":["ZHIPU_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://open.bigmodel.cn/api/paas/v4","name":"Zhipu AI","doc":"https://docs.z.ai/guides/overview/pricing","models":{"glm-5v-turbo":{"id":"glm-5v-turbo","name":"glm-5v-turbo","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-04-01","last_updated":"2026-04-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":22,"cache_read":1.2,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-5":{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":1,"output":3.2,"cache_read":0.2,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"structured_output":true,"temperature":true,"release_date":"2026-03-27","last_updated":"2026-03-27","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":6,"output":24,"cache_read":1.3,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7-flash":{"id":"glm-4.7-flash","name":"GLM-4.7-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.5-flash":{"id":"glm-4.5-flash","name":"GLM-4.5-Flash","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.6v":{"id":"glm-4.6v","name":"GLM-4.6V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-08","last_updated":"2025-12-08","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.3,"output":0.9},"limit":{"context":128000,"output":32768}},"glm-4.6":{"id":"glm-4.6","name":"GLM-4.6","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-09-30","last_updated":"2025-09-30","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}},"glm-4.5v":{"id":"glm-4.5v","name":"GLM-4.5V","family":"glm","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-08-11","last_updated":"2025-08-11","modalities":{"input":["text","image","video"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":1.8},"limit":{"context":64000,"output":16384}},"glm-4.5-air":{"id":"glm-4.5-air","name":"GLM-4.5-Air","family":"glm-air","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.2,"output":1.1,"cache_read":0.03,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.5":{"id":"glm-4.5","name":"GLM-4.5","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-28","last_updated":"2025-07-28","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":131072,"output":98304}},"glm-4.7-flashx":{"id":"glm-4.7-flashx","name":"GLM-4.7-FlashX","family":"glm-flash","attachment":false,"reasoning":true,"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-01-19","last_updated":"2026-01-19","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.07,"output":0.4,"cache_read":0.01,"cache_write":0},"limit":{"context":200000,"output":131072}},"glm-4.7":{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":true,"tool_call":true,"interleaved":{"field":"reasoning_content"},"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":2.2,"cache_read":0.11,"cache_write":0},"limit":{"context":204800,"output":131072}}}},"nova":{"id":"nova","env":["NOVA_API_KEY"],"npm":"@ai-sdk/openai-compatible","api":"https://api.nova.amazon.com/v1","name":"Nova","doc":"https://nova.amazon.com/dev/documentation","models":{"nova-2-lite-v1":{"id":"nova-2-lite-v1","name":"Nova 2 Lite","family":"nova-lite","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-01","last_updated":"2025-12-01","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}},"nova-2-pro-v1":{"id":"nova-2-pro-v1","name":"Nova 2 Pro","family":"nova-pro","attachment":true,"reasoning":true,"tool_call":true,"temperature":true,"release_date":"2025-12-03","last_updated":"2026-01-03","modalities":{"input":["text","image","video","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0,"output":0,"reasoning":0},"limit":{"context":1000000,"output":64000}}}}} +export const snapshot = { + "302ai": { + id: "302ai", + env: ["302AI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.302.ai/v1", + name: "302.AI", + doc: "https://doc.302.ai", + models: { + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 2.86 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4.1": { + id: "grok-4.1", + name: "grok-4.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10 }, + limit: { context: 200000, output: 64000 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-26", + last_updated: "2025-10-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 1000000, output: 128000 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "grok-4-1-fast-reasoning", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "gemini-2.5-flash-nothink": { + id: "gemini-2.5-flash-nothink", + name: "gemini-2.5-flash-nothink", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-24", + last_updated: "2025-06-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "kimi-k2-0905-preview", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.632, output: 2.53 }, + limit: { context: 262144, output: 262144 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "claude-opus-4-5-20251101", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "gemini-2.5-flash-lite-preview-09-2025", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "qwen3-235b-a22b-instruct-2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1.143 }, + limit: { context: 128000, output: 65536 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "mistral-large-2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 3.3 }, + limit: { context: 128000, output: 262144 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "glm-4.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 200000, output: 131072 }, + }, + "doubao-seed-1-8-251215": { + id: "doubao-seed-1-8-251215", + name: "doubao-seed-1-8-251215", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.114, output: 0.286 }, + limit: { context: 224000, output: 64000 }, + }, + "chatgpt-4o-latest": { + id: "chatgpt-4o-latest", + name: "chatgpt-4o-latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2024-08-08", + last_updated: "2024-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 16384 }, + }, + "deepseek-chat": { + id: "deepseek-chat", + name: "Deepseek-Chat", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-v3.2-thinking": { + id: "deepseek-v3.2-thinking", + name: "DeepSeek-V3.2-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5-thinking": { + id: "gpt-5-thinking", + name: "gpt-5-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen-Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 1.2 }, + limit: { context: 1000000, output: 32768 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "gemini-3-pro-preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen3-max-2025-09-23": { + id: "qwen3-max-2025-09-23", + name: "qwen3-max-2025-09-23", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.43 }, + limit: { context: 258048, output: 65536 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "claude-sonnet-4-5-20250929", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen-Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.022, output: 0.22 }, + limit: { context: 1000000, output: 32768 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1000000, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "grok-4-1-fast-non-reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "claude-opus-4-5-20251101-thinking": { + id: "claude-opus-4-5-20251101-thinking", + name: "claude-opus-4-5-20251101-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "gpt-5.2", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "gemini-3-pro-image-preview", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 120 }, + limit: { context: 32768, output: 64000 }, + }, + "qwen-max-latest": { + id: "qwen-max-latest", + name: "Qwen-Max-Latest", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.343, output: 1.372 }, + limit: { context: 131072, output: 8192 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "gemini-2.5-flash-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-10-08", + last_updated: "2025-10-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 30 }, + limit: { context: 32768, output: 32768 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 128000, output: 98304 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "gpt-5.2-chat-latest", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16384 }, + }, + "doubao-seed-1-6-vision-250815": { + id: "doubao-seed-1-6-vision-250815", + name: "doubao-seed-1-6-vision-250815", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.114, output: 1.143 }, + limit: { context: 256000, output: 32000 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 1000000, output: 131072 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "gpt-5.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "kimi-k2-thinking-turbo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.265, output: 9.119 }, + limit: { context: 262144, output: 262144 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "Deepseek-Reasoner", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 128000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "grok-4-fast-reasoning", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "claude-opus-4-1-20250805-thinking": { + id: "claude-opus-4-1-20250805-thinking", + name: "claude-opus-4-1-20250805-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-27", + last_updated: "2025-05-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3-30B-A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 1.08 }, + limit: { context: 128000, output: 8192 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.86 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "glm-4.6", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 200000, output: 131072 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "gemini-2.5-flash-preview-09-2025", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.145, output: 0.43 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "claude-opus-4-1-20250805", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "gpt-5.1-chat-latest", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, output: 64000 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax-M1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.132, output: 1.254 }, + limit: { context: 1000000, output: 128000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "qwen3-coder-480b-a35b-instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.43 }, + limit: { context: 262144, output: 65536 }, + }, + "doubao-seed-code-preview-251028": { + id: "doubao-seed-code-preview-251028", + name: "doubao-seed-code-preview-251028", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-11", + last_updated: "2025-11-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.14 }, + limit: { context: 256000, output: 32000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "gpt-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 32768 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "deepseek-v3.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "gpt-5-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-08", + last_updated: "2025-10-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "gpt-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "gpt-5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-5-20250929-thinking": { + id: "claude-sonnet-4-5-20250929-thinking", + name: "claude-sonnet-4-5-20250929-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "gpt-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1000000, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "kimi-k2-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.575, output: 2.3 }, + limit: { context: 262144, output: 262144 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "gemini-2.0-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-11", + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 2000000, output: 8192 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "gpt-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1000000, output: 32768 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "grok-4-fast-non-reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "doubao-seed-1-6-thinking-250715": { + id: "doubao-seed-1-6-thinking-250715", + name: "doubao-seed-1-6-thinking-250715", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.121, output: 1.21 }, + limit: { context: 256000, output: 16000 }, + }, + "ministral-14b-2512": { + id: "ministral-14b-2512", + name: "ministral-14b-2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 0.33 }, + limit: { context: 128000, output: 128000 }, + }, + }, + }, + alibaba: { + id: "alibaba", + env: ["DASHSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", + name: "Alibaba", + doc: "https://www.alibabacloud.com/help/en/model-studio/models", + models: { + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen-vl-ocr": { + id: "qwen-vl-ocr", + name: "Qwen-VL OCR", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-28", + last_updated: "2025-04-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 34096, output: 4096 }, + }, + "qwen-omni-turbo-realtime": { + id: "qwen-omni-turbo-realtime", + name: "Qwen-Omni Turbo Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.27, output: 1.07, input_audio: 4.44, output_audio: 8.89 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen3-8b": { + id: "qwen3-8b", + name: "Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.7, reasoning: 2.1 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6, reasoning: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen-VL Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-08-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.63 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-livetranslate-flash-realtime": { + id: "qwen3-livetranslate-flash-realtime", + name: "Qwen3-LiveTranslate Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 10, output: 10, input_audio: 10, output_audio: 38 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.2, reasoning: 4 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen-Omni Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-19", + last_updated: "2025-03-26", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.07, output: 0.27, input_audio: 4.44, output_audio: 8.89 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-vl-7b-instruct": { + id: "qwen2-5-vl-7b-instruct", + name: "Qwen2.5-VL 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.05 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-omni-flash": { + id: "qwen3-omni-flash", + name: "Qwen3-Omni Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.43, output: 1.66, input_audio: 3.81, output_audio: 15.11 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen2-5-72b-instruct": { + id: "qwen2-5-72b-instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 5.6 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3-VL 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-asr-flash": { + id: "qwen3-asr-flash", + name: "Qwen3-ASR Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.035 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next 80B-A3B (Thinking)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-mt-plus": { + id: "qwen-mt-plus", + name: "Qwen-MT Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.46, output: 7.37 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen-VL Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen2-5-7b-instruct": { + id: "qwen2-5-7b-instruct", + name: "Qwen2.5 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.175, output: 0.7 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-14b-instruct": { + id: "qwen2-5-14b-instruct", + name: "Qwen2.5 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-32b-instruct": { + id: "qwen2-5-32b-instruct", + name: "Qwen2.5 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next 80B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-plus-character-ja": { + id: "qwen-plus-character-ja", + name: "Qwen Plus Character (Japanese)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.4 }, + limit: { context: 8192, output: 512 }, + }, + "qwen3-omni-flash-realtime": { + id: "qwen3-omni-flash-realtime", + name: "Qwen3-Omni Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.52, output: 1.99, input_audio: 4.57, output_audio: 18.13 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen3-vl-30b-a3b": { + id: "qwen3-vl-30b-a3b", + name: "Qwen3-VL 30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8, reasoning: 2.4 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.6, reasoning: 4.8 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3-Coder 480B-A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.5, output: 7.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.25 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11-01", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.2, reasoning: 0.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "qwen-mt-turbo": { + id: "qwen-mt-turbo", + name: "Qwen-MT Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.49 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen2-5-omni-7b": { + id: "qwen2-5-omni-7b", + name: "Qwen2.5-Omni 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4, input_audio: 6.76 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5-VL 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.8, output: 8.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qvq-max": { + id: "qvq-max", + name: "QVQ Max", + family: "qvq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4.8 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-14b": { + id: "qwen3-14b", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.4, reasoning: 4.2 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + scaleway: { + id: "scaleway", + env: ["SCALEWAY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.scaleway.ai/v1", + name: "Scaleway", + doc: "https://www.scaleway.com/en/docs/generative-apis/", + models: { + "qwen3-embedding-8b": { + id: "qwen3-embedding-8b", + name: "Qwen3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-25-11", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 32768, output: 4096 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.25 }, + limit: { context: 260000, output: 16384 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 100000, output: 16384 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 256000, output: 16384 }, + }, + "devstral-2-123b-instruct-2512": { + id: "devstral-2-123b-instruct-2512", + name: "Devstral 2 123B Instruct (2512)", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-07", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, output: 16384 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 32000, output: 8196 }, + }, + "pixtral-12b-2409": { + id: "pixtral-12b-2409", + name: "Pixtral 12B 2409", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-25", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper Large v3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2026-03-17", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.003, output: 0 }, + limit: { context: 0, output: 8192 }, + }, + "voxtral-small-24b-2507": { + id: "voxtral-small-24b-2507", + name: "Voxtral Small 24B 2507", + family: "voxtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-17", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 32000, output: 16384 }, + }, + "gemma-3-27b-it": { + id: "gemma-3-27b-it", + name: "Gemma-3-27B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.5 }, + limit: { context: 40000, output: 8192 }, + }, + "bge-multilingual-gemma2": { + id: "bge-multilingual-gemma2", + name: "BGE Multilingual Gemma2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-07-26", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-small-3.2-24b-instruct-2506": { + id: "mistral-small-3.2-24b-instruct-2506", + name: "Mistral Small 3.2 24B Instruct (2506)", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-nemo-instruct-2407": { + id: "mistral-nemo-instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral-nemo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-25", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 8192 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + "nano-gpt": { + id: "nano-gpt", + env: ["NANO_GPT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://nano-gpt.com/api/v1", + name: "NanoGPT", + doc: "https://docs.nano-gpt.com", + models: { + "glm-4-flash": { + id: "glm-4-flash", + name: "GLM-4 Flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Meta-Llama-3-1-8B-Instruct-FP8": { + id: "Meta-Llama-3-1-8B-Instruct-FP8", + name: "Llama 3.1 8B (decentralized)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-opus-4-thinking:32000": { + id: "claude-opus-4-thinking:32000", + name: "Claude 4 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 0506", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "grok-3-mini-fast-beta": { + id: "grok-3-mini-fast-beta", + name: "Grok 3 Mini Fast Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax M2", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-10-25", + last_updated: "2025-10-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.53 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "command-a-reasoning-08-2025": { + id: "command-a-reasoning-08-2025", + name: "Cohere Command A (08/2025)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-22", + last_updated: "2025-08-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + brave: { + id: "brave", + name: "Brave (Answers)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "exa-research": { + id: "exa-research", + name: "Exa (Research)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "Llama-3.3-70B-Nova": { + id: "Llama-3.3-70B-Nova", + name: "Llama 3.3 70B Nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-exp-1206": { + id: "gemini-exp-1206", + name: "Gemini 2.0 Pro 1206", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.258, output: 4.998 }, + limit: { context: 2097152, input: 2097152, output: 8192 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude 4.5 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "auto-model-basic": { + id: "auto-model-basic", + name: "Auto model (Basic)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "jamba-mini": { + id: "jamba-mini", + name: "Jamba Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview (09/2025)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "yi-large": { + id: "yi-large", + name: "Yi Large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.196, output: 3.196 }, + limit: { context: 32000, input: 32000, output: 4096 }, + }, + "auto-model-premium": { + id: "auto-model-premium", + name: "Auto model (Premium)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "azure-gpt-4o": { + id: "azure-gpt-4o", + name: "Azure gpt-4o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek Chat 0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "claude-3-5-haiku-20241022": { + id: "claude-3-5-haiku-20241022", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "doubao-seed-1-8-251215": { + id: "doubao-seed-1-8-251215", + name: "Doubao Seed 1.8", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.612, output: 6.12 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "doubao-seed-1-6-250615": { + id: "doubao-seed-1-6-250615", + name: "Doubao Seed 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.204, output: 0.51 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "ernie-x1.1-preview": { + id: "ernie-x1.1-preview", + name: "ERNIE X1.1", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "ernie-5.0-thinking-preview": { + id: "ernie-5.0-thinking-preview", + name: "Ernie 5.0 Thinking Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "glm-4-air-0111": { + id: "glm-4-air-0111", + name: "GLM 4 Air 0111", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-11", + last_updated: "2025-01-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 0.1394 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + fastgpt: { + id: "fastgpt", + name: "Web Answer", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-08-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.5, output: 7.5 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "doubao-seed-1-6-thinking-250615": { + id: "doubao-seed-1-6-thinking-250615", + name: "Doubao Seed 1.6 Thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.204, output: 2.04 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "gemini-2.0-flash-001": { + id: "gemini-2.0-flash-001", + name: "Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "claude-opus-4-1-thinking:32000": { + id: "claude-opus-4-1-thinking:32000", + name: "Claude 4.1 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-RAWMAW": { + id: "Llama-3.3-70B-RAWMAW", + name: "Llama 3.3 70B RAWMAW", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "GLM-4.5-Air-Derestricted-Steam": { + id: "GLM-4.5-Air-Derestricted-Steam", + name: "GLM 4.5 Air Derestricted Steam", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 220600, input: 220600, output: 65536 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude 3.5 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "yi-medium-200k": { + id: "yi-medium-200k", + name: "Yi Medium 200k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-03-01", + last_updated: "2024-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 2.499 }, + limit: { context: 200000, input: 200000, output: 4096 }, + }, + "Gemma-3-27B-ArliAI-RPMax-v3": { + id: "Gemma-3-27B-ArliAI-RPMax-v3", + name: "Gemma 3 27B RPMax v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "phi-4-mini-instruct": { + id: "phi-4-mini-instruct", + name: "Phi 4 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter": { + id: "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter", + name: "Llama 3.3+ 70B TenyxChat DaybreakStorywriter", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "ernie-x1-32k": { + id: "ernie-x1-32k", + name: "Ernie X1 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "deepseek-chat": { + id: "deepseek-chat", + name: "DeepSeek V3/Deepseek Chat", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "glm-z1-air": { + id: "glm-z1-air", + name: "GLM Z1 Air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "claude-3-7-sonnet-thinking:128000": { + id: "claude-3-7-sonnet-thinking:128000", + name: "Claude 3.7 Sonnet Thinking (128K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "glm-4-air": { + id: "glm-4-air", + name: "GLM-4 Air", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Llama-3.3-70B-MiraiFanfare": { + id: "Llama-3.3-70B-MiraiFanfare", + name: "Llama 3.3 70b Mirai Fanfare", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.493, output: 0.493 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.0-flash-thinking-exp-01-21": { + id: "gemini-2.0-flash-thinking-exp-01-21", + name: "Gemini 2.0 Flash Thinking 0121", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-21", + last_updated: "2025-01-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 1.003 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "Magistral-Small-2506": { + id: "Magistral-Small-2506", + name: "Magistral Small 2506", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.4 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "doubao-1.5-pro-32k": { + id: "doubao-1.5-pro-32k", + name: "Doubao 1.5 Pro 32k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-22", + last_updated: "2025-01-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1343, output: 0.3349 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "venice-uncensored:web": { + id: "venice-uncensored:web", + name: "Venice Uncensored Web", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-01", + last_updated: "2024-05-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 80000, input: 80000, output: 16384 }, + }, + "glm-4": { + id: "glm-4", + name: "GLM-4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-01-16", + last_updated: "2024-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 14.994 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen 2.5 Max", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-04-03", + last_updated: "2024-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5997, output: 6.392 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "qwen3-vl-235b-a22b-instruct-original": { + id: "qwen3-vl-235b-a22b-instruct-original", + name: "Qwen3 VL 235B A22B Instruct Original", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "jamba-large-1.6": { + id: "jamba-large-1.6", + name: "Jamba Large 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3995, output: 1.2002 }, + limit: { context: 995904, input: 995904, output: 32768 }, + }, + "qwen25-vl-72b-instruct": { + id: "qwen25-vl-72b-instruct", + name: "Qwen25 VL 72b", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.69989, output: 0.69989 }, + limit: { context: 32000, input: 32000, output: 32768 }, + }, + "claude-sonnet-4-thinking:64000": { + id: "claude-sonnet-4-thinking:64000", + name: "Claude 4 Sonnet Thinking (64K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1": { + id: "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1", + name: "Llama 3.3+ 70B New Dawn v1.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Iceblink-ReExtract", + name: "GLM 4.5 Air Derestricted Iceblink ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 98304 }, + }, + "universal-summarizer": { + id: "universal-summarizer", + name: "Universal Summarizer", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-05-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 30 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-sonnet-4-thinking:32768": { + id: "claude-sonnet-4-thinking:32768", + name: "Claude 4 Sonnet Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "sarvan-medium": { + id: "sarvan-medium", + name: "Sarvam Medium", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-3-7-sonnet-thinking:8192": { + id: "claude-3-7-sonnet-thinking:8192", + name: "Claude 3.7 Sonnet Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash 0520", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048000, input: 1048000, output: 65536 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract", + name: "GLM 4.5 Air Derestricted Iceblink v2 ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 65536 }, + }, + "Llama-3.3-70B-Fallen-v1": { + id: "Llama-3.3-70B-Fallen-v1", + name: "Llama 3.3 70B Fallen v1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen3-vl-235b-a22b-thinking": { + id: "qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 6 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-3-7-sonnet-thinking:32768": { + id: "claude-3-7-sonnet-thinking:32768", + name: "Claude 3.7 Sonnet Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "claude-3-7-sonnet-thinking:1024": { + id: "claude-3-7-sonnet-thinking:1024", + name: "Claude 3.7 Sonnet Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Llama-3.3-70B-Vulpecula-R1": { + id: "Llama-3.3-70B-Vulpecula-R1", + name: "Llama 3.3 70B Vulpecula R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-sonnet-4-thinking:8192": { + id: "claude-sonnet-4-thinking:8192", + name: "Claude 4 Sonnet Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-Ignition-v0.1": { + id: "Llama-3.3-70B-Ignition-v0.1", + name: "Llama 3.3 70B Ignition v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "glm-4-plus-0111": { + id: "glm-4-plus-0111", + name: "GLM 4 Plus 0111", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "KAT-Coder-Air-V1": { + id: "KAT-Coder-Air-V1", + name: "KAT Coder Air V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "deepseek-r1-sambanova": { + id: "deepseek-r1-sambanova", + name: "DeepSeek R1 Fast", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 6.987 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek R1", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "doubao-1-5-thinking-pro-250415": { + id: "doubao-1-5-thinking-pro-250415", + name: "Doubao 1.5 Thinking Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Perplexity Pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "Gemma-3-27B-it-Abliterated": { + id: "Gemma-3-27B-it-Abliterated", + name: "Gemma 3 27B IT Abliterated", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.42, output: 0.42 }, + limit: { context: 32768, input: 32768, output: 96000 }, + }, + "deepseek-chat-cheaper": { + id: "deepseek-chat-cheaper", + name: "DeepSeek V3/Chat Cheaper", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "gemini-2.0-pro-exp-02-05": { + id: "gemini-2.0-pro-exp-02-05", + name: "Gemini 2.0 Pro 0205", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.956 }, + limit: { context: 2097152, input: 2097152, output: 8192 }, + }, + "azure-gpt-4o-mini": { + id: "azure-gpt-4o-mini", + name: "Azure gpt-4o-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1496, output: 0.595 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Llama-3.3-70B-MS-Nevoria": { + id: "Llama-3.3-70B-MS-Nevoria", + name: "Llama 3.3 70B MS Nevoria", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-opus-4-thinking": { + id: "claude-opus-4-thinking", + name: "Claude 4 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Sapphira-0.1": { + id: "Llama-3.3-70B-Sapphira-0.1", + name: "Llama 3.3 70B Sapphira 0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-seed-code-preview-latest": { + id: "doubao-seed-code-preview-latest", + name: "Doubao Seed Code Preview", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v1.4": { + id: "Llama-3.3-70B-ArliAI-RPMax-v1.4", + name: "Llama 3.3 70B RPMax v1.4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "mistral-small-31-24b-instruct": { + id: "mistral-small-31-24b-instruct", + name: "Mistral Small 31 24b Instruct", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "glm-4.1v-thinking-flashx": { + id: "glm-4.1v-thinking-flashx", + name: "GLM 4.1V Thinking FlashX", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "hunyuan-t1-latest": { + id: "hunyuan-t1-latest", + name: "Hunyuan T1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-22", + last_updated: "2025-03-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "doubao-1-5-thinking-vision-pro-250428": { + id: "doubao-1-5-thinking-vision-pro-250428", + name: "Doubao 1.5 Thinking Vision Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-15", + last_updated: "2025-05-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 1.43 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "asi1-mini": { + id: "asi1-mini", + name: "ASI1 Mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "ernie-5.0-thinking-latest": { + id: "ernie-5.0-thinking-latest", + name: "Ernie 5.0 Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Llama-3.3-70B-Incandescent-Malevolence": { + id: "Llama-3.3-70B-Incandescent-Malevolence", + name: "Llama 3.3 70B Incandescent Malevolence", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Damascus-R1": { + id: "Llama-3.3-70B-Damascus-R1", + name: "Damascus R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-Nidum-Uncensored": { + id: "Gemma-3-27B-Nidum-Uncensored", + name: "Gemma 3 27B Nidum Uncensored", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 96000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025-thinking": { + id: "gemini-2.5-flash-lite-preview-09-2025-thinking", + name: "Gemini 2.5 Flash Lite Preview (09/2025) – Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "doubao-seed-2-0-pro-260215": { + id: "doubao-seed-2-0-pro-260215", + name: "Doubao Seed 2.0 Pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.782, output: 3.876 }, + limit: { context: 256000, input: 256000, output: 128000 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "Gemini 3 Pro Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Gemma-3-27B-CardProjector-v4": { + id: "Gemma-3-27B-CardProjector-v4", + name: "Gemma 3 27B CardProjector v4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "jamba-mini-1.7": { + id: "jamba-mini-1.7", + name: "Jamba Mini 1.7", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "Llama-3.3-70B-Forgotten-Safeword-3.6": { + id: "Llama-3.3-70B-Forgotten-Safeword-3.6", + name: "Llama 3.3 70B Forgotten Safeword 3.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-1-5-thinking-pro-vision-250415": { + id: "doubao-1-5-thinking-pro-vision-250415", + name: "Doubao 1.5 Thinking Pro Vision", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 0605", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "gemini-2.0-pro-reasoner": { + id: "gemini-2.0-pro-reasoner", + name: "Gemini 2.0 Pro Reasoner", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.292, output: 4.998 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "doubao-seed-2-0-lite-260215": { + id: "doubao-seed-2-0-lite-260215", + name: "Doubao Seed 2.0 Lite", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1462, output: 0.8738 }, + limit: { context: 256000, input: 256000, output: 32000 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Deep Research", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-25", + last_updated: "2025-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.4, output: 13.6 }, + limit: { context: 60000, input: 60000, output: 128000 }, + }, + "Gemma-3-27B-it": { + id: "Gemma-3-27B-it", + name: "Gemma 3 27B IT", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-GeneticLemonade-Unleashed-v3": { + id: "Llama-3.3-70B-GeneticLemonade-Unleashed-v3", + name: "Llama 3.3 70B GeneticLemonade Unleashed v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-Glitter": { + id: "Gemma-3-27B-Glitter", + name: "Gemma 3 27B Glitter", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1": { + id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1", + name: "Llama 3.3 70B Omega Directive Unslop v2.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "gemini-2.5-flash-preview-09-2025-thinking": { + id: "gemini-2.5-flash-preview-09-2025-thinking", + name: "Gemini 2.5 Flash Preview (09/2025) – Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + deepclaude: { + id: "deepclaude", + name: "DeepClaude", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "ernie-4.5-8k-preview": { + id: "ernie-4.5-8k-preview", + name: "Ernie 4.5 8k Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 2.6 }, + limit: { context: 8000, input: 8000, output: 16384 }, + }, + "doubao-seed-2-0-mini-260215": { + id: "doubao-seed-2-0-mini-260215", + name: "Doubao Seed 2.0 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0493, output: 0.4845 }, + limit: { context: 256000, input: 256000, output: 32000 }, + }, + "gemini-3-pro-preview-thinking": { + id: "gemini-3-pro-preview-thinking", + name: "Gemini 3 Pro Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-GeneticLemonade-Opus": { + id: "Llama-3.3-70B-GeneticLemonade-Opus", + name: "Llama 3.3 70B GeneticLemonade Opus", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "v0-1.5-lg": { + id: "v0-1.5-lg", + name: "v0 1.5 LG", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "ernie-4.5-turbo-128k": { + id: "ernie-4.5-turbo-128k", + name: "Ernie 4.5 Turbo 128k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.132, output: 0.55 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "KAT-Coder-Pro-V1": { + id: "KAT-Coder-Pro-V1", + name: "KAT Coder Pro V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "claude-3-5-sonnet-20240620": { + id: "claude-3-5-sonnet-20240620", + name: "Claude 3.5 Sonnet Old", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "claude-opus-4-1-thinking:8192": { + id: "claude-opus-4-1-thinking:8192", + name: "Claude 4.1 Opus Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.0-flash-exp-image-generation": { + id: "gemini-2.0-flash-exp-image-generation", + name: "Gemini Text + Image", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "Llama-3.3-70B-Magnum-v4-SE": { + id: "Llama-3.3-70B-Magnum-v4-SE", + name: "Llama 3.3 70B Magnum v4 SE", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "glm-zero-preview": { + id: "glm-zero-preview", + name: "GLM Zero Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.802, output: 1.802 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "study_gpt-chatgpt-4o-latest": { + id: "study_gpt-chatgpt-4o-latest", + name: "Study Mode", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16384 }, + }, + "glm-4-airx": { + id: "glm-4-airx", + name: "GLM-4 AirX", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "step-2-mini": { + id: "step-2-mini", + name: "Step-2 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-05", + last_updated: "2024-07-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.408 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "gemini-2.5-flash-preview-04-17:thinking": { + id: "gemini-2.5-flash-preview-04-17:thinking", + name: "Gemini 2.5 Flash Preview Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 3.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-Mokume-Gane-R1": { + id: "Llama-3.3-70B-Mokume-Gane-R1", + name: "Llama 3.3 70B Mokume Gane R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 64000, input: 64000, output: 65536 }, + }, + "glm-z1-airx": { + id: "glm-z1-airx", + name: "GLM Z1 AirX", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "jamba-mini-1.6": { + id: "jamba-mini-1.6", + name: "Jamba Mini 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "claude-opus-4-1-thinking": { + id: "claude-opus-4-1-thinking", + name: "Claude 4.1 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "grok-3-beta": { + id: "grok-3-beta", + name: "Grok 3 Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "Llama-3.3-70B-Legion-V2.1": { + id: "Llama-3.3-70B-Legion-V2.1", + name: "Llama 3.3 70B Legion V2.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + sonar: { + id: "sonar", + name: "Perplexity Simple", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.003, output: 1.003 }, + limit: { context: 127000, input: 127000, output: 128000 }, + }, + "z-image-turbo": { + id: "z-image-turbo", + name: "Z Image Turbo", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-27", + last_updated: "2025-11-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-v2": { + id: "GLM-4.5-Air-Derestricted-Iceblink-v2", + name: "GLM 4.5 Air Derestricted Iceblink v2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 158600, input: 158600, output: 65536 }, + }, + "jamba-large": { + id: "jamba-large", + name: "Jamba Large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "claude-3-7-sonnet-reasoner": { + id: "claude-3-7-sonnet-reasoner", + name: "Claude 3.7 Sonnet Reasoner", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-29", + last_updated: "2025-03-29", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "ernie-4.5-turbo-vl-32k": { + id: "ernie-4.5-turbo-vl-32k", + name: "Ernie 4.5 Turbo VL 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.495, output: 1.43 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "Mistral-Nemo-12B-Instruct-2407": { + id: "Mistral-Nemo-12B-Instruct-2407", + name: "Mistral Nemo 12B Instruct 2407", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "doubao-seed-1-6-flash-250615": { + id: "doubao-seed-1-6-flash-250615", + name: "Doubao Seed 1.6 Flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0374, output: 0.374 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "qwq-32b": { + id: "qwq-32b", + name: "Qwen: QwQ 32B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25599999, output: 0.30499999 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "Llama-3.3-70B-Strawberrylemonade-v1.2": { + id: "Llama-3.3-70B-Strawberrylemonade-v1.2", + name: "Llama 3.3 70B StrawberryLemonade v1.2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "ernie-x1-turbo-32k": { + id: "ernie-x1-turbo-32k", + name: "Ernie X1 Turbo 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.165, output: 0.66 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "deepseek-math-v2": { + id: "deepseek-math-v2", + name: "DeepSeek Math V2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "Llama-3.3-70B-Electranova-v1.0": { + id: "Llama-3.3-70B-Electranova-v1.0", + name: "Llama 3.3 70B Electranova v1.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v2": { + id: "Llama-3.3-70B-ArliAI-RPMax-v2", + name: "Llama 3.3 70B ArliAI RPMax v2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen-image": { + id: "qwen-image", + name: "Qwen Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "Llama-3.3-70B-Cu-Mai-R1": { + id: "Llama-3.3-70B-Cu-Mai-R1", + name: "Llama 3.3 70B Cu Mai R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink": { + id: "GLM-4.5-Air-Derestricted-Iceblink", + name: "GLM 4.5 Air Derestricted Iceblink", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 98304 }, + }, + "Llama-3.3-70B-Bigger-Body": { + id: "Llama-3.3-70B-Bigger-Body", + name: "Llama 3.3 70B Bigger Body", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3+(3.1v3.3)-70B-Hanami-x1": { + id: "Llama-3.3+(3.1v3.3)-70B-Hanami-x1", + name: "Llama 3.3+ 70B Hanami x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "hunyuan-turbos-20250226": { + id: "hunyuan-turbos-20250226", + name: "Hunyuan Turbo S", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.187, output: 0.374 }, + limit: { context: 24000, input: 24000, output: 8192 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview (09/2025)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "GLM-4.6-Derestricted-v5": { + id: "GLM-4.6-Derestricted-v5", + name: "GLM 4.6 Derestricted v5", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "glm-4-plus": { + id: "glm-4-plus", + name: "GLM-4 Plus", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.497, output: 7.497 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Gemma-3-27B-Big-Tiger-v3": { + id: "Gemma-3-27B-Big-Tiger-v3", + name: "Gemma 3 27B Big Tiger v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "brave-research": { + id: "brave-research", + name: "Brave (Research)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + hidream: { + id: "hidream", + name: "Hidream", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max 2026-01-23", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2002, output: 6.001 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude 4.1 Opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax M1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 1.3328 }, + limit: { context: 1000000, input: 1000000, output: 131072 }, + }, + "gemini-2.5-flash-nothinking": { + id: "gemini-2.5-flash-nothinking", + name: "Gemini 2.5 Flash (No Thinking)", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "exa-research-pro": { + id: "exa-research-pro", + name: "Exa (Research Pro)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "grok-3-fast-beta": { + id: "grok-3-fast-beta", + name: "Grok 3 Fast Beta", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "claude-opus-4-5-20251101:thinking": { + id: "claude-opus-4-5-20251101:thinking", + name: "Claude 4.5 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-pro-exp-03-25": { + id: "gemini-2.5-pro-exp-03-25", + name: "Gemini 2.5 Pro Experimental 0325", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "claude-3-7-sonnet-thinking": { + id: "claude-3-7-sonnet-thinking", + name: "Claude 3.7 Sonnet Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16000 }, + }, + "claude-opus-4-thinking:8192": { + id: "claude-opus-4-thinking:8192", + name: "Claude 4 Opus Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "claude-sonnet-4-thinking:1024": { + id: "claude-sonnet-4-thinking:1024", + name: "Claude 4 Sonnet Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP": { + id: "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP", + name: "Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "step-r1-v-mini": { + id: "step-r1-v-mini", + name: "Step R1 V Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-08", + last_updated: "2025-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 11 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "ernie-x1-32k-preview": { + id: "ernie-x1-32k-preview", + name: "Ernie X1 32k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "Llama-3.3-70B-StrawberryLemonade-v1.0": { + id: "Llama-3.3-70B-StrawberryLemonade-v1.0", + name: "Llama 3.3 70B StrawberryLemonade v1.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "KAT-Coder-Exp-72B-1010": { + id: "KAT-Coder-Exp-72B-1010", + name: "KAT Coder Exp 72B 1010", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "gemini-2.5-pro-preview-03-25": { + id: "gemini-2.5-pro-preview-03-25", + name: "Gemini 2.5 Pro Preview 0325", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "claude-opus-4-thinking:1024": { + id: "claude-opus-4-thinking:1024", + name: "Claude 4 Opus Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude 4 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "Llama-3.3-70B-Progenitor-V3.3": { + id: "Llama-3.3-70B-Progenitor-V3.3", + name: "Llama 3.3 70B Progenitor V3.3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Qwen2.5-32B-EVA-v0.2": { + id: "Qwen2.5-32B-EVA-v0.2", + name: "Qwen 2.5 32b EVA", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.493, output: 0.493 }, + limit: { context: 24576, input: 24576, output: 8192 }, + }, + "brave-pro": { + id: "brave-pro", + name: "Brave (Pro)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "step-2-16k-exp": { + id: "step-2-16k-exp", + name: "Step-2 16k Exp", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-05", + last_updated: "2024-07-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.004, output: 19.992 }, + limit: { context: 16000, input: 16000, output: 8192 }, + }, + "Llama-3.3-70B-Fallen-R1-v1": { + id: "Llama-3.3-70B-Fallen-R1-v1", + name: "Llama 3.3 70B Fallen R1 v1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-sonnet-4-thinking": { + id: "claude-sonnet-4-thinking", + name: "Claude 4 Sonnet Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "doubao-1.5-pro-256k": { + id: "doubao-1.5-pro-256k", + name: "Doubao 1.5 Pro 256k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.799, output: 1.445 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16000 }, + }, + "learnlm-1.5-pro-experimental": { + id: "learnlm-1.5-pro-experimental", + name: "Gemini LearnLM Experimental", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.502, output: 10.506 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + chroma: { + id: "chroma", + name: "Chroma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "Llama-3.3-70B-Predatorial-Extasy": { + id: "Llama-3.3-70B-Predatorial-Extasy", + name: "Llama 3.3 70B Predatorial Extasy", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Aurora-Borealis": { + id: "Llama-3.3-70B-Aurora-Borealis", + name: "Llama 3.3 70B Aurora Borealis", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v3": { + id: "Llama-3.3-70B-ArliAI-RPMax-v3", + name: "Llama 3.3 70B ArliAI RPMax v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "venice-uncensored": { + id: "venice-uncensored", + name: "Venice Uncensored", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "step-3": { + id: "step-3", + name: "Step-3", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2499, output: 0.6494 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0": { + id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0", + name: "Llama 3.3 70B Omega Directive Unslop v2.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "auto-model": { + id: "auto-model", + name: "Auto model", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "claude-opus-4-1-thinking:32768": { + id: "claude-opus-4-1-thinking:32768", + name: "Claude 4.1 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Shakudo": { + id: "Llama-3.3-70B-Shakudo", + name: "Llama 3.3 70B Shakudo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Baichuan4-Air": { + id: "Baichuan4-Air", + name: "Baichuan 4 Air", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.157, output: 0.157 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "kimi-thinking-preview": { + id: "kimi-thinking-preview", + name: "Kimi Thinking Preview", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 31.46, output: 31.46 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04998, output: 0.2006 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "Llama-3.3-70B-Mhnnn-x1": { + id: "Llama-3.3-70B-Mhnnn-x1", + name: "Llama 3.3 70B Mhnnn x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-opus-4-thinking:32768": { + id: "claude-opus-4-thinking:32768", + name: "Claude 4 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Argunaut-1-SFT": { + id: "Llama-3.3-70B-Argunaut-1-SFT", + name: "Llama 3.3 70B Argunaut 1 SFT", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-opus-4-1-thinking:1024": { + id: "claude-opus-4-1-thinking:1024", + name: "Claude 4.1 Opus Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "phi-4-multimodal-instruct": { + id: "phi-4-multimodal-instruct", + name: "Phi 4 Multimodal", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.11 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "doubao-seed-2-0-code-preview-260215": { + id: "doubao-seed-2-0-code-preview-260215", + name: "Doubao Seed 2.0 Code Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.782, output: 3.893 }, + limit: { context: 256000, input: 256000, output: 128000 }, + }, + "deepseek-reasoner-cheaper": { + id: "deepseek-reasoner-cheaper", + name: "Deepseek R1 Cheaper", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "exa-answer": { + id: "exa-answer", + name: "Exa (Answer)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 4096, input: 4096, output: 4096 }, + }, + "v0-1.0-md": { + id: "v0-1.0-md", + name: "v0 1.0 MD", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "glm-4.1v-thinking-flash": { + id: "glm-4.1v-thinking-flash", + name: "GLM 4.1V Thinking Flash", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "azure-o1": { + id: "azure-o1", + name: "Azure o1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-17", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 59.993 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "GLM-4.5-Air-Derestricted": { + id: "GLM-4.5-Air-Derestricted", + name: "GLM 4.5 Air Derestricted", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 202600, input: 202600, output: 98304 }, + }, + "azure-o3-mini": { + id: "azure-o3-mini", + name: "Azure o3-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.088, output: 4.3996 }, + limit: { context: 200000, input: 200000, output: 65536 }, + }, + "Llama-3.3-70B-Sapphira-0.2": { + id: "Llama-3.3-70B-Sapphira-0.2", + name: "Llama 3.3 70B Sapphira 0.2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Anthrobomination": { + id: "Llama-3.3-70B-Anthrobomination", + name: "Llama 3.3 70B Anthrobomination", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "QwQ-32B-ArliAI-RpR-v1": { + id: "QwQ-32B-ArliAI-RpR-v1", + name: "QwQ 32b Arli V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude 4 Opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "yi-lightning": { + id: "yi-lightning", + name: "Yi Lightning", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-16", + last_updated: "2024-10-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 12000, input: 12000, output: 4096 }, + }, + "Llama-3.3-70B-Electra-R1": { + id: "Llama-3.3-70B-Electra-R1", + name: "Llama 3.3 70B Electra R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Forgotten-Abomination-v5.0": { + id: "Llama-3.3-70B-Forgotten-Abomination-v5.0", + name: "Llama 3.3 70B Forgotten Abomination v5.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Cirrus-x1": { + id: "Llama-3.3-70B-Cirrus-x1", + name: "Llama 3.3 70B Cirrus x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "grok-3-mini-beta": { + id: "grok-3-mini-beta", + name: "Grok 3 Mini Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "auto-model-standard": { + id: "auto-model-standard", + name: "Auto model (Standard)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "claude-sonnet-4-5-20250929-thinking": { + id: "claude-sonnet-4-5-20250929-thinking", + name: "Claude Sonnet 4.5 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "v0-1.5-md": { + id: "v0-1.5-md", + name: "v0 1.5 MD", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "kimi-k2-instruct-fast": { + id: "kimi-k2-instruct-fast", + name: "Kimi K2 0711 Fast", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "glm-4-long": { + id: "glm-4-long", + name: "GLM-4 Long", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 1000000, input: 1000000, output: 4096 }, + }, + "mercury-coder-small": { + id: "mercury-coder-small", + name: "Mercury Coder Small", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-26", + last_updated: "2025-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "jamba-large-1.7": { + id: "jamba-large-1.7", + name: "Jamba Large 1.7", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "qvq-max": { + id: "qvq-max", + name: "Qwen: QvQ Max", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-28", + last_updated: "2025-03-28", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 5.3 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "gemini-2.0-flash-thinking-exp-1219": { + id: "gemini-2.0-flash-thinking-exp-1219", + name: "Gemini 2.0 Flash Thinking 1219", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-19", + last_updated: "2024-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0748, output: 0.306 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "azure-gpt-4-turbo": { + id: "azure-gpt-4-turbo", + name: "Azure gpt-4-turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 30.005 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Baichuan-M2": { + id: "Baichuan-M2", + name: "Baichuan M2 32B Medical", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15.73, output: 15.73 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "qwen-long": { + id: "qwen-long", + name: "Qwen Long 10M", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 10000000, input: 10000000, output: 8192 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Perplexity Reasoning Pro", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 7.9985 }, + limit: { context: 127000, input: 127000, output: 128000 }, + }, + "gemini-2.5-flash-preview-05-20:thinking": { + id: "gemini-2.5-flash-preview-05-20:thinking", + name: "Gemini 2.5 Flash 0520 Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 3.5 }, + limit: { context: 1048000, input: 1048000, output: 65536 }, + }, + "GLM-4.5-Air-Derestricted-Steam-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Steam-ReExtract", + name: "GLM 4.5 Air Derestricted Steam ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 65536 }, + }, + "Llama-3.3-70B-Dark-Ages-v0.1": { + id: "Llama-3.3-70B-Dark-Ages-v0.1", + name: "Llama 3.3 70B Dark Ages v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Baichuan4-Turbo": { + id: "Baichuan4-Turbo", + name: "Baichuan 4 Turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.42, output: 2.42 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "doubao-1.5-vision-pro-32k": { + id: "doubao-1.5-vision-pro-32k", + name: "Doubao 1.5 Vision Pro 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-22", + last_updated: "2025-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.459, output: 1.377 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "inflection/inflection-3-pi": { + id: "inflection/inflection-3-pi", + name: "Inflection 3 Pi", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "inflection/inflection-3-productivity": { + id: "inflection/inflection-3-productivity", + name: "Inflection 3 Productivity", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "essentialai/rnj-1-instruct": { + id: "essentialai/rnj-1-instruct", + name: "RNJ-1 Instruct 8B", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-13", + last_updated: "2025-12-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "LLM360/K2-Think": { + id: "LLM360/K2-Think", + name: "K2-Think", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "TEE/kimi-k2.5": { + id: "TEE/kimi-k2.5", + name: "Kimi K2.5 TEE", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/glm-4.7": { + id: "TEE/glm-4.7", + name: "GLM 4.7 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 3.3 }, + limit: { context: 131000, input: 131000, output: 65535 }, + }, + "TEE/qwen3.5-397b-a17b": { + id: "TEE/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-28", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 258048, input: 258048, output: 65536 }, + }, + "TEE/glm-5": { + id: "TEE/glm-5", + name: "GLM 5 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 3.5 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/qwen2.5-vl-72b-instruct": { + id: "TEE/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B TEE", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "TEE/minimax-m2.1": { + id: "TEE/minimax-m2.1", + name: "MiniMax M2.1 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "TEE/qwen3-30b-a3b-instruct-2507": { + id: "TEE/qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.44999999999999996 }, + limit: { context: 262000, input: 262000, output: 32768 }, + }, + "TEE/deepseek-v3.1": { + id: "TEE/deepseek-v3.1", + name: "DeepSeek V3.1 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2.5 }, + limit: { context: 164000, input: 164000, output: 8192 }, + }, + "TEE/llama3-3-70b": { + id: "TEE/llama3-3-70b", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "TEE/glm-4.6": { + id: "TEE/glm-4.6", + name: "GLM 4.6 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 2 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/kimi-k2.5-thinking": { + id: "TEE/kimi-k2.5-thinking", + name: "Kimi K2.5 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/gemma-3-27b-it": { + id: "TEE/gemma-3-27b-it", + name: "Gemma 3 27B TEE", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "TEE/deepseek-v3.2": { + id: "TEE/deepseek-v3.2", + name: "DeepSeek V3.2 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1 }, + limit: { context: 164000, input: 164000, output: 65536 }, + }, + "TEE/gpt-oss-20b": { + id: "TEE/gpt-oss-20b", + name: "GPT-OSS 20B TEE", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "TEE/qwen3-coder": { + id: "TEE/qwen3-coder", + name: "Qwen3 Coder 480B TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "TEE/glm-4.7-flash": { + id: "TEE/glm-4.7-flash", + name: "GLM 4.7 Flash TEE", + family: "glm-flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/gpt-oss-120b": { + id: "TEE/gpt-oss-120b", + name: "GPT-OSS 120B TEE", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "TEE/deepseek-r1-0528": { + id: "TEE/deepseek-r1-0528", + name: "DeepSeek R1 0528 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "TEE/kimi-k2-thinking": { + id: "TEE/kimi-k2-thinking", + name: "Kimi K2 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "CrucibleLab/L3.3-70B-Loki-V2.0": { + id: "CrucibleLab/L3.3-70B-Loki-V2.0", + name: "L3.3 70B Loki v2.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "deepseek/deepseek-v3.2:thinking": { + id: "deepseek/deepseek-v3.2:thinking", + name: "DeepSeek V3.2 Thinking", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "deepseek/deepseek-prover-v2-671b": { + id: "deepseek/deepseek-prover-v2-671b", + name: "DeepSeek Prover v2 671B", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2.5 }, + limit: { context: 160000, input: 160000, output: 16384 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek V3.2 Speciale", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond": { + id: "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond", + name: "MS3.2 24B Magnum Diamond", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "NeverSleep/Llama-3-Lumimaid-70B-v0.1": { + id: "NeverSleep/Llama-3-Lumimaid-70B-v0.1", + name: "Lumimaid 70b", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "NeverSleep/Lumimaid-v0.2-70B": { + id: "NeverSleep/Lumimaid-v0.2-70B", + name: "Lumimaid v0.2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1.5 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "Steelskull/L3.3-Cu-Mai-R1-70b": { + id: "Steelskull/L3.3-Cu-Mai-R1-70b", + name: "Llama 3.3 70B Cu Mai", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-Nevoria-R1-70b": { + id: "Steelskull/L3.3-Nevoria-R1-70b", + name: "Steelskull Nevoria R1 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Evayale-70B": { + id: "Steelskull/L3.3-MS-Evayale-70B", + name: "Evayale 70b ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-Electra-R1-70b": { + id: "Steelskull/L3.3-Electra-R1-70b", + name: "Steelskull Electra R1 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.69989, output: 0.69989 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Nevoria-70b": { + id: "Steelskull/L3.3-MS-Nevoria-70b", + name: "Steelskull Nevoria 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Evalebis-70b": { + id: "Steelskull/L3.3-MS-Evalebis-70b", + name: "MS Evalebis 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "miromind-ai/mirothinker-v1.5-235b": { + id: "miromind-ai/mirothinker-v1.5-235b", + name: "MiroThinker v1.5 235B", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-07", + last_updated: "2026-01-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 32768, input: 32768, output: 4000 }, + }, + "pamanseau/OpenReasoning-Nemotron-32B": { + id: "pamanseau/OpenReasoning-Nemotron-32B", + name: "OpenReasoning Nemotron 32B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 32768, input: 32768, output: 65536 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045000000000000005, output: 0.15 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "arcee-ai/trinity-large": { + id: "arcee-ai/trinity-large", + name: "Trinity Large", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "cognitivecomputations/dolphin-2.9.2-qwen2-72b": { + id: "cognitivecomputations/dolphin-2.9.2-qwen2-72b", + name: "Dolphin 72b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 8192, input: 8192, output: 4096 }, + }, + "deepcogito/cogito-v1-preview-qwen-32B": { + id: "deepcogito/cogito-v1-preview-qwen-32B", + name: "Cogito v1 Preview Qwen 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.7999999999999998, output: 1.7999999999999998 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "deepcogito/cogito-v2.1-671b": { + id: "deepcogito/cogito-v2.1-671b", + name: "Cogito v2.1 671B MoE", + family: "cogito", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Salesforce/Llama-xLAM-2-70b-fc-r": { + id: "Salesforce/Llama-xLAM-2-70b-fc-r", + name: "Llama-xLAM-2 70B fc-r", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-13", + last_updated: "2025-04-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "NousResearch 2/hermes-4-405b:thinking": { + id: "NousResearch 2/hermes-4-405b:thinking", + name: "Hermes 4 Large (Thinking)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/DeepHermes-3-Mistral-24B-Preview": { + id: "NousResearch 2/DeepHermes-3-Mistral-24B-Preview", + name: "DeepHermes-3 Mistral 24B (Preview)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "NousResearch 2/Hermes-4-70B:thinking": { + id: "NousResearch 2/Hermes-4-70B:thinking", + name: "Hermes 4 (Thinking)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-17", + last_updated: "2025-09-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.39949999999999997 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-4-405b": { + id: "NousResearch 2/hermes-4-405b", + name: "Hermes 4 Large", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-3-llama-3.1-70b": { + id: "NousResearch 2/hermes-3-llama-3.1-70b", + name: "Hermes 3 70B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-07", + last_updated: "2026-01-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.408, output: 0.408 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "NousResearch 2/hermes-4-70b": { + id: "NousResearch 2/hermes-4-70b", + name: "Hermes 4 Medium", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.39949999999999997 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "soob3123/Veiled-Calla-12B": { + id: "soob3123/Veiled-Calla-12B", + name: "Veiled Calla 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-13", + last_updated: "2025-04-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "soob3123/GrayLine-Qwen3-8B": { + id: "soob3123/GrayLine-Qwen3-8B", + name: "Grayline Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "soob3123/amoral-gemma3-27B-v2": { + id: "soob3123/amoral-gemma3-27B-v2", + name: "Amoral Gemma3 27B v2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-23", + last_updated: "2025-05-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "nex-agi/deepseek-v3.1-nex-n1": { + id: "nex-agi/deepseek-v3.1-nex-n1", + name: "DeepSeek V3.1 Nex N1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-10", + last_updated: "2025-12-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B": { + id: "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", + name: "Llama 3.05 Storybreaker Ministral 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B": { + id: "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B", + name: "Nemotron Tenyxchat Storybreaker 70b", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "anthracite-org/magnum-v4-72b": { + id: "anthracite-org/magnum-v4-72b", + name: "Magnum v4 72B", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.992 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "anthracite-org/magnum-v2-72b": { + id: "anthracite-org/magnum-v2-72b", + name: "Magnum V2 72B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.992 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0": { + id: "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0", + name: "Omega Directive 24B Unslop v2.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "ReadyArt/The-Omega-Abomination-L-70B-v1.0": { + id: "ReadyArt/The-Omega-Abomination-L-70B-v1.0", + name: "The Omega Abomination V1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.95 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "undi95/remm-slerp-l2-13b": { + id: "undi95/remm-slerp-l2-13b", + name: "ReMM SLERP 13B", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 1.2069999999999999 }, + limit: { context: 6144, input: 6144, output: 4096 }, + }, + "MarinaraSpaghetti/NemoMix-Unleashed-12B": { + id: "MarinaraSpaghetti/NemoMix-Unleashed-12B", + name: "NemoMix 12B Unleashed", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "allenai/molmo-2-8b": { + id: "allenai/molmo-2-8b", + name: "Molmo 2 8B", + family: "allenai", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 36864, input: 36864, output: 36864 }, + }, + "allenai/olmo-3.1-32b-instruct": { + id: "allenai/olmo-3.1-32b-instruct", + name: "Olmo 3.1 32B Instruct", + family: "allenai", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-25", + last_updated: "2026-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "allenai/olmo-3.1-32b-think": { + id: "allenai/olmo-3.1-32b-think", + name: "Olmo 3.1 32B Think", + family: "allenai", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-25", + last_updated: "2026-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "allenai/olmo-3-32b-think": { + id: "allenai/olmo-3-32b-think", + name: "Olmo 3 32B Think", + family: "allenai", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.44999999999999996 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "stepfun-ai/step-3.5-flash:thinking": { + id: "stepfun-ai/step-3.5-flash:thinking", + name: "Step 3.5 Flash Thinking", + family: "step", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "stepfun-ai/step-3.5-flash": { + id: "stepfun-ai/step-3.5-flash", + name: "Step 3.5 Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.8 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "zai-org/glm-5.1": { + id: "zai-org/glm-5.1", + name: "GLM 5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "zai-org/glm-5.1:thinking": { + id: "zai-org/glm-5.1:thinking", + name: "GLM 5.1 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "zai-org/glm-5:thinking": { + id: "zai-org/glm-5:thinking", + name: "GLM 5 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, + "featherless-ai/Qwerky-72B": { + id: "featherless-ai/Qwerky-72B", + name: "Qwerky 72B", + family: "qwerky", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "mlabonne/NeuralDaredevil-8B-abliterated": { + id: "mlabonne/NeuralDaredevil-8B-abliterated", + name: "Neural Daredevil 8B abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.44, output: 0.44 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "raifle/sorcererlm-8x22b": { + id: "raifle/sorcererlm-8x22b", + name: "SorcererLM 8x22B", + family: "mixtral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.505, output: 4.505 }, + limit: { context: 16000, input: 16000, output: 8192 }, + }, + "mistralai/mixtral-8x7b-instruct-v0.1": { + id: "mistralai/mixtral-8x7b-instruct-v0.1", + name: "Mixtral 8x7B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "mistralai/mistral-saba": { + id: "mistralai/mistral-saba", + name: "Mistral Saba", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.595 }, + limit: { context: 32000, input: 32000, output: 32768 }, + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + id: "mistralai/mistral-large-3-675b-instruct-2512", + name: "Mistral Large 3 675B", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3 }, + limit: { context: 262144, input: 262144, output: 256000 }, + }, + "mistralai/devstral-2-123b-instruct-2512": { + id: "mistralai/devstral-2-123b-instruct-2512", + name: "Devstral 2 123B", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.4 }, + limit: { context: 262144, input: 262144, output: 65536 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Codestral 2508", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.8999999999999999 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "mistralai/ministral-14b-instruct-2512": { + id: "mistralai/ministral-14b-instruct-2512", + name: "Ministral 3 14B", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/mistral-tiny": { + id: "mistralai/mistral-tiny", + name: "Mistral Tiny", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-12-11", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25499999999999995, output: 0.25499999999999995 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "mistralai/ministral-8b-2512": { + id: "mistralai/ministral-8b-2512", + name: "Ministral 8B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/mixtral-8x22b-instruct-v0.1": { + id: "mistralai/mixtral-8x22b-instruct-v0.1", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8999999999999999, output: 0.8999999999999999 }, + limit: { context: 65536, input: 65536, output: 32768 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/ministral-3b-2512": { + id: "mistralai/ministral-3b-2512", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/mistral-7b-instruct": { + id: "mistralai/mistral-7b-instruct", + name: "Mistral 7B Instruct", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0544, output: 0.0544 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "mistralai/Devstral-Small-2505": { + id: "mistralai/Devstral-Small-2505", + name: "Mistral Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.060000000000000005, output: 0.060000000000000005 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "mistralai/mistral-small-creative": { + id: "mistralai/mistral-small-creative", + name: "Mistral Small Creative", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "mistralai/mistral-large": { + id: "mistralai/mistral-large", + name: "Mistral Large 2411", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-02-26", + last_updated: "2024-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 6.001 }, + limit: { context: 128000, input: 128000, output: 256000 }, + }, + "mistralai/ministral-14b-2512": { + id: "mistralai/ministral-14b-2512", + name: "Ministral 14B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "shisa-ai/shisa-v2.1-llama3.3-70b": { + id: "shisa-ai/shisa-v2.1-llama3.3-70b", + name: "Shisa V2.1 Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 32768, input: 32768, output: 4096 }, + }, + "shisa-ai/shisa-v2-llama3.3-70b": { + id: "shisa-ai/shisa-v2-llama3.3-70b", + name: "Shisa V2 Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Llama 3.3 70b Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.23 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "meta-llama/llama-4-scout": { + id: "meta-llama/llama-4-scout", + name: "Llama 4 Scout", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.085, output: 0.46 }, + limit: { context: 328000, input: 328000, output: 65536 }, + }, + "meta-llama/llama-4-maverick": { + id: "meta-llama/llama-4-maverick", + name: "Llama 4 Maverick", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18000000000000002, output: 0.8 }, + limit: { context: 1048576, input: 1048576, output: 65536 }, + }, + "meta-llama/llama-3.2-90b-vision-instruct": { + id: "meta-llama/llama-3.2-90b-vision-instruct", + name: "Llama 3.2 Medium", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9009999999999999, output: 0.9009999999999999 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "meta-llama/llama-3.2-3b-instruct": { + id: "meta-llama/llama-3.2-3b-instruct", + name: "Llama 3.2 3b Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0306, output: 0.0493 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Llama 3.1 8b Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0544, output: 0.0544 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "GalrionSoftworks/MN-LooseCannon-12B-v1": { + id: "GalrionSoftworks/MN-LooseCannon-12B-v1", + name: "MN-LooseCannon-12B-v1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "baseten/Kimi-K2-Instruct-FP4": { + id: "baseten/Kimi-K2-Instruct-FP4", + name: "Kimi K2 0711 Instruct FP4", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "Gryphe/MythoMax-L2-13b": { + id: "Gryphe/MythoMax-L2-13b", + name: "MythoMax 13B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 4000, input: 4000, output: 4096 }, + }, + "x-ai/grok-4-fast:thinking": { + id: "x-ai/grok-4-fast:thinking", + name: "Grok 4 Fast Thinking", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4-07-09": { + id: "x-ai/grok-4-07-09", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, input: 256000, output: 131072 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-20", + last_updated: "2025-09-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, input: 256000, output: 131072 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4.1-fast-reasoning": { + id: "x-ai/grok-4.1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "Hunyuan MT 7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 20 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "WizardLM-2 8x22B", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "microsoft/MAI-DS-R1-FP8": { + id: "microsoft/MAI-DS-R1-FP8", + name: "Microsoft DeepSeek R1", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "cohere/command-r": { + id: "cohere/command-r", + name: "Cohere: Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-03-11", + last_updated: "2024-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.476, output: 1.428 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "cohere/command-r-plus-08-2024": { + id: "cohere/command-r-plus-08-2024", + name: "Cohere: Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.856, output: 14.246 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24b Instruct", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1": { + id: "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", + name: "Nvidia Nemotron Ultra 253B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.8 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "Nvidia Nemotron 3 Nano 30B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 256000, input: 256000, output: 262144 }, + }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + id: "nvidia/nvidia-nemotron-nano-9b-v2", + name: "Nvidia Nemotron Nano 9B v2", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": { + id: "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", + name: "Nvidia Nemotron 70b", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.357, output: 0.408 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "nvidia/Llama-3.3-Nemotron-Super-49B-v1": { + id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1", + name: "Nvidia Nemotron Super 49B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5": { + id: "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5", + name: "Nvidia Nemotron Super 49B v1.5", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "TheDrummer 2/Anubis-70B-v1": { + id: "TheDrummer 2/Anubis-70B-v1", + name: "Anubis 70B v1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 65536, input: 65536, output: 16384 }, + }, + "TheDrummer 2/Cydonia-24B-v4.3": { + id: "TheDrummer 2/Cydonia-24B-v4.3", + name: "The Drummer Cydonia 24B v4.3", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-25", + last_updated: "2025-12-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "TheDrummer 2/Magidonia-24B-v4.3": { + id: "TheDrummer 2/Magidonia-24B-v4.3", + name: "The Drummer Magidonia 24B v4.3", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-25", + last_updated: "2025-12-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "TheDrummer 2/Cydonia-24B-v4": { + id: "TheDrummer 2/Cydonia-24B-v4", + name: "The Drummer Cydonia 24B v4", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2414 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/Anubis-70B-v1.1": { + id: "TheDrummer 2/Anubis-70B-v1.1", + name: "Anubis 70B v1.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "TheDrummer 2/Rocinante-12B-v1.1": { + id: "TheDrummer 2/Rocinante-12B-v1.1", + name: "Rocinante 12b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.408, output: 0.595 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "TheDrummer 2/Cydonia-24B-v4.1": { + id: "TheDrummer 2/Cydonia-24B-v4.1", + name: "The Drummer Cydonia 24B v4.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/UnslopNemo-12B-v4.1": { + id: "TheDrummer 2/UnslopNemo-12B-v4.1", + name: "UnslopNemo 12b v4", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "TheDrummer 2/Cydonia-24B-v2": { + id: "TheDrummer 2/Cydonia-24B-v2", + name: "The Drummer Cydonia 24B v2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/skyfall-36b-v2": { + id: "TheDrummer 2/skyfall-36b-v2", + name: "TheDrummer Skyfall 36B V2", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 64000, input: 64000, output: 32768 }, + }, + "deepseek-ai/DeepSeek-V3.1:thinking": { + id: "deepseek-ai/DeepSeek-V3.1:thinking", + name: "DeepSeek V3.1 Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus:thinking": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus:thinking", + name: "DeepSeek V3.1 Terminus (Thinking)", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "deepseek-ai/deepseek-v3.2-exp-thinking": { + id: "deepseek-ai/deepseek-v3.2-exp-thinking", + name: "DeepSeek V3.2 Exp Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163840, input: 163840, output: 65536 }, + }, + "deepseek-ai/deepseek-v3.2-exp": { + id: "deepseek-ai/deepseek-v3.2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163840, input: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 20 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT 5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 16384 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "GPT-4o mini Search Preview", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.088, output: 0.35 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/chatgpt-4o-latest": { + id: "openai/chatgpt-4o-latest", + name: "ChatGPT 4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 14.993999999999998 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT 5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT 5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT 5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT 5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "OpenAI o3-mini (High)", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.64, output: 2.588 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1496, output: 0.595 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "OpenAI o4-mini Deep Research", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT 5.1 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT 5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT 5.1 Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o1-preview": { + id: "openai/o1-preview", + name: "OpenAI o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.993999999999998, output: 59.993 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "openai/gpt-4o-2024-08-06": { + id: "openai/gpt-4o-2024-08-06", + name: "GPT-4o (2024-08-06)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-06", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT 5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-12-17", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.993999999999998, output: 59.993 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2022-11-30", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, input: 16385, output: 4096 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "OpenAI o3 Deep Research", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo-preview": { + id: "openai/gpt-4-turbo-preview", + name: "GPT-4 Turbo Preview", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 30.004999999999995 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "OpenAI o1 Pro", + family: "o-pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "openai/gpt-5.1-chat-latest": { + id: "openai/gpt-5.1-chat-latest", + name: "GPT 5.1 Chat (Latest)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 16384 }, + }, + "openai/gpt-4o-search-preview": { + id: "openai/gpt-4o-search-preview", + name: "GPT-4o Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.47, output: 5.88 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT 4.1 Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/o4-mini-high": { + id: "openai/o4-mini-high", + name: "OpenAI o4-mini high", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT 5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.1-2025-11-13": { + id: "openai/gpt-5.1-2025-11-13", + name: "GPT-5.1 (2025-11-13)", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1000000, input: 1000000, output: 32768 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o3-mini-low": { + id: "openai/o3-mini-low", + name: "OpenAI o3-mini (Low)", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT 5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o3-pro-2025-06-10": { + id: "openai/o3-pro-2025-06-10", + name: "OpenAI o3-pro (2025-06-10)", + family: "o-pro", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5-chat-latest": { + id: "openai/gpt-5-chat-latest", + name: "GPT 5 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT 4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT 4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT 5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4o-2024-11-20": { + id: "openai/gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "VongolaChouko/Starcannon-Unleashed-12B-v1.0": { + id: "VongolaChouko/Starcannon-Unleashed-12B-v1.0", + name: "Mistral Nemo Starcannon 12b v1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "amazon/nova-lite-v1": { + id: "amazon/nova-lite-v1", + name: "Amazon Nova Lite 1.0", + family: "nova-lite", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0595, output: 0.238 }, + limit: { context: 300000, input: 300000, output: 5120 }, + }, + "amazon/nova-pro-v1": { + id: "amazon/nova-pro-v1", + name: "Amazon Nova Pro 1.0", + family: "nova-pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 3.1959999999999997 }, + limit: { context: 300000, input: 300000, output: 32000 }, + }, + "amazon/nova-2-lite-v1": { + id: "amazon/nova-2-lite-v1", + name: "Amazon Nova 2 Lite", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5099999999999999, output: 4.25 }, + limit: { context: 1000000, input: 1000000, output: 65535 }, + }, + "amazon/nova-micro-v1": { + id: "amazon/nova-micro-v1", + name: "Amazon Nova Micro 1.0", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0357, output: 0.1394 }, + limit: { context: 128000, input: 128000, output: 5120 }, + }, + "Sao10K/L3.3-70B-Euryale-v2.3": { + id: "Sao10K/L3.3-70B-Euryale-v2.3", + name: "Llama 3.3 70B Euryale", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 20480, input: 20480, output: 16384 }, + }, + "Sao10K/L3.1-70B-Euryale-v2.2": { + id: "Sao10K/L3.1-70B-Euryale-v2.2", + name: "Llama 3.1 70B Euryale", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.357 }, + limit: { context: 20480, input: 20480, output: 16384 }, + }, + "Sao10K/L3.1-70B-Hanami-x1": { + id: "Sao10K/L3.1-70B-Hanami-x1", + name: "Llama 3.1 70B Hanami", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Sao10K/L3-8B-Stheno-v3.2": { + id: "Sao10K/L3-8B-Stheno-v3.2", + name: "Sao10K Stheno 8b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "LatitudeGames/Wayfarer-Large-70B-Llama-3.3": { + id: "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", + name: "Llama 3.3 70B Wayfarer", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.700000007, output: 0.700000007 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "z-ai/glm-4.6:thinking": { + id: "z-ai/glm-4.6:thinking", + name: "GLM 4.6 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 200000, input: 200000, output: 65535 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-22", + last_updated: "2025-11-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.7999999999999998 }, + limit: { context: 64000, input: 64000, output: 96000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 200000, input: 200000, output: 65535 }, + }, + "z-ai/glm-4.5v:thinking": { + id: "z-ai/glm-4.5v:thinking", + name: "GLM 4.5V Thinking", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-22", + last_updated: "2025-11-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.7999999999999998 }, + limit: { context: 64000, input: 64000, output: 96000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "ERNIE 4.5 VL 28B", + family: "ernie", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13999999999999999, output: 0.5599999999999999 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "baidu/ernie-4.5-300b-a47b": { + id: "baidu/ernie-4.5-300b-a47b", + name: "ERNIE 4.5 300B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.15 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "dmind/dmind-1": { + id: "dmind/dmind-1", + name: "DMind-1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.6 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "dmind/dmind-1-mini": { + id: "dmind/dmind-1-mini", + name: "DMind-1-Mini", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.4 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "Infermatic/MN-12B-Inferor-v0.0": { + id: "Infermatic/MN-12B-Inferor-v0.0", + name: "Mistral Nemo Inferor 12B", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25499999999999995, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "meituan-longcat/LongCat-Flash-Chat-FP8": { + id: "meituan-longcat/LongCat-Flash-Chat-FP8", + name: "LongCat Flash", + family: "longcat", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-31", + last_updated: "2025-08-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "meganova-ai/manta-mini-1.0": { + id: "meganova-ai/manta-mini-1.0", + name: "Manta Mini 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.16 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "meganova-ai/manta-pro-1.0": { + id: "meganova-ai/manta-pro-1.0", + name: "Manta Pro 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.060000000000000005, output: 0.5 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "meganova-ai/manta-flash-1.0": { + id: "meganova-ai/manta-flash-1.0", + name: "Manta Flash 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.16 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, input: 204800, output: 131072 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax 01", + family: "minimax", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 1.1219999999999999 }, + limit: { context: 1000192, input: 1000192, output: 16384 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "minimax/minimax-m2-her": { + id: "minimax/minimax-m2-her", + name: "MiniMax M2-her", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-24", + last_updated: "2026-01-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.30200000000000005, output: 1.2069999999999999 }, + limit: { context: 65532, input: 65532, output: 2048 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, input: 204800, output: 131072 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 258048, input: 258048, output: 65536 }, + }, + "unsloth/gemma-3-1b-it": { + id: "unsloth/gemma-3-1b-it", + name: "Gemma 3 1B IT", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "unsloth/gemma-3-12b-it": { + id: "unsloth/gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "unsloth", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.272, output: 0.272 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "unsloth/gemma-3-4b-it": { + id: "unsloth/gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "unsloth", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "unsloth/gemma-3-27b-it": { + id: "unsloth/gemma-3-27b-it", + name: "Gemma 3 27B IT", + family: "unsloth", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2992, output: 0.2992 }, + limit: { context: 128000, input: 128000, output: 96000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "GLM Z1 9B 0414", + family: "glm-z", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 8000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "GLM 4 9B 0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 8000 }, + }, + "THUDM/GLM-Z1-Rumination-32B-0414": { + id: "THUDM/GLM-Z1-Rumination-32B-0414", + name: "GLM Z1 Rumination 32B 0414", + family: "glm-z", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 65536 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "GLM 4 32B 0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "GLM Z1 32B 0414", + family: "glm-z", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "google/gemini-flash-1.5": { + id: "google/gemini-flash-1.5", + name: "Gemini 1.5 Flash", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0748, output: 0.306 }, + limit: { context: 2000000, input: 2000000, output: 8192 }, + }, + "google/gemini-3-flash-preview-thinking": { + id: "google/gemini-3-flash-preview-thinking", + name: "Gemini 3 Flash Thinking", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 256000, input: 256000, output: 65536 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "moonshotai/kimi-k2-thinking-original": { + id: "moonshotai/kimi-k2-thinking-original", + name: "Kimi K2 Thinking Original", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "moonshotai/kimi-k2-instruct-0711": { + id: "moonshotai/kimi-k2-instruct-0711", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "moonshotai/Kimi-Dev-72B": { + id: "moonshotai/Kimi-Dev-72B", + name: "Kimi Dev 72B", + family: "kimi", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "moonshotai/kimi-k2-thinking-turbo-original": { + id: "moonshotai/kimi-k2-thinking-turbo-original", + name: "Kimi K2 Thinking Turbo Original", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, input: 256000, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 256000, input: 256000, output: 262144 }, + }, + "moonshotai/kimi-k2.5:thinking": { + id: "moonshotai/kimi-k2.5:thinking", + name: "Kimi K2.5 Thinking", + family: "kimi-thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 256000, input: 256000, output: 65536 }, + }, + "Tongyi-Zhiwen/QwenLong-L1-32B": { + id: "Tongyi-Zhiwen/QwenLong-L1-32B", + name: "QwenLong L1 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13999999999999999, output: 0.6 }, + limit: { context: 128000, input: 128000, output: 40960 }, + }, + "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16": { + id: "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", + name: "Llama 3.1 70B Celeste v0.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "aion-labs/aion-1.0": { + id: "aion-labs/aion-1.0", + name: "Aion 1.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.995, output: 7.99 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "aion-labs/aion-rp-llama-3.1-8b": { + id: "aion-labs/aion-rp-llama-3.1-8b", + name: "Llama 3.1 8b (uncensored)", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "aion-labs/aion-1.0-mini": { + id: "aion-labs/aion-1.0-mini", + name: "Aion 1.0 mini (DeepSeek)", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 1.394 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B": { + id: "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B", + name: "Tongyi DeepResearch 30B A3B", + family: "yi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.24000000000000002 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "MiniMaxAI/MiniMax-M1-80k": { + id: "MiniMaxAI/MiniMax-M1-80k", + name: "MiniMax M1 80K", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6052, output: 2.4225000000000003 }, + limit: { context: 1000000, input: 1000000, output: 131072 }, + }, + "anthropic/claude-opus-4.6:thinking:low": { + id: "anthropic/claude-opus-4.6:thinking:low", + name: "Claude 4.6 Opus Thinking Low", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude 4.6 Opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4.6:thinking": { + id: "anthropic/claude-sonnet-4.6:thinking", + name: "Claude Sonnet 4.6 Thinking", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.993999999999998 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking:max": { + id: "anthropic/claude-opus-4.6:thinking:max", + name: "Claude 4.6 Opus Thinking Max", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking:medium": { + id: "anthropic/claude-opus-4.6:thinking:medium", + name: "Claude 4.6 Opus Thinking Medium", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.993999999999998 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking": { + id: "anthropic/claude-opus-4.6:thinking", + name: "Claude 4.6 Opus Thinking", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "abacusai/Dracarys-72B-Instruct": { + id: "abacusai/Dracarys-72B-Instruct", + name: "Llama 3.1 70B Dracarys 2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0": { + id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0", + name: "EVA Llama 3.33 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2": { + id: "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", + name: "EVA-Qwen2.5-72B-v0.2", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1": { + id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1", + name: "EVA-LLaMA-3.33-70B-v0.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2": { + id: "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2", + name: "EVA-Qwen2.5-32B-v0.2", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated": { + id: "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", + name: "DeepSeek R1 Qwen Abliterated", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 1.4 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated": { + id: "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", + name: "DeepSeek R1 Llama 70B Abliterated", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "huihui-ai/Llama-3.3-70B-Instruct-abliterated": { + id: "huihui-ai/Llama-3.3-70B-Instruct-abliterated", + name: "Llama 3.3 70B Instruct abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { + id: "huihui-ai/Qwen2.5-32B-Instruct-abliterated", + name: "Qwen 2.5 32B Abliterated", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-06", + last_updated: "2025-01-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated": { + id: "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", + name: "Nemotron 3.1 70B abliterated", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "xiaomi/mimo-v2-flash-thinking-original": { + id: "xiaomi/mimo-v2-flash-thinking-original", + name: "MiMo V2 Flash (Thinking) Original", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash-thinking": { + id: "xiaomi/mimo-v2-flash-thinking", + name: "MiMo V2 Flash (Thinking)", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash-original": { + id: "xiaomi/mimo-v2-flash-original", + name: "MiMo V2 Flash Original", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "tngtech/DeepSeek-TNG-R1T2-Chimera": { + id: "tngtech/DeepSeek-TNG-R1T2-Chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "tngtech", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "tngtech/tng-r1t-chimera": { + id: "tngtech/tng-r1t-chimera", + name: "TNG R1T Chimera", + family: "tngtech", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "inflatebot/MN-12B-Mag-Mell-R1": { + id: "inflatebot/MN-12B-Mag-Mell-R1", + name: "Mag Mell R1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5": { + id: "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", + name: "Llama 3 70B abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + }, + }, + abacus: { + id: "abacus", + env: ["ABACUS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://routellm.abacus.ai/v1", + name: "Abacus", + doc: "https://abacus.ai/help/api", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 32768 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 16384 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "o3-pro": { + id: "o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 40 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 131072, output: 16384 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.3-codex-xhigh": { + id: "gpt-5.3-codex-xhigh", + name: "GPT-5.3 Codex XHigh", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 16384 }, + }, + "route-llm": { + id: "route-llm", + name: "Route LLM", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen-2.5-coder-32b": { + id: "qwen-2.5-coder-32b", + name: "Qwen 2.5 Coder 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.79, output: 0.79 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "GPT-5.1 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo Preview", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-08", + last_updated: "2025-07-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 8 }, + limit: { context: 256000, output: 8192 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 Nano", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1047576, output: 32768 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o-2024-11-20": { + id: "gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 16384 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.66 }, + limit: { context: 128000, output: 8192 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2024-11-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262144, output: 8192 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29 }, + limit: { context: 128000, output: 8192 }, + }, + "Qwen/qwen3-coder-480b-a35b-instruct": { + id: "Qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.2 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen 2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.38 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-4.6": { + id: "zai-org/glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": { + id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", + name: "Llama 3.1 405B Instruct Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.5, output: 3.5 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.59 }, + limit: { context: 1000000, output: 32768 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 7 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.44 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + "perplexity-agent": { + id: "perplexity-agent", + env: ["PERPLEXITY_API_KEY"], + npm: "@ai-sdk/openai", + api: "https://api.perplexity.ai/v1", + name: "Perplexity Agent", + doc: "https://docs.perplexity.ai/docs/agent-api/models", + models: { + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2.5, cache_read: 0.0625 }, + limit: { context: 128000, output: 8192 }, + }, + "xai/grok-4-1-fast-non-reasoning": { + id: "xai/grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2.5 }, + limit: { context: 1000000, output: 32000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 1.25, + output: 10, + cache_read: 0.125, + context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 128000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + "siliconflow-cn": { + id: "siliconflow-cn", + env: ["SILICONFLOW_CN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.siliconflow.cn/v1", + name: "SiliconFlow (China)", + doc: "https://cloud.siliconflow.com/models", + models: { + "Kwaipilot/KAT-Dev": { + id: "Kwaipilot/KAT-Dev", + name: "Kwaipilot/KAT-Dev", + family: "kat-coder", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-27", + last_updated: "2026-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 128000 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen/Qwen3.5-397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.74 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-35B-A3B": { + id: "Qwen/Qwen3.5-35B-A3B", + name: "Qwen/Qwen3.5-35B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.23, output: 1.86 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-122B-A10B": { + id: "Qwen/Qwen3.5-122B-A10B", + name: "Qwen/Qwen3.5-122B-A10B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 2.32 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-9B": { + id: "Qwen/Qwen3.5-9B", + name: "Qwen/Qwen3.5-9B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.74 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-27B": { + id: "Qwen/Qwen3.5-27B", + name: "Qwen/Qwen3.5-27B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.09 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-4B": { + id: "Qwen/Qwen3.5-4B", + name: "Qwen/Qwen3.5-4B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen/Qwen2.5-72B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Instruct": { + id: "Qwen/Qwen3-VL-8B-Instruct", + name: "Qwen/Qwen3-VL-8B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.68 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Instruct": { + id: "Qwen/Qwen3-VL-32B-Instruct", + name: "Qwen/Qwen3-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Thinking": { + id: "Qwen/Qwen3-VL-30B-A3B-Thinking", + name: "Qwen/Qwen3-VL-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-14B-Instruct": { + id: "Qwen/Qwen2.5-14B-Instruct", + name: "Qwen/Qwen2.5-14B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen/Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen/Qwen2.5-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Thinking": { + id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen/Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-32B-Instruct": { + id: "Qwen/Qwen2.5-32B-Instruct", + name: "Qwen/Qwen2.5-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-72B-Instruct-128K": { + id: "Qwen/Qwen2.5-72B-Instruct-128K", + name: "Qwen/Qwen2.5-72B-Instruct-128K", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen/Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen/Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen/Qwen3-235B-A22B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen/Qwen3-30B-A3B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-8B": { + id: "Qwen/Qwen3-8B", + name: "Qwen/Qwen3-8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Thinking": { + id: "Qwen/Qwen3-VL-8B-Thinking", + name: "Qwen/Qwen3-VL-8B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Captioner": { + id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "Qwen/QwQ-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.58 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen/Qwen3-VL-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen/Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-7B-Instruct": { + id: "Qwen/Qwen2.5-7B-Instruct", + name: "Qwen/Qwen2.5-7B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + id: "Qwen/Qwen3-VL-235B-A22B-Thinking", + name: "Qwen/Qwen3-VL-235B-A22B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen/Qwen3-30B-A3B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 131000 }, + }, + "Qwen/Qwen3-VL-32B-Thinking": { + id: "Qwen/Qwen3-VL-32B-Thinking", + name: "Qwen/Qwen3-VL-32B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen/Qwen2.5-VL-72B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "stepfun-ai/Step-3.5-Flash": { + id: "stepfun-ai/Step-3.5-Flash", + name: "stepfun-ai/Step-3.5-Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "zai-org/GLM-4.5V": { + id: "zai-org/GLM-4.5V", + name: "zai-org/GLM-4.5V", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 66000, output: 66000 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "zai-org/GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.9 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "zai-org/GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-07", + last_updated: "2025-12-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "zai-org/GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-flash-2.0": { + id: "inclusionAI/Ling-flash-2.0", + name: "inclusionAI/Ling-flash-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-mini-2.0": { + id: "inclusionAI/Ling-mini-2.0", + name: "inclusionAI/Ling-mini-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ring-flash-2.0": { + id: "inclusionAI/Ring-flash-2.0", + name: "inclusionAI/Ring-flash-2.0", + family: "ring", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "ascend-tribe/pangu-pro-moe": { + id: "ascend-tribe/pangu-pro-moe", + name: "ascend-tribe/pangu-pro-moe", + family: "pangu", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2026-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 128000 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "tencent/Hunyuan-MT-7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 33000, output: 33000 }, + }, + "tencent/Hunyuan-A13B-Instruct": { + id: "tencent/Hunyuan-A13B-Instruct", + name: "tencent/Hunyuan-A13B-Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Pro/zai-org/GLM-4.7": { + id: "Pro/zai-org/GLM-4.7", + name: "Pro/zai-org/GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/zai-org/GLM-5.1": { + id: "Pro/zai-org/GLM-5.1", + name: "Pro/zai-org/GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_write: 0 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/zai-org/GLM-5": { + id: "Pro/zai-org/GLM-5", + name: "Pro/zai-org/GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3": { + id: "Pro/deepseek-ai/DeepSeek-V3", + name: "Pro/deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-R1": { + id: "Pro/deepseek-ai/DeepSeek-R1", + name: "Pro/deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3.2": { + id: "Pro/deepseek-ai/DeepSeek-V3.2", + name: "Pro/deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + name: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/moonshotai/Kimi-K2-Thinking": { + id: "Pro/moonshotai/Kimi-K2-Thinking", + name: "Pro/moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/moonshotai/Kimi-K2-Instruct-0905": { + id: "Pro/moonshotai/Kimi-K2-Instruct-0905", + name: "Pro/moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/moonshotai/Kimi-K2.5": { + id: "Pro/moonshotai/Kimi-K2.5", + name: "Pro/moonshotai/Kimi-K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 3 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/MiniMaxAI/MiniMax-M2.5": { + id: "Pro/MiniMaxAI/MiniMax-M2.5", + name: "Pro/MiniMaxAI/MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.22 }, + limit: { context: 192000, output: 131000 }, + }, + "Pro/MiniMaxAI/MiniMax-M2.1": { + id: "Pro/MiniMaxAI/MiniMax-M2.1", + name: "Pro/MiniMaxAI/MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "PaddlePaddle/PaddleOCR-VL": { + id: "PaddlePaddle/PaddleOCR-VL", + name: "PaddlePaddle/PaddleOCR-VL", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 16384 }, + }, + "PaddlePaddle/PaddleOCR-VL-1.5": { + id: "PaddlePaddle/PaddleOCR-VL-1.5", + name: "PaddlePaddle/PaddleOCR-VL-1.5", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 16384 }, + }, + "deepseek-ai/DeepSeek-OCR": { + id: "deepseek-ai/DeepSeek-OCR", + name: "deepseek-ai/DeepSeek-OCR", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2025-10-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/deepseek-vl2": { + id: "deepseek-ai/deepseek-vl2", + name: "deepseek-ai/deepseek-vl2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 4000, output: 4000 }, + }, + "baidu/ERNIE-4.5-300B-A47B": { + id: "baidu/ERNIE-4.5-300B-A47B", + name: "baidu/ERNIE-4.5-300B-A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "THUDM/GLM-Z1-32B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "THUDM/GLM-4-32B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "THUDM/GLM-4-9B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "THUDM/GLM-Z1-9B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "ByteDance-Seed/Seed-OSS-36B-Instruct": { + id: "ByteDance-Seed/Seed-OSS-36B-Instruct", + name: "ByteDance-Seed/Seed-OSS-36B-Instruct", + family: "seed", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + }, + }, + submodel: { + id: "submodel", + env: ["SUBMODEL_INSTAGEN_ACCESS_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://llm.submodel.ai/v1", + name: "submodel", + doc: "https://submodel.gitbook.io", + models: { + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 131072 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "zai-org/GLM-4.5-FP8": { + id: "zai-org/GLM-4.5-FP8", + name: "GLM 4.5 FP8", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 75000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 75000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.15 }, + limit: { context: 75000, output: 163840 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + "minimax-coding-plan": { + id: "minimax-coding-plan", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimax.io/anthropic/v1", + name: "MiniMax Coding Plan (minimax.io)", + doc: "https://platform.minimax.io/docs/coding-plan/intro", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + perplexity: { + id: "perplexity", + env: ["PERPLEXITY_API_KEY"], + npm: "@ai-sdk/perplexity", + name: "Perplexity", + doc: "https://docs.perplexity.ai", + models: { + "sonar-pro": { + id: "sonar-pro", + name: "Sonar Pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Sonar Deep Research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-02-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, reasoning: 3 }, + limit: { context: 128000, output: 32768 }, + }, + sonar: { + id: "sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 4096 }, + }, + }, + }, + deepseek: { + id: "deepseek", + env: ["DEEPSEEK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.deepseek.com", + name: "DeepSeek", + doc: "https://api-docs.deepseek.com/quick_start/pricing", + models: { + "deepseek-chat": { + id: "deepseek-chat", + name: "DeepSeek Chat", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + family: "deepseek-thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, + limit: { context: 128000, output: 64000 }, + }, + }, + }, + llama: { + id: "llama", + env: ["LLAMA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.llama.com/compat/v1/", + name: "Llama", + doc: "https://llama.developer.meta.com/docs/models", + models: { + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cerebras-llama-4-maverick-17b-128e-instruct": { + id: "cerebras-llama-4-maverick-17b-128e-instruct", + name: "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-3.3-8b-instruct": { + id: "llama-3.3-8b-instruct", + name: "Llama-3.3-8B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cerebras-llama-4-scout-17b-16e-instruct": { + id: "cerebras-llama-4-scout-17b-16e-instruct", + name: "Cerebras-Llama-4-Scout-17B-16E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "groq-llama-4-maverick-17b-128e-instruct": { + id: "groq-llama-4-maverick-17b-128e-instruct", + name: "Groq-Llama-4-Maverick-17B-128E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-scout-17b-16e-instruct-fp8": { + id: "llama-4-scout-17b-16e-instruct-fp8", + name: "Llama-4-Scout-17B-16E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + }, + }, + openrouter: { + id: "openrouter", + env: ["OPENROUTER_API_KEY"], + npm: "@openrouter/ai-sdk-provider", + api: "https://openrouter.ai/api/v1", + name: "OpenRouter", + doc: "https://openrouter.ai/models", + models: { + "liquid/lfm-2.5-1.2b-instruct:free": { + id: "liquid/lfm-2.5-1.2b-instruct:free", + name: "LFM2.5-1.2B-Instruct (free)", + family: "liquid", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-20", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "liquid/lfm-2.5-1.2b-thinking:free": { + id: "liquid/lfm-2.5-1.2b-thinking:free", + name: "LFM2.5-1.2B-Thinking (free)", + family: "liquid", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-20", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek/deepseek-chat-v3.1": { + id: "deepseek/deepseek-chat-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-23", + last_updated: "2025-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek V3.2 Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.4 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.1-terminus:exacto": { + id: "deepseek/deepseek-v3.1-terminus:exacto", + name: "DeepSeek V3.1 Terminus (exacto)", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-chat-v3-0324": { + id: "deepseek/deepseek-chat-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 8192 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "openrouter/free": { + id: "openrouter/free", + name: "Free Models Router", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-01", + last_updated: "2026-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, input: 200000, output: 8000 }, + }, + "arcee-ai/trinity-mini:free": { + id: "arcee-ai/trinity-mini:free", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/trinity-large-thinking": { + id: "arcee-ai/trinity-large-thinking", + name: "Trinity Large Thinking", + family: "trinity", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.85 }, + limit: { context: 262144, output: 80000 }, + }, + "arcee-ai/trinity-large-preview:free": { + id: "arcee-ai/trinity-large-preview:free", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { + id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", + name: "Uncensored (free)", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-07-09", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "bytedance-seed/seedream-4.5": { + id: "bytedance-seed/seedream-4.5", + name: "Seedream 4.5", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-23", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 4096 }, + }, + "black-forest-labs/flux.2-max": { + id: "black-forest-labs/flux.2-max", + name: "FLUX.2 Max", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-16", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 46864, output: 46864 }, + }, + "black-forest-labs/flux.2-flex": { + id: "black-forest-labs/flux.2-flex", + name: "FLUX.2 Flex", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-25", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 67344, output: 67344 }, + }, + "black-forest-labs/flux.2-pro": { + id: "black-forest-labs/flux.2-pro", + name: "FLUX.2 Pro", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-25", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 46864, output: 46864 }, + }, + "black-forest-labs/flux.2-klein-4b": { + id: "black-forest-labs/flux.2-klein-4b", + name: "FLUX.2 Klein 4B", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-14", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 40960, output: 40960 }, + }, + "nousresearch/hermes-3-llama-3.1-405b:free": { + id: "nousresearch/hermes-3-llama-3.1-405b:free", + name: "Hermes 3 405B Instruct (free)", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-4-405b": { + id: "nousresearch/hermes-4-405b", + name: "Hermes 4 405B", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-4-70b": { + id: "nousresearch/hermes-4-70b", + name: "Hermes 4 70B", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "stepfun/step-3.5-flash:free": { + id: "stepfun/step-3.5-flash:free", + name: "Step 3.5 Flash (free)", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Step 3.5 Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 256000 }, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + id: "mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistralai/devstral-2512": { + id: "mistralai/devstral-2512", + name: "Devstral 2 2512", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Codestral 2508", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-small-2603": { + id: "mistralai/mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/devstral-small-2505": { + id: "mistralai/devstral-small-2505", + name: "Devstral Small", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.12 }, + limit: { context: 128000, output: 128000 }, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + id: "mistralai/mistral-small-3.2-24b-instruct", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 96000, output: 8192 }, + }, + "mistralai/devstral-medium-2507": { + id: "mistralai/devstral-medium-2507", + name: "Devstral Medium", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/devstral-small-2507": { + id: "mistralai/devstral-small-2507", + name: "Devstral Small 1.1", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + id: "meta-llama/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-3.2-3b-instruct:free": { + id: "meta-llama/llama-3.2-3b-instruct:free", + name: "Llama 3.2 3B Instruct (free)", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.3-70b-instruct:free": { + id: "meta-llama/llama-3.3-70b-instruct:free", + name: "Llama 3.3 70B Instruct (free)", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "x-ai/grok-4.20-multi-agent-beta": { + id: "x-ai/grok-4.20-multi-agent-beta", + name: "Grok 4.20 Multi - Agent Beta", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, + limit: { context: 2000000, output: 30000 }, + status: "beta", + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-3-beta": { + id: "x-ai/grok-3-beta", + name: "Grok 3 Beta", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-3-mini": { + id: "x-ai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.20-beta": { + id: "x-ai/grok-4.20-beta", + name: "Grok 4.20 Beta", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, + limit: { context: 2000000, output: 30000 }, + status: "beta", + }, + "x-ai/grok-3-mini-beta": { + id: "x-ai/grok-3-mini-beta", + name: "Grok 3 Mini Beta", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-3": { + id: "x-ai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 131072, output: 8192 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "Intellect 3", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-3-nano-30b-a3b:free": { + id: "nvidia/nemotron-3-nano-30b-a3b:free", + name: "Nemotron 3 Nano 30B A3B (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-12-14", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "nvidia/nemotron-nano-9b-v2:free": { + id: "nvidia/nemotron-nano-9b-v2:free", + name: "Nemotron Nano 9B V2 (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-09-05", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "nvidia/nemotron-3-super-120b-a12b:free": { + id: "nvidia/nemotron-3-super-120b-a12b:free", + name: "Nemotron 3 Super (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "nvidia-nemotron-nano-9b-v2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-nano-12b-v2-vl:free": { + id: "nvidia/nemotron-nano-12b-v2-vl:free", + name: "Nemotron Nano 12B 2 VL (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-10-28", + last_updated: "2026-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-04", + last_updated: "2026-03-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + "inception/mercury": { + id: "inception/mercury", + name: "Mercury", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 32000 }, + }, + "inception/mercury-coder": { + id: "inception/mercury-coder", + name: "Mercury Coder", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-oss-120b:exacto": { + id: "openai/gpt-oss-120b:exacto", + name: "GPT OSS 120B (exacto)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.24 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b:free": { + id: "openai/gpt-oss-20b:free", + name: "gpt-oss-20b (free)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 7.5e-7, output: 0.0000045, cache_read: 7.5e-8 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4 Mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2e-7, output: 0.00000125, cache_read: 2e-8 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "GPT-5 Image", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 5, output: 10, cache_read: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "openai/gpt-oss-120b:free": { + id: "openai/gpt-oss-120b:free", + name: "gpt-oss-120b (free)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.28 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm-4.5-air:free": { + id: "z-ai/glm-4.5-air:free", + name: "GLM 4.5 Air (free)", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131000 }, + }, + "z-ai/glm-5.1": { + id: "z-ai/glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-4.6:exacto": { + id: "z-ai/glm-4.6:exacto", + name: "GLM 4.6 (exacto)", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.9, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-5-turbo": { + id: "z-ai/glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.96, output: 3.2, cache_read: 0.192, cache_write: 0 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "GLM 4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7-flash": { + id: "z-ai/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 65535 }, + }, + "sourceful/riverflow-v2-standard-preview": { + id: "sourceful/riverflow-v2-standard-preview", + name: "Riverflow V2 Standard Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "sourceful/riverflow-v2-fast-preview": { + id: "sourceful/riverflow-v2-fast-preview", + name: "Riverflow V2 Fast Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "sourceful/riverflow-v2-max-preview": { + id: "sourceful/riverflow-v2-max-preview", + name: "Riverflow V2 Max Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2025-10-23", + last_updated: "2025-10-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.15, cache_read: 0.28, cache_write: 1.15 }, + limit: { context: 196600, output: 118000 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax-01", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000000, output: 1000000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5:free": { + id: "minimax/minimax-m2.5:free", + name: "MiniMax M2.5 (free)", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m1": { + id: "minimax/minimax-m1", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-coder:free": { + id: "qwen/qwen3-coder:free", + name: "Qwen3 Coder 480B A35B Instruct (free)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwen3.5-flash-02-23": { + id: "qwen/qwen3.5-flash-02-23", + name: "Qwen: Qwen3.5-Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.065, output: 0.26 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3.6-plus": { + id: "qwen/qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.325, output: 1.95 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen3-coder:exacto": { + id: "qwen/qwen3-coder:exacto", + name: "Qwen3 Coder (exacto)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 1.53 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + id: "qwen/qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.078, output: 0.312 }, + limit: { context: 262144, output: 81920 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + id: "qwen/qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen/qwen3-4b:free": { + id: "qwen/qwen3-4b:free", + name: "Qwen3 4B (free)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-30", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3-next-80b-a3b-instruct:free": { + id: "qwen/qwen3-next-80b-a3b-instruct:free", + name: "Qwen3 Next 80B A3B Instruct (free)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-coder-flash": { + id: "qwen/qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 128000, output: 66536 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen-2.5-coder-32b-instruct": { + id: "qwen/qwen-2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 65536 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwen3.5-plus-02-15": { + id: "qwen/qwen3.5-plus-02-15", + name: "Qwen3.5 Plus 2026-02-15", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-07-25": { + id: "qwen/qwen3-235b-a22b-07-25", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.85 }, + limit: { context: 262144, output: 131072 }, + }, + "google/gemini-2.5-pro-preview-05-06": { + id: "google/gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview-customtools": { + id: "google/gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-4b-it:free": { + id: "google/gemma-3-4b-it:free", + name: "Gemma 3 4B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-001": { + id: "google/gemini-2.0-flash-001", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Gemma 3n 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.25, + output: 1.5, + reasoning: 1.5, + cache_read: 0.025, + cache_write: 0.083, + input_audio: 0.5, + output_audio: 0.5, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3n-e4b-it:free": { + id: "google/gemma-3n-e4b-it:free", + name: "Gemma 3n 4B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1050000, output: 66000 }, + }, + "google/gemma-3n-e2b-it:free": { + id: "google/gemma-3n-e2b-it:free", + name: "Gemma 3n 2B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-9b-it": { + id: "google/gemma-2-9b-it", + name: "Gemma 2 9B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-28", + last_updated: "2024-06-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 8192, output: 8192 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma 4 31B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.4 }, + limit: { context: 262144, output: 262144 }, + }, + "google/gemini-2.5-pro-preview-06-05": { + id: "google/gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Gemma 3 12B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemma-3-27b-it:free": { + id: "google/gemma-3-27b-it:free", + name: "Gemma 3 27B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-17", + last_updated: "2025-07-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-4-31b-it:free": { + id: "google/gemma-4-31b-it:free", + name: "Gemma 4 31B (free)", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "google/gemma-3-12b-it:free": { + id: "google/gemma-3-12b-it:free", + name: "Gemma 3 12B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "google/gemma-3-4b-it": { + id: "google/gemma-3-4b-it", + name: "Gemma 3 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01703, output: 0.06815 }, + limit: { context: 96000, output: 96000 }, + }, + "google/gemini-2.5-flash-preview-09-2025": { + id: "google/gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.031 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 96000, output: 96000 }, + }, + "google/gemma-4-26b-a4b-it": { + id: "google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 262144, output: 262144 }, + }, + "google/gemma-4-26b-a4b-it:free": { + id: "google/gemma-4-26b-a4b-it:free", + name: "Gemma 4 26B A4B (free)", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/kimi-k2-0905:exacto": { + id: "moonshotai/kimi-k2-0905:exacto", + name: "Kimi K2 Instruct 0905 (exacto)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/kimi-k2:free": { + id: "moonshotai/kimi-k2:free", + name: "Kimi K2 (free)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32800, output: 32800 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 128000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "xiaomi/mimo-v2-omni": { + id: "xiaomi/mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 262144, output: 65536 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-14", + last_updated: "2025-12-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 262144, output: 65536 }, + }, + }, + }, + "fireworks-ai": { + id: "fireworks-ai", + env: ["FIREWORKS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.fireworks.ai/inference/v1/", + name: "Fireworks AI", + doc: "https://fireworks.ai/docs/", + models: { + "accounts/fireworks/models/glm-5p1": { + id: "accounts/fireworks/models/glm-5p1", + name: "GLM 5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 202800, output: 131072 }, + }, + "accounts/fireworks/models/deepseek-v3p2": { + id: "accounts/fireworks/models/deepseek-v3p2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.28 }, + limit: { context: 160000, output: 160000 }, + }, + "accounts/fireworks/models/minimax-m2p5": { + id: "accounts/fireworks/models/minimax-m2p5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 196608, output: 196608 }, + }, + "accounts/fireworks/models/glm-4p5-air": { + id: "accounts/fireworks/models/glm-4p5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 131072, output: 131072 }, + }, + "accounts/fireworks/models/glm-5": { + id: "accounts/fireworks/models/glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.5 }, + limit: { context: 202752, output: 131072 }, + }, + "accounts/fireworks/models/deepseek-v3p1": { + id: "accounts/fireworks/models/deepseek-v3p1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 163840, output: 163840 }, + }, + "accounts/fireworks/models/kimi-k2-instruct": { + id: "accounts/fireworks/models/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 128000, output: 16384 }, + }, + "accounts/fireworks/models/qwen3p6-plus": { + id: "accounts/fireworks/models/qwen3p6-plus", + name: "Qwen 3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-04", + last_updated: "2026-04-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.1 }, + limit: { context: 128000, output: 8192 }, + }, + "accounts/fireworks/models/minimax-m2p1": { + id: "accounts/fireworks/models/minimax-m2p1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 200000, output: 200000 }, + }, + "accounts/fireworks/models/glm-4p7": { + id: "accounts/fireworks/models/glm-4p7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.3 }, + limit: { context: 198000, output: 198000 }, + }, + "accounts/fireworks/models/glm-4p5": { + id: "accounts/fireworks/models/glm-4p5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 131072, output: 131072 }, + }, + "accounts/fireworks/models/kimi-k2p5": { + id: "accounts/fireworks/models/kimi-k2p5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/models/gpt-oss-20b": { + id: "accounts/fireworks/models/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "accounts/fireworks/models/gpt-oss-120b": { + id: "accounts/fireworks/models/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "accounts/fireworks/models/kimi-k2-thinking": { + id: "accounts/fireworks/models/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.3 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/routers/kimi-k2p5-turbo": { + id: "accounts/fireworks/routers/kimi-k2p5-turbo", + name: "Kimi K2.5 Turbo (firepass)", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 256000 }, + }, + }, + }, + "kimi-for-coding": { + id: "kimi-for-coding", + env: ["KIMI_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.kimi.com/coding/v1", + name: "Kimi For Coding", + doc: "https://www.kimi.com/coding/docs/en/third-party-agents.html", + models: { + k2p5: { + id: "k2p5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + }, + }, + moark: { + id: "moark", + env: ["MOARK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://moark.com/v1", + name: "Moark", + doc: "https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90", + models: { + "GLM-4.7": { + id: "GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.5, output: 14 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.1, output: 8.4 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "opencode-go": { + id: "opencode-go", + env: ["OPENCODE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://opencode.ai/zen/go/v1", + name: "OpenCode Go", + doc: "https://opencode.ai/docs/zen", + models: { + "minimax-m2.7": { + id: "minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 65536 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 204800, output: 131072 }, + }, + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo V2 Omni", + family: "mimo-omni", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 262144, output: 64000 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax-m2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo V2 Pro", + family: "mimo-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } }, + limit: { context: 1048576, output: 64000 }, + }, + }, + }, + "io-net": { + id: "io-net", + env: ["IOINTELLIGENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.intelligence.io.solutions/api/v1", + name: "IO.NET", + doc: "https://io.net/docs/guides/intelligence/io-intelligence", + models: { + "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar": { + id: "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", + name: "Qwen 3 Coder 480B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.95, cache_read: 0.11, cache_write: 0.44 }, + limit: { context: 106000, output: 4096 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen 3 Next 80B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-10", + last_updated: "2025-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.8, cache_read: 0.05, cache_write: 0.2 }, + limit: { context: 262144, output: 4096 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen 3 235B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6, cache_read: 0.055, cache_write: 0.22 }, + limit: { context: 262144, output: 4096 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen 2.5 VL 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, + limit: { context: 32000, output: 4096 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-15", + last_updated: "2024-11-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.75, cache_read: 0.2, cache_write: 0.8 }, + limit: { context: 200000, output: 4096 }, + }, + "mistralai/Magistral-Small-2506": { + id: "mistralai/Magistral-Small-2506", + name: "Magistral Small 2506", + family: "magistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Mistral-Large-Instruct-2411": { + id: "mistralai/Mistral-Large-Instruct-2411", + name: "Mistral Large Instruct 2411", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 1, cache_write: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04, cache_read: 0.01, cache_write: 0.04 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Devstral-Small-2505": { + id: "mistralai/Devstral-Small-2505", + name: "Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.38, cache_read: 0.065, cache_write: 0.26 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B 128E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6, cache_read: 0.075, cache_write: 0.3 }, + limit: { context: 430000, output: 4096 }, + }, + "meta-llama/Llama-3.2-90B-Vision-Instruct": { + id: "meta-llama/Llama-3.2-90B-Vision-Instruct", + name: "Llama 3.2 90B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.4, cache_read: 0.175, cache_write: 0.7 }, + limit: { context: 16000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 8.75, cache_read: 1, cache_write: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT-OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14, cache_read: 0.015, cache_write: 0.06 }, + limit: { context: 64000, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.4, cache_read: 0.02, cache_write: 0.08 }, + limit: { context: 131072, output: 4096 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.25, cache_read: 0.275, cache_write: 1.1 }, + limit: { context: 32768, output: 4096 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-09-05", + last_updated: "2024-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39, output: 1.9, cache_read: 0.195, cache_write: 0.78 }, + limit: { context: 32768, output: 4096 }, + }, + }, + }, + "alibaba-cn": { + id: "alibaba-cn", + env: ["DASHSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://dashscope.aliyuncs.com/compatible-mode/v1", + name: "Alibaba (China)", + doc: "https://www.alibabacloud.com/help/en/model-studio/models", + models: { + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen-plus-character": { + id: "qwen-plus-character", + name: "Qwen Plus Character", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287 }, + limit: { context: 32768, output: 4096 }, + }, + "qwen2-5-math-7b-instruct": { + id: "qwen2-5-math-7b-instruct", + name: "Qwen2.5-Math 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.287 }, + limit: { context: 4096, output: 3072 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Moonshot Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: false, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.411 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen-doc-turbo": { + id: "qwen-doc-turbo", + name: "Qwen Doc Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.087, output: 0.144 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-ocr": { + id: "qwen-vl-ocr", + name: "Qwen-VL OCR", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-28", + last_updated: "2025-04-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.717, output: 0.717 }, + limit: { context: 34096, output: 4096 }, + }, + "qwen-omni-turbo-realtime": { + id: "qwen-omni-turbo-realtime", + name: "Qwen-Omni Turbo Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen3-8b": { + id: "qwen3-8b", + name: "Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.287, reasoning: 0.717 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 2.58, reasoning: 2.58 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-math-turbo": { + id: "qwen-math-turbo", + name: "Qwen Math Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 4096, output: 3072 }, + }, + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.574 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen-VL Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-08-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287 }, + limit: { context: 131072, output: 8192 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.15 }, + limit: { context: 202752, output: 16384 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, + limit: { context: 131072, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.345, output: 1.377 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287, reasoning: 1.147 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen-Omni Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-19", + last_updated: "2025-03-26", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.022, output: 0.216 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-vl-7b-instruct": { + id: "qwen2-5-vl-7b-instruct", + name: "Qwen2.5-VL 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.717 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen3.5-flash": { + id: "qwen3.5-flash", + name: "Qwen3.5 Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-23", + last_updated: "2026-02-23", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.172, output: 1.72, reasoning: 1.72 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.861, output: 3.441 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-omni-flash": { + id: "qwen3-omni-flash", + name: "Qwen3-Omni Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 65536, output: 16384 }, + }, + "deepseek-v3-1": { + id: "deepseek-v3-1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 131072, output: 65536 }, + }, + "qwen2-5-72b-instruct": { + id: "qwen2-5-72b-instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3-VL 235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.286705, output: 1.14682, reasoning: 2.867051 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-math-plus": { + id: "qwen-math-plus", + name: "Qwen Math Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-08-16", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 4096, output: 3072 }, + }, + "qwen2-5-coder-32b-instruct": { + id: "qwen2-5-coder-32b-instruct", + name: "Qwen2.5-Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-asr-flash": { + id: "qwen3-asr-flash", + name: "Qwen3-ASR Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.032, output: 0.032 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen-deep-research": { + id: "qwen-deep-research", + name: "Qwen Deep Research", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.742, output: 23.367 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next 80B-A3B (Thinking)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 1.434 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-mt-plus": { + id: "qwen-mt-plus", + name: "Qwen-MT Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.259, output: 0.775 }, + limit: { context: 16384, output: 8192 }, + }, + "deepseek-r1-distill-qwen-32b": { + id: "deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen-VL Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.574 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.144, output: 0.574 }, + limit: { context: 1000000, output: 65536 }, + }, + "deepseek-r1-distill-qwen-7b": { + id: "deepseek-r1-distill-qwen-7b", + name: "DeepSeek R1 Distill Qwen 7B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.072, output: 0.144 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen2-5-7b-instruct": { + id: "qwen2-5-7b-instruct", + name: "Qwen2.5 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.144 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-14b-instruct": { + id: "qwen2-5-14b-instruct", + name: "Qwen2.5 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.431 }, + limit: { context: 131072, output: 8192 }, + }, + "tongyi-intent-detect-v3": { + id: "tongyi-intent-detect-v3", + name: "Tongyi Intent Detect V3", + family: "yi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.058, output: 0.144 }, + limit: { context: 8192, output: 1024 }, + }, + "qwq-32b": { + id: "qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "moonshot-kimi-k2-instruct": { + id: "moonshot-kimi-k2-instruct", + name: "Moonshot Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-32b-instruct": { + id: "qwen2-5-32b-instruct", + name: "Qwen2.5 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next 80B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.574 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-omni-flash-realtime": { + id: "qwen3-omni-flash-realtime", + name: "Qwen3-Omni Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen3-vl-30b-a3b": { + id: "qwen3-vl-30b-a3b", + name: "Qwen3-VL 30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.108, output: 0.431, reasoning: 1.076 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.143353, output: 1.433525, reasoning: 4.300576 }, + limit: { context: 262144, output: 32768 }, + }, + "deepseek-v3-2-exp": { + id: "deepseek-v3-2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.431 }, + limit: { context: 131072, output: 65536 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3-Coder 480B-A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.861, output: 3.441 }, + limit: { context: 262144, output: 65536 }, + }, + "deepseek-r1-distill-qwen-1-5b": { + id: "deepseek-r1-distill-qwen-1-5b", + name: "DeepSeek R1 Distill Qwen 1.5B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.216, output: 0.861 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen2-5-coder-7b-instruct": { + id: "qwen2-5-coder-7b-instruct", + name: "Qwen2.5-Coder 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.287 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11-01", + last_updated: "2025-07-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.044, output: 0.087, reasoning: 0.431 }, + limit: { context: 1000000, output: 16384 }, + }, + "qwen-mt-turbo": { + id: "qwen-mt-turbo", + name: "Qwen-MT Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.101, output: 0.28 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen2-5-math-72b-instruct": { + id: "qwen2-5-math-72b-instruct", + name: "Qwen2.5-Math 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 4096, output: 3072 }, + }, + "qwen2-5-omni-7b": { + id: "qwen2-5-omni-7b", + name: "Qwen2.5-Omni 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.087, output: 0.345, input_audio: 5.448 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.573, output: 3.44, reasoning: 3.44 }, + limit: { context: 1000000, output: 65536 }, + }, + "deepseek-r1-distill-qwen-14b": { + id: "deepseek-r1-distill-qwen-14b", + name: "DeepSeek R1 Distill Qwen 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.144, output: 0.431 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5-VL 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.294, output: 6.881 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 1.147 }, + limit: { context: 65536, output: 8192 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 16384 }, + }, + "qvq-max": { + id: "qvq-max", + name: "QVQ Max", + family: "qvq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.147, output: 4.588 }, + limit: { context: 131072, output: 8192 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Moonshot Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen3-14b": { + id: "qwen3-14b", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.574, reasoning: 1.434 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1-distill-llama-8b": { + id: "deepseek-r1-distill-llama-8b", + name: "DeepSeek R1 Distill Llama 8B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-long": { + id: "qwen-long", + name: "Qwen Long", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.072, output: 0.287 }, + limit: { context: 10000000, output: 8192 }, + }, + "kimi/kimi-k2.5": { + id: "kimi/kimi-k2.5", + name: "kimi/kimi-k2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMax/MiniMax-M2.7": { + id: "MiniMax/MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "siliconflow/deepseek-v3-0324": { + id: "siliconflow/deepseek-v3-0324", + name: "siliconflow/deepseek-v3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 163840, output: 163840 }, + }, + "siliconflow/deepseek-v3.2": { + id: "siliconflow/deepseek-v3.2", + name: "siliconflow/deepseek-v3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 163840, output: 65536 }, + }, + "siliconflow/deepseek-r1-0528": { + id: "siliconflow/deepseek-r1-0528", + name: "siliconflow/deepseek-r1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 163840, output: 32768 }, + }, + "siliconflow/deepseek-v3.1-terminus": { + id: "siliconflow/deepseek-v3.1-terminus", + name: "siliconflow/deepseek-v3.1-terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 163840, output: 65536 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1048576, output: 65536 }, + }, + }, + }, + "minimax-cn-coding-plan": { + id: "minimax-cn-coding-plan", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimaxi.com/anthropic/v1", + name: "MiniMax Coding Plan (minimaxi.com)", + doc: "https://platform.minimaxi.com/docs/coding-plan/intro", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + jiekou: { + id: "jiekou", + env: ["JIEKOU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.jiekou.ai/openai", + name: "Jiekou.AI", + doc: "https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "gpt-5.1-codex-max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "grok-4-1-fast-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "claude-opus-4-5-20251101", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.5, output: 22.5 }, + limit: { context: 200000, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "gemini-2.5-flash-lite-preview-09-2025", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "gpt-5.2-pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 18.9, output: 151.2 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.225, output: 1.8 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "gpt-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045, output: 0.36 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "gemini-3-pro-preview", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 10.8 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "gemini-2.5-flash-preview-05-20", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.135, output: 3.15 }, + limit: { context: 1048576, output: 200000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "claude-sonnet-4-5-20250929", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 1048576, output: 65535 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "grok-4-1-fast-non-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "gpt-5.2", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.575, output: 12.6 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "gemini-2.5-pro-preview-06-05", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 1048576, output: 200000 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "gemini-2.5-flash-lite-preview-06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "video", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "gpt-5.2-codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 2.25 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "gpt-5.1-codex-mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.225, output: 1.8 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "grok-code-fast-1", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 1.35 }, + limit: { context: 256000, output: 256000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "gpt-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "grok-4-fast-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 131072, output: 131072 }, + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "grok-4-0709", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 256000, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "gpt-5-codex", + family: "gpt-codex", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "claude-opus-4-1-20250805", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 67.5 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 4.5 }, + limit: { context: 20000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "claude-sonnet-4-20250514", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "claude-opus-4-6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + o3: { + id: "o3", + name: "o3", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "gpt-5-pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 108 }, + limit: { context: 400000, output: 272000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "gemini-2.5-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "gpt-5-chat-latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "claude-opus-4-20250514", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 67.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "gpt-5.1-codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "grok-4-fast-non-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.14 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 163840, output: 32768 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5v": { + id: "zai-org/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 65536, output: 16384 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 128000 }, + }, + "minimaxai/minimax-m1-80k": { + id: "minimaxai/minimax-m1-80k", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "xiaomimimo/mimo-v2-flash": { + id: "xiaomimimo/mimo-v2-flash", + name: "XiaomiMiMo/MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "ERNIE 4.5 VL 424B A47B", + family: "ernie", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-300b-a47b-paddle": { + id: "baidu/ernie-4.5-300b-a47b-paddle", + name: "ERNIE 4.5 300B A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3-235b-a22b-instruct-2507": { + id: "qwen/qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.8 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen/qwen3-32b-fp8": { + id: "qwen/qwen3-32b-fp8", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22b Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-fp8": { + id: "qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "qwen/qwen3-coder-next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.2 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-fp8": { + id: "qwen/qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + bailing: { + id: "bailing", + env: ["BAILING_API_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.tbox.cn/api/llm/v1/chat/completions", + name: "Bailing", + doc: "https://alipaytbox.yuque.com/sxs0ba/ling/intro", + models: { + "Ring-1T": { + id: "Ring-1T", + name: "Ring-1T", + family: "ring", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.29 }, + limit: { context: 128000, output: 32000 }, + }, + "Ling-1T": { + id: "Ling-1T", + name: "Ling-1T", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.29 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + iflowcn: { + id: "iflowcn", + env: ["IFLOW_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://apis.iflow.cn/v1", + name: "iFlow", + doc: "https://platform.iflow.cn/en/docs", + models: { + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3-Coder-Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3-Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-235b-a22b-instruct": { + id: "qwen3-235b-a22b-instruct", + name: "Qwen3-235B-A22B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3-235B-A22B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "kimi-k2-0905": { + id: "kimi-k2-0905", + name: "Kimi-K2-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL-Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2-Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 64000 }, + }, + "qwen3-235b": { + id: "qwen3-235b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi-K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 64000 }, + }, + "qwen3-max-preview": { + id: "qwen3-max-preview", + name: "Qwen3-Max-Preview", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + v0: { + id: "v0", + env: ["V0_API_KEY"], + npm: "@ai-sdk/vercel", + name: "v0", + doc: "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", + models: { + "v0-1.5-lg": { + id: "v0-1.5-lg", + name: "v0-1.5-lg", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 512000, output: 32000 }, + }, + "v0-1.0-md": { + id: "v0-1.0-md", + name: "v0-1.0-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "v0-1.5-md": { + id: "v0-1.5-md", + name: "v0-1.5-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + huggingface: { + id: "huggingface", + env: ["HF_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://router.huggingface.co/v1", + name: "Hugging Face", + doc: "https://huggingface.co/docs/inference-providers", + models: { + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-01", + last_updated: "2026-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 32768 }, + }, + "Qwen/Qwen3-Coder-Next": { + id: "Qwen/Qwen3-Coder-Next", + name: "Qwen3-Coder-Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen 3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 4096 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Embedding-4B": { + id: "Qwen/Qwen3-Embedding-4B", + name: "Qwen 3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 2048 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 262144, output: 66536 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131072 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 5 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.4 }, + limit: { context: 163840, output: 65536 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi-K2-Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + zenmux: { + id: "zenmux", + env: ["ZENMUX_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://zenmux.ai/api/v1", + name: "ZenMux", + doc: "https://docs.zenmux.ai", + models: { + "deepseek/deepseek-chat": { + id: "deepseek/deepseek-chat", + name: "DeepSeek-V3.2 (Non-thinking Mode)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek-V3.2-Exp", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 0.33 }, + limit: { context: 163000, output: 64000 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-05", + last_updated: "2025-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.43 }, + limit: { context: 128000, output: 64000 }, + }, + "inclusionai/ring-1t": { + id: "inclusionai/ring-1t", + name: "Ring-1T", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-12", + last_updated: "2025-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, + limit: { context: 128000, output: 64000 }, + }, + "inclusionai/ling-1t": { + id: "inclusionai/ling-1t", + name: "Ling-1T", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-09", + last_updated: "2025-10-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, + limit: { context: 128000, output: 64000 }, + }, + "stepfun/step-3.5-flash-free": { + id: "stepfun/step-3.5-flash-free", + name: "Step 3.5 Flash (Free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3": { + id: "stepfun/step-3", + name: "Step-3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 65536, output: 64000 }, + }, + "kuaishou/kat-coder-pro-v2": { + id: "kuaishou/kat-coder-pro-v2", + name: "KAT-Coder-Pro-V2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-30", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 80000 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4.1-fast-non-reasoning": { + id: "x-ai/grok-4.1-fast-non-reasoning", + name: "Grok 4.1 Fast Non Reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4.2-fast": { + id: "x-ai/grok-4.2-fast", + name: "Grok 4.2 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 9 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.2-fast-non-reasoning": { + id: "x-ai/grok-4.2-fast-non-reasoning", + name: "Grok 4.2 Fast Non Reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 9 }, + limit: { context: 2000000, output: 30000 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "GPT-5.3 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16380 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01-01", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.17 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["pdf", "image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 128000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4 Nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01-01", + release_date: "2026-01-15", + last_updated: "2026-01-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.17 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 45, output: 225 }, + limit: { context: 1050000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.75, output: 18.75 }, + limit: { context: 1050000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "z-ai/glm-4.7-flash-free": { + id: "z-ai/glm-4.7-flash-free", + name: "GLM 4.7 Flash (Free)", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5v-turbo": { + id: "z-ai/glm-5v-turbo", + name: "GLM 5V Turbo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.726, output: 3.1946, cache_read: 0.1743 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.14, cache_read: 0.06 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 2.6, cache_read: 0.14 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7-flashx": { + id: "z-ai/glm-4.7-flashx", + name: "GLM 4.7 FlashX", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.42, cache_read: 0.01 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.6v-flash-free": { + id: "z-ai/glm-4.6v-flash-free", + name: "GLM 4.6V Flash (Free)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5.1": { + id: "z-ai/glm-5.1", + name: "GLM-5.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8781, output: 3.5126, cache_read: 0.1903 }, + limit: { context: 200000, output: 131072 }, + }, + "z-ai/glm-4.6v-flash": { + id: "z-ai/glm-4.6v-flash", + name: "GLM 4.6V FlashX", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.21, cache_read: 0.0043 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, + limit: { context: 128000, output: 64000 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.56, cache_read: 0.02 }, + limit: { context: 128000, output: 64000 }, + }, + "z-ai/glm-5-turbo": { + id: "z-ai/glm-5-turbo", + name: "GLM 5 Turbo", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.88, output: 3.48 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.6v": { + id: "z-ai/glm-4.6v", + name: "GLM 4.6V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.42, cache_read: 0.03 }, + limit: { context: 200000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-code": { + id: "volcengine/doubao-seed-2.0-code", + name: "Doubao Seed 2.0 Code", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 4.48 }, + limit: { context: 256000, output: 32000 }, + }, + "volcengine/doubao-seed-code": { + id: "volcengine/doubao-seed-code", + name: "Doubao-Seed-Code", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-11", + last_updated: "2025-11-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.12, cache_read: 0.03 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-mini": { + id: "volcengine/doubao-seed-2.0-mini", + name: "Doubao-Seed-2.0-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.28, cache_read: 0.01, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-lite": { + id: "volcengine/doubao-seed-2.0-lite", + name: "Doubao-Seed-2.0-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.51, cache_read: 0.02, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-1.8": { + id: "volcengine/doubao-seed-1.8", + name: "Doubao-Seed-1.8", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.28, cache_read: 0.02, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-pro": { + id: "volcengine/doubao-seed-2.0-pro", + name: "Doubao-Seed-2.0-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 2.24, cache_read: 0.09, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "baidu/ernie-5.0-thinking-preview": { + id: "baidu/ernie-5.0-thinking-preview", + name: "ERNIE 5.0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.84, output: 3.37 }, + limit: { context: 128000, output: 64000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3055, output: 1.2219 }, + limit: { context: 204800, output: 131070 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.7-highspeed": { + id: "minimax/minimax-m2.7-highspeed", + name: "MiniMax M2.7 highspeed", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.611, output: 2.4439 }, + limit: { context: 204800, output: 131070 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.5-lightning": { + id: "minimax/minimax-m2.5-lightning", + name: "MiniMax M2.5 highspeed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4.8, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "qwen/qwen3-coder-plus": { + id: "qwen/qwen3-coder-plus", + name: "Qwen3-Coder-Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen/qwen3.5-flash": { + id: "qwen/qwen3.5-flash", + name: "Qwen3.5 Flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1020000, output: 1020000 }, + }, + "qwen/qwen3.6-plus": { + id: "qwen/qwen3.6-plus", + name: "Qwen3.6-Plus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-30", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + cache_write: 0.625, + context_over_200k: { input: 2, output: 6, cache_read: 0.2, cache_write: 2.5 }, + }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3-Max-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen/qwen3.5-plus": { + id: "qwen/qwen3.5-plus", + name: "Qwen3.5 Plus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4.8 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 1050000, output: 65530 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-19", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "pdf", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["pdf", "image", "text", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.07, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "sapiens-ai/agnes-1.5-lite": { + id: "sapiens-ai/agnes-1.5-lite", + name: "Agnes 1.5 Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-26", + last_updated: "2026-03-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "sapiens-ai/agnes-1.5-pro": { + id: "sapiens-ai/agnes-1.5-pro", + name: "Agnes 1.5 Pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-21", + last_updated: "2026-03-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.8 }, + limit: { context: 256000, output: 256000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: false, + knowledge: "2025-01-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 3.02, cache_read: 0.1 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-thinking-turbo": { + id: "moonshotai/kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["pdf", "image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2024-11-04", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "xiaomi/mimo-v2-omni": { + id: "xiaomi/mimo-v2-omni", + name: "MiMo V2 Omni", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 265000, output: 265000 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo V2 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 4.5 }, + limit: { context: 1000000, output: 256000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 262000, output: 64000 }, + }, + }, + }, + upstage: { + id: "upstage", + env: ["UPSTAGE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.upstage.ai/v1/solar", + name: "Upstage", + doc: "https://developers.upstage.ai/docs/apis/chat", + models: { + "solar-pro2": { + id: "solar-pro2", + name: "solar-pro2", + family: "solar-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 65536, output: 8192 }, + }, + "solar-mini": { + id: "solar-mini", + name: "solar-mini", + family: "solar-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-06-12", + last_updated: "2025-04-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 4096 }, + }, + "solar-pro3": { + id: "solar-pro3", + name: "solar-pro3", + family: "solar-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + "novita-ai": { + id: "novita-ai", + env: ["NOVITA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.novita.ai/openai", + name: "NovitaAI", + doc: "https://novita.ai/docs/guides/introduction", + models: { + "deepseek/deepseek-r1-turbo": { + id: "deepseek/deepseek-r1-turbo", + name: "DeepSeek R1 (Turbo)\t", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.12, cache_read: 0.135 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-ocr-2": { + id: "deepseek/deepseek-ocr-2", + name: "deepseek/deepseek-ocr-2", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-ocr": { + id: "deepseek/deepseek-ocr", + name: "DeepSeek-OCR", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-24", + last_updated: "2025-10-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill LLama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-prover-v2-671b": { + id: "deepseek/deepseek-prover-v2-671b", + name: "Deepseek Prover V2 671B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 160000, output: 160000 }, + }, + "deepseek/deepseek-r1-0528-qwen3-8b": { + id: "deepseek/deepseek-r1-0528-qwen3-8b", + name: "DeepSeek R1 0528 Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-05-29", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.09 }, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "Deepseek V3.2 Exp", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1, cache_read: 0.135 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "Deepseek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.269, output: 0.4, cache_read: 0.1345 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3-turbo": { + id: "deepseek/deepseek-v3-turbo", + name: "DeepSeek V3 (Turbo)\t", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.3 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5, cache_read: 0.35 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "Deepseek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1, cache_read: 0.135 }, + limit: { context: 131072, output: 32768 }, + }, + "paddlepaddle/paddleocr-vl": { + id: "paddlepaddle/paddleocr-vl", + name: "PaddleOCR-VL", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 16384, output: 16384 }, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + id: "nousresearch/hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131072 }, + }, + "zai-org/glm-5.1": { + id: "zai-org/glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5-air": { + id: "zai-org/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-10-13", + last_updated: "2025-10-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.85 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5v": { + id: "zai-org/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 65536, output: 16384 }, + }, + "zai-org/glm-4.6": { + id: "zai-org/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.6v": { + id: "zai-org/glm-4.6v", + name: "GLM 4.6V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9, cache_read: 0.055 }, + limit: { context: 131072, output: 32768 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/autoglm-phone-9b-multilingual": { + id: "zai-org/autoglm-phone-9b-multilingual", + name: "AutoGLM-Phone-9B-Multilingual", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-12-10", + last_updated: "2025-12-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.035, output: 0.138 }, + limit: { context: 65536, output: 65536 }, + }, + "mistralai/mistral-nemo": { + id: "mistralai/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-07-30", + last_updated: "2024-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.17 }, + limit: { context: 60288, output: 16000 }, + }, + "baichuan/baichuan-m2-32b": { + id: "baichuan/baichuan-m2-32b", + name: "baichuan-m2-32b", + family: "baichuan", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-12", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + id: "meta-llama/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-06", + last_updated: "2025-04-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.59 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-07", + last_updated: "2024-12-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.135, output: 0.4 }, + limit: { context: 131072, output: 120000 }, + }, + "meta-llama/llama-3-8b-instruct": { + id: "meta-llama/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 8192, output: 8192 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 16384, output: 16384 }, + }, + "meta-llama/llama-3-70b-instruct": { + id: "meta-llama/llama-3-70b-instruct", + name: "Llama3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "meta-llama/llama-4-maverick-17b-128e-instruct-fp8": { + id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-06", + last_updated: "2025-04-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 1048576, output: 8192 }, + }, + "gryphe/mythomax-l2-13b": { + id: "gryphe/mythomax-l2-13b", + name: "Mythomax L2 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.09 }, + limit: { context: 4096, output: 3200 }, + }, + "sao10k/l31-70b-euryale-v2.2": { + id: "sao10k/l31-70b-euryale-v2.2", + name: "L31 70B Euryale V2.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3-70b-euryale-v2.1": { + id: "sao10k/l3-70b-euryale-v2.1", + name: "L3 70B Euryale V2.1\t", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-06-18", + last_updated: "2024-06-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/L3-8B-Stheno-v3.2": { + id: "sao10k/L3-8B-Stheno-v3.2", + name: "L3 8B Stheno V3.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 8192, output: 32000 }, + }, + "sao10k/l3-8b-lunaris": { + id: "sao10k/l3-8b-lunaris", + name: "Sao10k L3 8B Lunaris\t", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2024-11-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 8192, output: 8192 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "Wizardlm 2 8x22B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-24", + last_updated: "2024-04-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 0.62 }, + limit: { context: 65535, output: 8000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "OpenAI: GPT OSS 20B", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 131072, output: 32768 }, + }, + "minimaxai/minimax-m1-80k": { + id: "minimaxai/minimax-m1-80k", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "xiaomimimo/mimo-v2-flash": { + id: "xiaomimimo/mimo-v2-flash", + name: "XiaomiMiMo/MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.3 }, + limit: { context: 262144, output: 32000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b-thinking": { + id: "baidu/ernie-4.5-vl-28b-a3b-thinking", + name: "ERNIE-4.5-VL-28B-A3B-Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 0.39 }, + limit: { context: 131072, output: 65536 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "ERNIE 4.5 VL 424B A47B", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-21B-a3b": { + id: "baidu/ernie-4.5-21B-a3b", + name: "ERNIE 4.5 21B A3B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 120000, output: 8000 }, + }, + "baidu/ernie-4.5-300b-a47b-paddle": { + id: "baidu/ernie-4.5-300b-a47b-paddle", + name: "ERNIE 4.5 300B A47B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "baidu/ernie-4.5-21B-a3b-thinking": { + id: "baidu/ernie-4.5-21B-a3b-thinking", + name: "ERNIE-4.5-21B-A3B-Thinking", + family: "ernie", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131072, output: 65536 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "ERNIE 4.5 VL 28B A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 5.6 }, + limit: { context: 30000, output: 8000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "MiniMax M2.5 Highspeed", + family: "minimax-m2.5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "qwen/qwen2.5-7b-instruct": { + id: "qwen/qwen2.5-7b-instruct", + name: "Qwen2.5 7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 32000, output: 32000 }, + }, + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen3.5-122B-A10B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 3.2 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen3.5-27B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.4 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-instruct-2507": { + id: "qwen/qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.58 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen/qwen3-omni-30b-a3b-instruct": { + id: "qwen/qwen3-omni-30b-a3b-instruct", + name: "Qwen3 Omni 30B A3B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "video", "audio", "image"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 64000 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + id: "qwen/qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.98, output: 3.95 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + id: "qwen/qwen3-vl-30b-a3b-thinking", + name: "qwen/qwen3-vl-30b-a3b-thinking", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-omni-30b-a3b-thinking": { + id: "qwen/qwen3-omni-30b-a3b-thinking", + name: "Qwen3 Omni 30B A3B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "audio", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen/qwen3-vl-8b-instruct": { + id: "qwen/qwen3-vl-8b-instruct", + name: "qwen/qwen3-vl-8b-instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-17", + last_updated: "2025-10-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.11, output: 8.45 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-32b-fp8": { + id: "qwen/qwen3-32b-fp8", + name: "Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-4b-fp8": { + id: "qwen/qwen3-4b-fp8", + name: "Qwen3 4B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 128000, output: 20000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22b Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-mt-plus": { + id: "qwen/qwen-mt-plus", + name: "Qwen MT Plus", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-03", + last_updated: "2025-09-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-fp8": { + id: "qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.3 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + id: "qwen/qwen3-vl-30b-a3b-instruct", + name: "qwen/qwen3-vl-30b-a3b-instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30b A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-09", + last_updated: "2025-10-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-fp8": { + id: "qwen/qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-8b-fp8": { + id: "qwen/qwen3-8b-fp8", + name: "Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.035, output: 0.138 }, + limit: { context: 128000, output: 20000 }, + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + id: "qwen/qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-2.5-72b-instruct": { + id: "qwen/qwen-2.5-72b-instruct", + name: "Qwen 2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-15", + last_updated: "2024-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 0.4 }, + limit: { context: 32000, output: 8192 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen3.5-35B-A3B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 65536 }, + }, + "kwaipilot/kat-coder-pro": { + id: "kwaipilot/kat-coder-pro", + name: "Kat Coder Pro", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-05", + last_updated: "2026-01-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 128000 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma 4 31B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.119, output: 0.2 }, + limit: { context: 98304, output: 16384 }, + }, + "google/gemma-4-26b-a4b-it": { + id: "google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "xiaomi-token-plan-cn": { + id: "xiaomi-token-plan-cn", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://token-plan-cn.xiaomimimo.com/v1", + name: "Xiaomi Token Plan (China)", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 128000 }, + }, + "mimo-v2-tts": { + id: "mimo-v2-tts", + name: "MiMo-V2-TTS", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 16000 }, + }, + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + wandb: { + id: "wandb", + env: ["WANDB_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.inference.wandb.ai/v1", + name: "Weights & Biases", + doc: "https://docs.wandb.ai/guides/integrations/inference/", + models: { + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "zai-org/GLM-5-FP8": { + id: "zai-org/GLM-5-FP8", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 200000, output: 200000 }, + }, + "meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 64000, output: 64000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 128000 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 128000 }, + }, + "meta-llama/Llama-3.1-70B-Instruct": { + id: "meta-llama/Llama-3.1-70B-Instruct", + name: "Llama 3.1 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 128000, output: 128000 }, + }, + "OpenPipe/Qwen3-14B-Instruct": { + id: "OpenPipe/Qwen3-14B-Instruct", + name: "OpenPipe Qwen3 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 32768, output: 32768 }, + }, + "microsoft/Phi-4-mini-instruct": { + id: "microsoft/Phi-4-mini-instruct", + name: "Phi-4-mini-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.35 }, + limit: { context: 128000, output: 128000 }, + }, + "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": { + id: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8", + name: "NVIDIA Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.65 }, + limit: { context: 161000, output: 161000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.85 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + }, + }, + chutes: { + id: "chutes", + env: ["CHUTES_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://llm.chutes.ai/v1", + name: "Chutes", + doc: "https://llm.chutes.ai/v1/models", + models: { + "miromind-ai/MiroThinker-v1.5-235B": { + id: "miromind-ai/MiroThinker-v1.5-235B", + name: "MiroThinker V1.5 235B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.15 }, + limit: { context: 262144, output: 8192 }, + }, + "OpenGVLab/InternVL3-78B-TEE": { + id: "OpenGVLab/InternVL3-78B-TEE", + name: "InternVL3 78B TEE", + family: "opengvlab", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-06", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.39 }, + limit: { context: 32768, output: 32768 }, + }, + "NousResearch/DeepHermes-3-Mistral-24B-Preview": { + id: "NousResearch/DeepHermes-3-Mistral-24B-Preview", + name: "DeepHermes 3 Mistral 24B Preview", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.1 }, + limit: { context: 32768, output: 32768 }, + }, + "NousResearch/Hermes-4-405B-FP8-TEE": { + id: "NousResearch/Hermes-4-405B-FP8-TEE", + name: "Hermes 4 405B FP8 TEE", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 131072, output: 65536 }, + }, + "NousResearch/Hermes-4.3-36B": { + id: "NousResearch/Hermes-4.3-36B", + name: "Hermes 4.3 36B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.39 }, + limit: { context: 32768, output: 8192 }, + }, + "NousResearch/Hermes-4-14B": { + id: "NousResearch/Hermes-4-14B", + name: "Hermes 4 14B", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.05 }, + limit: { context: 40960, output: 40960 }, + }, + "NousResearch/Hermes-4-70B": { + id: "NousResearch/Hermes-4-70B", + name: "Hermes 4 70B", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.38 }, + limit: { context: 131072, output: 131072 }, + }, + "Qwen/Qwen3-30B-A3B": { + id: "Qwen/Qwen3-30B-A3B", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.22 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-Coder-Next": { + id: "Qwen/Qwen3-Coder-Next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3-235B-A22B": { + id: "Qwen/Qwen3-235B-A22B", + name: "Qwen3 235B A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct-TEE": { + id: "Qwen/Qwen2.5-VL-72B-Instruct-TEE", + name: "Qwen2.5 VL 72B Instruct TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3Guard-Gen-0.6B": { + id: "Qwen/Qwen3Guard-Gen-0.6B", + name: "Qwen3Guard Gen 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 32768, output: 8192 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.33 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE", + name: "Qwen3 235B A22B Instruct 2507 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.55, cache_read: 0.04 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 16384, output: 16384 }, + }, + "Qwen/Qwen3.5-397B-A17B-TEE": { + id: "Qwen/Qwen3.5-397B-A17B-TEE", + name: "Qwen3.5 397B A17B TEE", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 2.34, cache_read: 0.195 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE", + name: "Qwen3 Coder 480B A35B Instruct FP8 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.95, cache_read: 0.11 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 32768, output: 32768 }, + }, + "zai-org/GLM-5.1-TEE": { + id: "zai-org/GLM-5.1-TEE", + name: "GLM 5.1 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM 4.7 Flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.35 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.5-TEE": { + id: "zai-org/GLM-4.5-TEE", + name: "GLM 4.5 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.55 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-4.6-FP8": { + id: "zai-org/GLM-4.6-FP8", + name: "GLM 4.6 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM 4.5 Air", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 131072, output: 131072 }, + }, + "zai-org/GLM-4.7-FP8": { + id: "zai-org/GLM-4.7-FP8", + name: "GLM 4.7 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-5-TEE": { + id: "zai-org/GLM-5-TEE", + name: "GLM 5 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.5-FP8": { + id: "zai-org/GLM-4.5-FP8", + name: "GLM 4.5 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-4.7-TEE": { + id: "zai-org/GLM-4.7-TEE", + name: "GLM 4.7 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "GLM 4.6V", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9, cache_read: 0.15 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-5-Turbo": { + id: "zai-org/GLM-5-Turbo", + name: "GLM 5 Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 1.96, cache_read: 0.245 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.6-TEE": { + id: "zai-org/GLM-4.6-TEE", + name: "GLM 4.6 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.7, cache_read: 0.2 }, + limit: { context: 202752, output: 65536 }, + }, + "mistralai/Devstral-2-123B-Instruct-2512-TEE": { + id: "mistralai/Devstral-2-123B-Instruct-2512-TEE", + name: "Devstral 2 123B Instruct 2512 TEE", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 262144, output: 65536 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29 }, + limit: { context: 262144, output: 32000 }, + }, + "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct 2506", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.18 }, + limit: { context: 131072, output: 131072 }, + }, + "chutesai/Mistral-Small-3.1-24B-Instruct-2503": { + id: "chutesai/Mistral-Small-3.1-24B-Instruct-2503", + name: "Mistral Small 3.1 24B Instruct 2503", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11, cache_read: 0.015 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { + id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", + name: "NVIDIA Nemotron 3 Nano 30B A3B BF16", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 262144, output: 262144 }, + }, + "deepseek-ai/DeepSeek-R1-TEE": { + id: "deepseek-ai/DeepSeek-R1-TEE", + name: "DeepSeek R1 TEE", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Llama-70B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3.1-TEE": { + id: "deepseek-ai/DeepSeek-V3.1-TEE", + name: "DeepSeek V3.1 TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3-0324-TEE": { + id: "deepseek-ai/DeepSeek-V3-0324-TEE", + name: "DeepSeek V3 0324 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.19, output: 0.87, cache_read: 0.095 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.2-Speciale-TEE": { + id: "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", + name: "DeepSeek V3.2 Speciale TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus-TEE": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus-TEE", + name: "DeepSeek V3.1 Terminus TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.23, output: 0.9 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-R1-0528-TEE": { + id: "deepseek-ai/DeepSeek-R1-0528-TEE", + name: "DeepSeek R1 0528 TEE", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.75 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.2-TEE": { + id: "deepseek-ai/DeepSeek-V3.2-TEE", + name: "DeepSeek V3.2 TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.14 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt oss 20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b-TEE": { + id: "openai/gpt-oss-120b-TEE", + name: "gpt oss 120b TEE", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.18 }, + limit: { context: 131072, output: 65536 }, + }, + "unsloth/gemma-3-12b-it": { + id: "unsloth/gemma-3-12b-it", + name: "gemma 3 12b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "unsloth/Llama-3.2-3B-Instruct": { + id: "unsloth/Llama-3.2-3B-Instruct", + name: "Llama 3.2 3B Instruct", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-02-12", + last_updated: "2025-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 16384, output: 16384 }, + }, + "unsloth/gemma-3-4b-it": { + id: "unsloth/gemma-3-4b-it", + name: "gemma 3 4b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 96000, output: 96000 }, + }, + "unsloth/Llama-3.2-1B-Instruct": { + id: "unsloth/Llama-3.2-1B-Instruct", + name: "Llama 3.2 1B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 32768, output: 8192 }, + }, + "unsloth/Mistral-Nemo-Instruct-2407": { + id: "unsloth/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04, cache_read: 0.01 }, + limit: { context: 131072, output: 131072 }, + }, + "unsloth/Mistral-Small-24B-Instruct-2501": { + id: "unsloth/Mistral-Small-24B-Instruct-2501", + name: "Mistral Small 24B Instruct 2501", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 32768, output: 32768 }, + }, + "unsloth/gemma-3-27b-it": { + id: "unsloth/gemma-3-27b-it", + name: "gemma 3 27b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15, cache_read: 0.02 }, + limit: { context: 128000, output: 65536 }, + }, + "moonshotai/Kimi-K2-Thinking-TEE": { + id: "moonshotai/Kimi-K2-Thinking-TEE", + name: "Kimi K2 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.75 }, + limit: { context: 262144, output: 65535 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.9, cache_read: 0.195 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5-TEE": { + id: "moonshotai/Kimi-K2.5-TEE", + name: "Kimi K2.5 TEE", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 65535 }, + }, + "MiniMaxAI/MiniMax-M2.1-TEE": { + id: "MiniMaxAI/MiniMax-M2.1-TEE", + name: "MiniMax M2.1 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.12 }, + limit: { context: 196608, output: 65536 }, + }, + "MiniMaxAI/MiniMax-M2.5-TEE": { + id: "MiniMaxAI/MiniMax-M2.5-TEE", + name: "MiniMax M2.5 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.1, cache_read: 0.15 }, + limit: { context: 196608, output: 65536 }, + }, + "rednote-hilab/dots.ocr": { + id: "rednote-hilab/dots.ocr", + name: "dots.ocr", + family: "rednote", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 131072, output: 131072 }, + }, + "tngtech/TNG-R1T-Chimera-Turbo": { + id: "tngtech/TNG-R1T-Chimera-Turbo", + name: "TNG R1T Chimera Turbo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.6 }, + limit: { context: 163840, output: 65536 }, + }, + "tngtech/DeepSeek-TNG-R1T2-Chimera": { + id: "tngtech/DeepSeek-TNG-R1T2-Chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "tngtech", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85 }, + limit: { context: 163840, output: 163840 }, + }, + "tngtech/DeepSeek-R1T-Chimera": { + id: "tngtech/DeepSeek-R1T-Chimera", + name: "DeepSeek R1T Chimera", + family: "tngtech", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, + }, + "tngtech/TNG-R1T-Chimera-TEE": { + id: "tngtech/TNG-R1T-Chimera-TEE", + name: "TNG R1T Chimera TEE", + family: "tngtech", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85 }, + limit: { context: 163840, output: 65536 }, + }, + }, + }, + dinference: { + id: "dinference", + env: ["DINFERENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.dinference.com/v1", + name: "DInference", + doc: "https://dinference.com", + models: { + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.65 }, + limit: { context: 200000, output: 128000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.4 }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08", + last_updated: "2025-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0675, output: 0.27 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + vivgrid: { + id: "vivgrid", + env: ["VIVGRID_API_KEY"], + npm: "@ai-sdk/openai", + api: "https://api.vivgrid.com/v1", + name: "Vivgrid", + doc: "https://docs.vivgrid.com/models", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42 }, + limit: { context: 128000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + }, + }, + deepinfra: { + id: "deepinfra", + env: ["DEEPINFRA_API_KEY"], + npm: "@ai-sdk/deepinfra", + name: "Deep Infra", + doc: "https://deepinfra.com/models", + models: { + "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", + name: "Qwen3 Coder 480B A35B Instruct Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 262144, output: 66536 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 98304 }, + status: "deprecated", + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.56, cache_read: 0.16 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 1.74, cache_read: 0.08 }, + limit: { context: 204800, output: 131072 }, + }, + "meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama 4 Scout 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 10000000, output: 16384 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.1-70B-Instruct": { + id: "meta-llama/Llama-3.1-70B-Instruct", + name: "Llama 3.1 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.1-8B-Instruct-Turbo": { + id: "meta-llama/Llama-3.1-8B-Instruct-Turbo", + name: "Llama 3.1 8B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", + name: "Llama 3.3 70B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.32 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1000000, output: 16384 }, + }, + "meta-llama/Llama-3.1-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.1-70B-Instruct-Turbo", + name: "Llama 3.1 70B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.15, cache_read: 0.35 }, + limit: { context: 163840, output: 64000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.26, output: 0.38, cache_read: 0.13 }, + limit: { context: 163840, output: 64000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 16384 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.24 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-06", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.47, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.8 }, + limit: { context: 262144, output: 32768 }, + }, + "MiniMaxAI/MiniMax-M2": { + id: "MiniMaxAI/MiniMax-M2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.254, output: 1.02 }, + limit: { context: 262144, output: 32768 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-06", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.95, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + "anthropic/claude-3-7-sonnet-latest": { + id: "anthropic/claude-3-7-sonnet-latest", + name: "Claude Sonnet 3.7 (Latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.3, output: 16.5, cache_read: 0.33 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-4-opus": { + id: "anthropic/claude-4-opus", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-06-12", + last_updated: "2025-06-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 82.5 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + "qiniu-ai": { + id: "qiniu-ai", + env: ["QINIU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.qnaigc.com/v1", + name: "Qiniu", + doc: "https://developer.qiniu.com/aitokenapi", + models: { + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen 3 235B A22B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "doubao-seed-1.6-flash": { + id: "doubao-seed-1.6-flash", + name: "Doubao-Seed 1.6 Flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235b A22B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 64000 }, + }, + "doubao-seed-2.0-code": { + id: "doubao-seed-2.0-code", + name: "Doubao Seed 2.0 Code", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 128000 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "doubao-1.5-thinking-pro": { + id: "doubao-1.5-thinking-pro", + name: "Doubao 1.5 Thinking Pro", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "claude-3.7-sonnet": { + id: "claude-3.7-sonnet", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-22", + last_updated: "2026-02-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 64000 }, + }, + "qwen-vl-max-2025-01-25": { + id: "qwen-vl-max-2025-01-25", + name: "Qwen VL-MAX-2025-01-25", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 40000, output: 4096 }, + }, + "doubao-1.5-pro-32k": { + id: "doubao-1.5-pro-32k", + name: "Doubao 1.5 Pro 32k", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 12000 }, + }, + "qwen2.5-vl-72b-instruct": { + id: "qwen2.5-vl-72b-instruct", + name: "Qwen 2.5 VL 72B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 8192 }, + }, + "qwen3-vl-30b-a3b-thinking": { + id: "qwen3-vl-30b-a3b-thinking", + name: "Qwen3-Vl 30b A3b Thinking", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-09", + last_updated: "2026-02-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "gemini-3.0-pro-image-preview": { + id: "gemini-3.0-pro-image-preview", + name: "Gemini 3.0 Pro Image Preview", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 32768, output: 8192 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 65536 }, + }, + "claude-4.5-opus": { + id: "claude-4.5-opus", + name: "Claude 4.5 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "claude-4.0-opus": { + id: "claude-4.0-opus", + name: "Claude 4.0 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 32000 }, + }, + "claude-4.5-haiku": { + id: "claude-4.5-haiku", + name: "Claude 4.5 Haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 65536 }, + }, + "gemini-3.0-flash-preview": { + id: "gemini-3.0-flash-preview", + name: "Gemini 3.0 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 32768, output: 8192 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 98304 }, + }, + "claude-3.5-sonnet": { + id: "claude-3.5-sonnet", + name: "Claude 3.5 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-09", + last_updated: "2025-09-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 8200 }, + }, + "claude-4.0-sonnet": { + id: "claude-4.0-sonnet", + name: "Claude 4.0 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30b A3b Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "doubao-seed-1.6-thinking": { + id: "doubao-seed-1.6-thinking", + name: "Doubao-Seed 1.6 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 64000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 4096 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-30b-a3b-thinking-2507": { + id: "qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30b A3b Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 126000, output: 32000 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131000, output: 4096 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 40000, output: 4096 }, + }, + "claude-4.1-opus": { + id: "claude-4.1-opus", + name: "Claude 4.1 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 32000 }, + }, + "doubao-seed-2.0-mini": { + id: "doubao-seed-2.0-mini", + name: "Doubao Seed 2.0 Mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 32768 }, + }, + "doubao-seed-1.6": { + id: "doubao-seed-1.6", + name: "Doubao-Seed 1.6", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen2.5-vl-7b-instruct": { + id: "qwen2.5-vl-7b-instruct", + name: "Qwen 2.5 VL 7B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "kling-v2-6": { + id: "kling-v2-6", + name: "Kling-V2 6", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-13", + last_updated: "2026-01-13", + modalities: { input: ["text", "image", "video"], output: ["video"] }, + open_weights: false, + limit: { context: 99999999, output: 99999999 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax M1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 80000 }, + }, + "gemini-3.0-pro-preview": { + id: "gemini-3.0-pro-preview", + name: "Gemini 3.0 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 64000 }, + }, + "doubao-seed-2.0-lite": { + id: "doubao-seed-2.0-lite", + name: "Doubao Seed 2.0 Lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-14", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262000, output: 4096 }, + }, + "claude-3.5-haiku": { + id: "claude-3.5-haiku", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 8192 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen-Turbo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 4096 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 128000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 64000 }, + }, + "mimo-v2-flash": { + id: "mimo-v2-flash", + name: "Mimo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "qwen3-max-preview": { + id: "qwen3-max-preview", + name: "Qwen3 Max Preview", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-06", + last_updated: "2025-09-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 64000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "doubao-1.5-vision-pro": { + id: "doubao-1.5-vision-pro", + name: "Doubao 1.5 Vision Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "claude-4.5-sonnet": { + id: "claude-4.5-sonnet", + name: "Claude 4.5 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek-V3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 8192 }, + }, + "qwen-max-2025-01-25": { + id: "qwen-max-2025-01-25", + name: "Qwen2.5-Max-2025-01-25", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "doubao-seed-2.0-pro": { + id: "doubao-seed-2.0-pro", + name: "Doubao Seed 2.0 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 128000 }, + }, + "deepseek/deepseek-v3.2-exp-thinking": { + id: "deepseek/deepseek-v3.2-exp-thinking", + name: "DeepSeek/DeepSeek-V3.2-Exp-Thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.1-terminus-thinking": { + id: "deepseek/deepseek-v3.1-terminus-thinking", + name: "DeepSeek/DeepSeek-V3.1-Terminus-Thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek/DeepSeek-V3.2-Exp", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-251201": { + id: "deepseek/deepseek-v3.2-251201", + name: "Deepseek/DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-math-v2": { + id: "deepseek/deepseek-math-v2", + name: "Deepseek/Deepseek-Math-V2", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 160000, output: 160000 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek/DeepSeek-V3.1-Terminus", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "stepfun-ai/gelab-zero-4b-preview": { + id: "stepfun-ai/gelab-zero-4b-preview", + name: "Stepfun-Ai/Gelab Zero 4b Preview", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 8192, output: 4096 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Stepfun/Step-3.5 Flash", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 64000, output: 4096 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "x-AI/Grok-4-Fast", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-20", + last_updated: "2025-09-20", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "x-AI/Grok-Code-Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-02", + last_updated: "2025-09-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4-fast-reasoning": { + id: "x-ai/grok-4-fast-reasoning", + name: "X-Ai/Grok-4-Fast-Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast-non-reasoning": { + id: "x-ai/grok-4.1-fast-non-reasoning", + name: "X-Ai/Grok 4.1 Fast Non Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "x-AI/Grok-4.1-Fast", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4-fast-non-reasoning": { + id: "x-ai/grok-4-fast-non-reasoning", + name: "X-Ai/Grok-4-Fast-Non-Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast-reasoning": { + id: "x-ai/grok-4.1-fast-reasoning", + name: "X-Ai/Grok 4.1 Fast Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 20000000, output: 2000000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "OpenAI/GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "OpenAI/GPT-5", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 400000, output: 128000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "Z-Ai/GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "Z-Ai/GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/autoglm-phone-9b": { + id: "z-ai/autoglm-phone-9b", + name: "Z-Ai/Autoglm Phone 9b", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 12800, output: 4096 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "Z-AI/GLM 4.6", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "Minimax/Minimax-M2", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax/Minimax-M2.1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "Minimax/Minimax-M2.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "Minimax/Minimax-M2.5 Highspeed", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Moonshotai/Kimi-K2.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 100000 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 100000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "Xiaomi/Mimo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-26", + last_updated: "2025-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "Meituan/Longcat-Flash-Chat", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-05", + last_updated: "2025-11-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 131072 }, + }, + "meituan/longcat-flash-lite": { + id: "meituan/longcat-flash-lite", + name: "Meituan/Longcat-Flash-Lite", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 320000 }, + }, + }, + }, + kilo: { + id: "kilo", + env: ["KILO_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.kilo.ai/api/gateway", + name: "Kilo Gateway", + doc: "https://kilo.ai", + models: { + "giga-potato": { + id: "giga-potato", + name: "Giga Potato (free)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "corethink:free": { + id: "corethink:free", + name: "CoreThink (free)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 78000, output: 8192 }, + }, + "giga-potato-thinking": { + id: "giga-potato-thinking", + name: "Giga Potato Thinking (free)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "morph-warp-grep-v2": { + id: "morph-warp-grep-v2", + name: "Morph: WarpGrep V2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "ai21/jamba-large-1.7": { + id: "ai21/jamba-large-1.7", + name: "AI21: Jamba Large 1.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 256000, output: 4096 }, + }, + "alibaba/tongyi-deepresearch-30b-a3b": { + id: "alibaba/tongyi-deepresearch-30b-a3b", + name: "Tongyi DeepResearch 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 131072, output: 131072 }, + }, + "inflection/inflection-3-pi": { + id: "inflection/inflection-3-pi", + name: "Inflection: Inflection 3 Pi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 1024 }, + }, + "inflection/inflection-3-productivity": { + id: "inflection/inflection-3-productivity", + name: "Inflection: Inflection 3 Productivity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 1024 }, + }, + "liquid/lfm2-8b-a1b": { + id: "liquid/lfm2-8b-a1b", + name: "LiquidAI: LFM2-8B-A1B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.02 }, + limit: { context: 32768, output: 32768 }, + }, + "liquid/lfm-2.2-6b": { + id: "liquid/lfm-2.2-6b", + name: "LiquidAI: LFM2-2.6B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.02 }, + limit: { context: 32768, output: 32768 }, + }, + "liquid/lfm-2-24b-a2b": { + id: "liquid/lfm-2-24b-a2b", + name: "LiquidAI: LFM2-24B-A2B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.12 }, + limit: { context: 32768, output: 32768 }, + }, + "writer/palmyra-x5": { + id: "writer/palmyra-x5", + name: "Writer: Palmyra X5", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 6 }, + limit: { context: 1040000, output: 8192 }, + }, + "ibm-granite/granite-4.0-h-micro": { + id: "ibm-granite/granite-4.0-h-micro", + name: "IBM: Granite 4.0 Micro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 131000, output: 32768 }, + }, + "essentialai/rnj-1-instruct": { + id: "essentialai/rnj-1-instruct", + name: "EssentialAI: Rnj 1 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 6554 }, + }, + "perplexity/sonar-pro": { + id: "perplexity/sonar-pro", + name: "Perplexity: Sonar Pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar-deep-research": { + id: "perplexity/sonar-deep-research", + name: "Perplexity: Sonar Deep Research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 25600 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Perplexity: Sonar", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127072, output: 25415 }, + }, + "perplexity/sonar-pro-search": { + id: "perplexity/sonar-pro-search", + name: "Perplexity: Sonar Pro Search", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-10-31", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar-reasoning-pro": { + id: "perplexity/sonar-reasoning-pro", + name: "Perplexity: Sonar Reasoning Pro", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 25600 }, + }, + "deepseek/deepseek-chat-v3.1": { + id: "deepseek/deepseek-chat-v3.1", + name: "DeepSeek: DeepSeek V3.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 32768, output: 7168 }, + }, + "deepseek/deepseek-chat": { + id: "deepseek/deepseek-chat", + name: "DeepSeek: DeepSeek V3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.32, output: 0.89, cache_read: 0.15 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek: R1 Distill Llama 70B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.8, cache_read: 0.015 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek: R1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek: DeepSeek V3.2 Speciale", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.135 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-qwen-32b": { + id: "deepseek/deepseek-r1-distill-qwen-32b", + name: "DeepSeek: R1 Distill Qwen 32B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.29 }, + limit: { context: 32768, output: 32768 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek: DeepSeek V3.2 Exp", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek: DeepSeek V3.2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.38, cache_read: 0.125 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-chat-v3-0324": { + id: "deepseek/deepseek-chat-v3-0324", + name: "DeepSeek: DeepSeek V3 0324", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.77, cache_read: 0.095 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek: R1 0528", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.15, cache_read: 0.2 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek: DeepSeek V3.1 Terminus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.21, output: 0.79, cache_read: 0.13 }, + limit: { context: 163840, output: 32768 }, + }, + "openrouter/hunter-alpha": { + id: "openrouter/hunter-alpha", + name: "Hunter Alpha", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1048576, output: 32000 }, + }, + "openrouter/auto": { + id: "openrouter/auto", + name: "Auto Router", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000000, output: 32768 }, + }, + "openrouter/bodybuilder": { + id: "openrouter/bodybuilder", + name: "Body Builder (beta)", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + status: "beta", + }, + "openrouter/healer-alpha": { + id: "openrouter/healer-alpha", + name: "Healer Alpha", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32000 }, + }, + "openrouter/free": { + id: "openrouter/free", + name: "Free Models Router", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 32768 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Arcee AI: Trinity Mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/virtuoso-large": { + id: "arcee-ai/virtuoso-large", + name: "Arcee AI: Virtuoso Large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 1.2 }, + limit: { context: 131072, output: 64000 }, + }, + "arcee-ai/spotlight": { + id: "arcee-ai/spotlight", + name: "Arcee AI: Spotlight", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131072, output: 65537 }, + }, + "arcee-ai/maestro-reasoning": { + id: "arcee-ai/maestro-reasoning", + name: "Arcee AI: Maestro Reasoning", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 3.3 }, + limit: { context: 131072, output: 32000 }, + }, + "arcee-ai/trinity-large-preview:free": { + id: "arcee-ai/trinity-large-preview:free", + name: "Arcee AI: Trinity Large Preview (free)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131000, output: 26200 }, + }, + "arcee-ai/coder-large": { + id: "arcee-ai/coder-large", + name: "Arcee AI: Coder Large", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "deepcogito/cogito-v2.1-671b": { + id: "deepcogito/cogito-v2.1-671b", + name: "Deep Cogito: Cogito v2.1 671B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, output: 32768 }, + }, + "upstage/solar-pro-3": { + id: "upstage/solar-pro-3", + name: "Upstage: Solar Pro 3", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 32768 }, + }, + "nex-agi/deepseek-v3.1-nex-n1": { + id: "nex-agi/deepseek-v3.1-nex-n1", + name: "Nex AGI: DeepSeek V3.1 Nex N1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 163840 }, + }, + "bytedance-seed/seed-1.6": { + id: "bytedance-seed/seed-1.6", + name: "ByteDance Seed: Seed 1.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 32768 }, + }, + "bytedance-seed/seed-2.0-lite": { + id: "bytedance-seed/seed-2.0-lite", + name: "ByteDance Seed: Seed-2.0-Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 131072 }, + }, + "bytedance-seed/seed-1.6-flash": { + id: "bytedance-seed/seed-1.6-flash", + name: "ByteDance Seed: Seed 1.6 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 262144, output: 32768 }, + }, + "bytedance-seed/seed-2.0-mini": { + id: "bytedance-seed/seed-2.0-mini", + name: "ByteDance Seed: Seed-2.0-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "mancer/weaver": { + id: "mancer/weaver", + name: "Mancer: Weaver (alpha)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-08-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 1 }, + limit: { context: 8000, output: 2000 }, + }, + "anthracite-org/magnum-v4-72b": { + id: "anthracite-org/magnum-v4-72b", + name: "Magnum v4 72B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 5 }, + limit: { context: 16384, output: 2048 }, + }, + "kilo-auto/balanced": { + id: "kilo-auto/balanced", + name: "Kilo Auto Balanced", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3 }, + limit: { context: 204800, output: 131072 }, + }, + "kilo-auto/frontier": { + id: "kilo-auto/frontier", + name: "Kilo Auto Frontier", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "kilo-auto/small": { + id: "kilo-auto/small", + name: "Kilo Auto Small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "kilo-auto/free": { + id: "kilo-auto/free", + name: "Kilo Auto Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "undi95/remm-slerp-l2-13b": { + id: "undi95/remm-slerp-l2-13b", + name: "ReMM SLERP 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-07-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 0.65 }, + limit: { context: 6144, output: 4096 }, + }, + "allenai/olmo-2-0325-32b-instruct": { + id: "allenai/olmo-2-0325-32b-instruct", + name: "AllenAI: Olmo 2 32B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 128000, output: 32768 }, + }, + "allenai/molmo-2-8b": { + id: "allenai/molmo-2-8b", + name: "AllenAI: Molmo2 8B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-09", + last_updated: "2026-01-31", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 36864, output: 36864 }, + }, + "allenai/olmo-3-7b-think": { + id: "allenai/olmo-3-7b-think", + name: "AllenAI: Olmo 3 7B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3.1-32b-instruct": { + id: "allenai/olmo-3.1-32b-instruct", + name: "AllenAI: Olmo 3.1 32B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-07", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 65536, output: 32768 }, + }, + "allenai/olmo-3.1-32b-think": { + id: "allenai/olmo-3.1-32b-think", + name: "AllenAI: Olmo 3.1 32B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3-7b-instruct": { + id: "allenai/olmo-3-7b-instruct", + name: "AllenAI: Olmo 3 7B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3-32b-think": { + id: "allenai/olmo-3-32b-think", + name: "AllenAI: Olmo 3 32B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, output: 65536 }, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + id: "nousresearch/hermes-2-pro-llama-3-8b", + name: "NousResearch: Hermes 2 Pro - Llama-3 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-05-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + }, + "nousresearch/hermes-4-405b": { + id: "nousresearch/hermes-4-405b", + name: "Nous: Hermes 4 405B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 26215 }, + }, + "nousresearch/hermes-3-llama-3.1-70b": { + id: "nousresearch/hermes-3-llama-3.1-70b", + name: "Nous: Hermes 3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 131072, output: 32768 }, + }, + "nousresearch/hermes-4-70b": { + id: "nousresearch/hermes-4-70b", + name: "Nous: Hermes 4 70B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-08-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, cache_read: 0.055 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-3-llama-3.1-405b": { + id: "nousresearch/hermes-3-llama-3.1-405b", + name: "Nous: Hermes 3 405B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 1 }, + limit: { context: 131072, output: 16384 }, + }, + "kilo/auto": { + id: "kilo/auto", + name: "Kilo: Auto", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "kilo/auto-small": { + id: "kilo/auto-small", + name: "Deprecated Kilo Auto Small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "kilo/auto-free": { + id: "kilo/auto-free", + name: "Deprecated Kilo Auto Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "morph/morph-v3-fast": { + id: "morph/morph-v3-fast", + name: "Morph: Morph V3 Fast", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 81920, output: 38000 }, + }, + "morph/morph-v3-large": { + id: "morph/morph-v3-large", + name: "Morph: Morph V3 Large", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 262144, output: 131072 }, + }, + "eleutherai/llemma_7b": { + id: "eleutherai/llemma_7b", + name: "EleutherAI: Llemma 7b", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 4096, output: 4096 }, + }, + "stepfun/step-3.5-flash:free": { + id: "stepfun/step-3.5-flash:free", + name: "StepFun: Step 3.5 Flash (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "StepFun: Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 256000 }, + }, + "alpindale/goliath-120b": { + id: "alpindale/goliath-120b", + name: "Goliath 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-11-10", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.75, output: 7.5 }, + limit: { context: 6144, output: 1024 }, + }, + "mistralai/mistral-nemo": { + id: "mistralai/mistral-nemo", + name: "Mistral: Mistral Nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-01", + last_updated: "2024-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 131072, output: 16384 }, + }, + "mistralai/mistral-saba": { + id: "mistralai/mistral-saba", + name: "Mistral: Saba", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/mistral-large-2512": { + id: "mistralai/mistral-large-2512", + name: "Mistral: Mistral Large 3 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-01", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 52429 }, + }, + "mistralai/devstral-medium": { + id: "mistralai/devstral-medium", + name: "Mistral: Devstral Medium", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + id: "mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral: Mistral Small 3.1 24B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.56, cache_read: 0.015 }, + limit: { context: 128000, output: 131072 }, + }, + "mistralai/pixtral-large-2411": { + id: "mistralai/pixtral-large-2411", + name: "Mistral: Pixtral Large 2411", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/devstral-2512": { + id: "mistralai/devstral-2512", + name: "Mistral: Devstral 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.025 }, + limit: { context: 262144, output: 65536 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Mistral: Codestral 2508", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 51200 }, + }, + "mistralai/mistral-small-24b-instruct-2501": { + id: "mistralai/mistral-small-24b-instruct-2501", + name: "Mistral: Mistral Small 3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 32768, output: 16384 }, + }, + "mistralai/mistral-large-2411": { + id: "mistralai/mistral-large-2411", + name: "Mistral Large 2411", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-11-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mixtral-8x22b-instruct": { + id: "mistralai/mixtral-8x22b-instruct", + name: "Mistral: Mixtral 8x22B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 65536, output: 13108 }, + }, + "mistralai/mistral-large-2407": { + id: "mistralai/mistral-large-2407", + name: "Mistral Large 2407", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-19", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/ministral-8b-2512": { + id: "mistralai/ministral-8b-2512", + name: "Mistral: Ministral 3 8B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, output: 32768 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral: Mistral Medium 3.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/ministral-3b-2512": { + id: "mistralai/ministral-3b-2512", + name: "Mistral: Ministral 3 3B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/voxtral-small-24b-2507": { + id: "mistralai/voxtral-small-24b-2507", + name: "Mistral: Voxtral Small 24B 2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32000, output: 6400 }, + }, + "mistralai/mixtral-8x7b-instruct": { + id: "mistralai/mixtral-8x7b-instruct", + name: "Mistral: Mixtral 8x7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-12-10", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.54, output: 0.54 }, + limit: { context: 32768, output: 16384 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral: Mistral Medium 3", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + id: "mistralai/mistral-small-3.2-24b-instruct", + name: "Mistral: Mistral Small 3.2 24B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.18, cache_read: 0.03 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/mistral-small-creative": { + id: "mistralai/mistral-small-creative", + name: "Mistral: Mistral Small Creative", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/devstral-small": { + id: "mistralai/devstral-small", + name: "Mistral: Devstral Small 1.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-07", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-large": { + id: "mistralai/mistral-large", + name: "Mistral Large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 25600 }, + }, + "mistralai/mistral-7b-instruct-v0.1": { + id: "mistralai/mistral-7b-instruct-v0.1", + name: "Mistral: Mistral 7B Instruct v0.1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 2824, output: 565 }, + }, + "mistralai/ministral-14b-2512": { + id: "mistralai/ministral-14b-2512", + name: "Mistral: Ministral 3 14B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, output: 52429 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Meta: Llama 3.3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.32 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-4-scout": { + id: "meta-llama/llama-4-scout", + name: "Meta: Llama 4 Scout", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 327680, output: 16384 }, + }, + "meta-llama/llama-guard-3-8b": { + id: "meta-llama/llama-guard-3-8b", + name: "Llama Guard 3 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-18", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-4-maverick": { + id: "meta-llama/llama-4-maverick", + name: "Meta: Llama 4 Maverick", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-12-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048576, output: 16384 }, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + id: "meta-llama/llama-3.2-11b-vision-instruct", + name: "Meta: Llama 3.2 11B Vision Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.049, output: 0.049 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-guard-4-12b": { + id: "meta-llama/llama-guard-4-12b", + name: "Meta: Llama Guard 4 12B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 163840, output: 32768 }, + }, + "meta-llama/llama-3.1-70b-instruct": { + id: "meta-llama/llama-3.1-70b-instruct", + name: "Meta: Llama 3.1 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-3.1-405b": { + id: "meta-llama/llama-3.1-405b", + name: "Meta: Llama 3.1 405B (base)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 4 }, + limit: { context: 32768, output: 32768 }, + }, + "meta-llama/llama-3.2-1b-instruct": { + id: "meta-llama/llama-3.2-1b-instruct", + name: "Meta: Llama 3.2 1B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-18", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 60000, output: 12000 }, + }, + "meta-llama/llama-3.2-3b-instruct": { + id: "meta-llama/llama-3.2-3b-instruct", + name: "Meta: Llama 3.2 3B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 80000, output: 16384 }, + }, + "meta-llama/llama-3-8b-instruct": { + id: "meta-llama/llama-3-8b-instruct", + name: "Meta: Llama 3 8B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-25", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.04 }, + limit: { context: 8192, output: 16384 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Meta: Llama 3.1 8B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 16384, output: 16384 }, + }, + "meta-llama/llama-3-70b-instruct": { + id: "meta-llama/llama-3-70b-instruct", + name: "Meta: Llama 3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "meta-llama/llama-3.1-405b-instruct": { + id: "meta-llama/llama-3.1-405b-instruct", + name: "Meta: Llama 3.1 405B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-16", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 4 }, + limit: { context: 131000, output: 26200 }, + }, + "x-ai/grok-code-fast-1:optimized:free": { + id: "x-ai/grok-code-fast-1:optimized:free", + name: "xAI: Grok Code Fast 1 Optimized (experimental, free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4.20-multi-agent-beta": { + id: "x-ai/grok-4.20-multi-agent-beta", + name: "xAI: Grok 4.20 Multi-Agent Beta", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 2000000, output: 32768 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "xAI: Grok 4 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "xAI: Grok Code Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-3-beta": { + id: "x-ai/grok-3-beta", + name: "xAI: Grok 3 Beta", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "xAI: Grok 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 51200 }, + }, + "x-ai/grok-3-mini": { + id: "x-ai/grok-3-mini", + name: "xAI: Grok 3 Mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "xAI: Grok 4.1 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.20-beta": { + id: "x-ai/grok-4.20-beta", + name: "xAI: Grok 4.20 Beta", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 2000000, output: 32768 }, + }, + "x-ai/grok-3-mini-beta": { + id: "x-ai/grok-3-mini-beta", + name: "xAI: Grok 3 Mini Beta", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-3": { + id: "x-ai/grok-3", + name: "xAI: Grok 3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 26215 }, + }, + "tencent/hunyuan-a13b-instruct": { + id: "tencent/hunyuan-a13b-instruct", + name: "Tencent: Hunyuan A13B Instruct", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131072, output: 131072 }, + }, + "gryphe/mythomax-l2-13b": { + id: "gryphe/mythomax-l2-13b", + name: "MythoMax 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 4096, output: 4096 }, + }, + "sao10k/l3-euryale-70b": { + id: "sao10k/l3-euryale-70b", + name: "Sao10k: Llama 3 Euryale 70B v2.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-06-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3-lunaris-8b": { + id: "sao10k/l3-lunaris-8b", + name: "Sao10K: Llama 3 8B Lunaris", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-13", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.05 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3.3-euryale-70b": { + id: "sao10k/l3.3-euryale-70b", + name: "Sao10K: Llama 3.3 Euryale 70B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-12-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 0.75 }, + limit: { context: 131072, output: 16384 }, + }, + "sao10k/l3.1-70b-hanami-x1": { + id: "sao10k/l3.1-70b-hanami-x1", + name: "Sao10K: Llama 3.1 70B Hanami x1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-01-08", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 16000, output: 16000 }, + }, + "sao10k/l3.1-euryale-70b": { + id: "sao10k/l3.1-euryale-70b", + name: "Sao10K: Llama 3.1 Euryale 70B v2.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 0.85 }, + limit: { context: 131072, output: 16384 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "WizardLM-2 8x22B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-24", + last_updated: "2024-04-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 0.62 }, + limit: { context: 65535, output: 8000 }, + }, + "microsoft/phi-4": { + id: "microsoft/phi-4", + name: "Microsoft: Phi 4", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.14 }, + limit: { context: 16384, output: 16384 }, + }, + "cohere/command-r7b-12-2024": { + id: "cohere/command-r7b-12-2024", + name: "Cohere: Command R7B (12-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-02-27", + last_updated: "2024-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-a": { + id: "cohere/command-a", + name: "Cohere: Command A", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8192 }, + }, + "cohere/command-r-plus-08-2024": { + id: "cohere/command-r-plus-08-2024", + name: "Cohere: Command R+ (08-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-r-08-2024": { + id: "cohere/command-r-08-2024", + name: "Cohere: Command R (08-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "Prime Intellect: INTELLECT-3", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-26", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", + name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "NVIDIA: Nemotron 3 Nano 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 262144, output: 52429 }, + }, + "nvidia/nemotron-nano-12b-v2-vl": { + id: "nvidia/nemotron-nano-12b-v2-vl", + name: "NVIDIA: Nemotron Nano 12B 2 VL", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-10-28", + last_updated: "2026-01-31", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-3-super-120b-a12b:free": { + id: "nvidia/nemotron-3-super-120b-a12b:free", + name: "NVIDIA: Nemotron 3 Super (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "NVIDIA: Nemotron Nano 9B V2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + id: "nvidia/llama-3.1-nemotron-70b-instruct", + name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-12", + last_updated: "2024-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 131072, output: 16384 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Inception: Mercury 2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + "inception/mercury": { + id: "inception/mercury", + name: "Inception: Mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, output: 32000 }, + }, + "inception/mercury-coder": { + id: "inception/mercury-coder", + name: "Inception: Mercury Coder", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "OpenAI: GPT-5.1-Codex-Max", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "OpenAI: GPT-5.2 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "OpenAI: GPT-4o-mini Search Preview", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "OpenAI: GPT-5 Chat", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-2024-05-13": { + id: "openai/gpt-4o-2024-05-13", + name: "OpenAI: GPT-4o (2024-05-13)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "OpenAI: GPT-5.3 Chat", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2026-03-04", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "OpenAI: GPT-5.2 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4-1106-preview": { + id: "openai/gpt-4-1106-preview", + name: "OpenAI: GPT-4 Turbo (older v1106)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-11-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-4o-audio-preview": { + id: "openai/gpt-4o-audio-preview", + name: "OpenAI: GPT-4o Audio", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-15", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "OpenAI: GPT-5 Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "OpenAI: GPT-5 Nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "OpenAI: GPT-5.3-Codex", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-02-25", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-3.5-turbo-16k": { + id: "openai/gpt-3.5-turbo-16k", + name: "OpenAI: GPT-3.5 Turbo 16k", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-08-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "OpenAI: GPT-4 Turbo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-09-13", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "OpenAI: GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "OpenAI: o3 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "OpenAI: o3 Mini High", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2026-03-15", + modalities: { input: ["pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "OpenAI: GPT-4o-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "OpenAI: o4 Mini Deep Research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "OpenAI: GPT-5.1 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI: o4 Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "OpenAI: GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini-2024-07-18": { + id: "openai/gpt-4o-mini-2024-07-18", + name: "OpenAI: GPT-4o-mini (2024-07-18)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "OpenAI: GPT-5.1-Codex-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-4o-2024-08-06": { + id: "openai/gpt-4o-2024-08-06", + name: "OpenAI: GPT-4o (2024-08-06)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "OpenAI: GPT-5 Image", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 10, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "OpenAI: GPT-5.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI: o1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-05", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "OpenAI: GPT-5.4 Pro", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-03-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "OpenAI: GPT-3.5 Turbo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "OpenAI: o3 Deep Research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI: o3 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-20", + last_updated: "2026-03-15", + modalities: { input: ["pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo-preview": { + id: "openai/gpt-4-turbo-preview", + name: "OpenAI: GPT-4 Turbo Preview", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "OpenAI: o1-pro", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + release_date: "2025-03-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4": { + id: "openai/gpt-4", + name: "OpenAI: GPT-4", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-03-14", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8191, output: 4096 }, + }, + "openai/gpt-4-0314": { + id: "openai/gpt-4-0314", + name: "OpenAI: GPT-4 (older v0314)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-05-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8191, output: 4096 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "OpenAI: GPT-5 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "OpenAI: GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-03-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-audio": { + id: "openai/gpt-audio", + name: "OpenAI: GPT Audio", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o:extended": { + id: "openai/gpt-4o:extended", + name: "OpenAI: GPT-4o (extended)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 18 }, + limit: { context: 128000, output: 64000 }, + }, + "openai/gpt-4o-search-preview": { + id: "openai/gpt-4o-search-preview", + name: "OpenAI: GPT-4o Search Preview", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "OpenAI: GPT-4.1 Nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o4-mini-high": { + id: "openai/o4-mini-high", + name: "OpenAI: o4 Mini High", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2025-04-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI: o3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "OpenAI: gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "OpenAI: GPT-5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-audio-mini": { + id: "openai/gpt-audio-mini", + name: "OpenAI: GPT Audio Mini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "OpenAI: GPT-4o", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-3.5-turbo-0613": { + id: "openai/gpt-3.5-turbo-0613", + name: "OpenAI: GPT-3.5 Turbo (older v0613)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 4095, output: 4096 }, + }, + "openai/gpt-5-image-mini": { + id: "openai/gpt-5-image-mini", + name: "OpenAI: GPT-5 Image Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "OpenAI: GPT-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "OpenAI: gpt-oss-safeguard-20b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI: gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.039, output: 0.19 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "OpenAI: GPT-3.5 Turbo Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-03-01", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4095, output: 4096 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "OpenAI: GPT-4.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "OpenAI: GPT-4.1 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "OpenAI: GPT-5.1-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-2024-11-20": { + id: "openai/gpt-4o-2024-11-20", + name: "OpenAI: GPT-4o (2024-11-20)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-20", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "amazon/nova-lite-v1": { + id: "amazon/nova-lite-v1", + name: "Amazon: Nova Lite 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 300000, output: 5120 }, + }, + "amazon/nova-pro-v1": { + id: "amazon/nova-pro-v1", + name: "Amazon: Nova Pro 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 300000, output: 5120 }, + }, + "amazon/nova-premier-v1": { + id: "amazon/nova-premier-v1", + name: "Amazon: Nova Premier 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 12.5 }, + limit: { context: 1000000, output: 32000 }, + }, + "amazon/nova-2-lite-v1": { + id: "amazon/nova-2-lite-v1", + name: "Amazon: Nova 2 Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65535 }, + }, + "amazon/nova-micro-v1": { + id: "amazon/nova-micro-v1", + name: "Amazon: Nova Micro 1.0", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14 }, + limit: { context: 128000, output: 5120 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "Z.ai: GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 1.98, cache_read: 0.2 }, + limit: { context: 202752, output: 65535 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "Z.ai: GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 2.3 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4-32b": { + id: "z-ai/glm-4-32b", + name: "Z.ai: GLM 4 32B ", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 32768 }, + }, + "z-ai/glm-5.1": { + id: "z-ai/glm-5.1", + name: "Z.ai: GLM 5.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.26, output: 3.96 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "Z.ai: GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.175 }, + limit: { context: 131072, output: 98304 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "Z.ai: GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.85, cache_read: 0.025 }, + limit: { context: 131072, output: 98304 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "Z.ai: GLM 4.5V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 65536, output: 16384 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "Z.ai: GLM 4.6", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.9, cache_read: 0.175 }, + limit: { context: 204800, output: 204800 }, + }, + "z-ai/glm-4.6v": { + id: "z-ai/glm-4.6v", + name: "Z.ai: GLM 4.6V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2026-01-10", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131072, output: 131072 }, + }, + "z-ai/glm-4.7-flash": { + id: "z-ai/glm-4.7-flash", + name: "Z.ai: GLM 4.7 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, + limit: { context: 202752, output: 40551 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "Baidu: ERNIE 4.5 VL 424B A47B ", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2026-01", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "Baidu: ERNIE 4.5 VL 28B A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.56 }, + limit: { context: 30000, output: 8000 }, + }, + "baidu/ernie-4.5-21b-a3b": { + id: "baidu/ernie-4.5-21b-a3b", + name: "Baidu: ERNIE 4.5 21B A3B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 120000, output: 8000 }, + }, + "baidu/ernie-4.5-300b-a47b": { + id: "baidu/ernie-4.5-300b-a47b", + name: "Baidu: ERNIE 4.5 300B A47B ", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "baidu/ernie-4.5-21b-a3b-thinking": { + id: "baidu/ernie-4.5-21b-a3b-thinking", + name: "Baidu: ERNIE 4.5 21B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131072, output: 65536 }, + }, + "relace/relace-apply-3": { + id: "relace/relace-apply-3", + name: "Relace: Relace Apply 3", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-09-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 1.25 }, + limit: { context: 256000, output: 128000 }, + }, + "relace/relace-search": { + id: "relace/relace-search", + name: "Relace: Relace Search", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3 }, + limit: { context: 256000, output: 128000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax: MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax: MiniMax M2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.255, output: 1, cache_read: 0.03 }, + limit: { context: 196608, output: 196608 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax: MiniMax-01", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000192, output: 1000192 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax: MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.95, cache_read: 0.03 }, + limit: { context: 196608, output: 39322 }, + }, + "minimax/minimax-m1": { + id: "minimax/minimax-m1", + name: "MiniMax: MiniMax M1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "minimax/minimax-m2-her": { + id: "minimax/minimax-m2-her", + name: "MiniMax: MiniMax M2-her", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 65536, output: 2048 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax: MiniMax M2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.2, cache_read: 0.029 }, + limit: { context: 196608, output: 196608 }, + }, + "qwen/qwen3-235b-a22b": { + id: "qwen/qwen3-235b-a22b", + name: "Qwen: Qwen3 235B A22B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.455, output: 1.82, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen: Qwen3.5-122B-A10B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.08 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen2.5-coder-7b-instruct": { + id: "qwen/qwen2.5-coder-7b-instruct", + name: "Qwen: Qwen2.5 Coder 7B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-17", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen3-coder-plus": { + id: "qwen/qwen3-coder-plus", + name: "Qwen: Qwen3 Coder Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 3.25, cache_read: 0.2 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen: Qwen3.5-27B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.195, output: 1.56 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-2507": { + id: "qwen/qwen3-235b-a22b-2507", + name: "Qwen: Qwen3 235B A22B Instruct 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.071, output: 0.1 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen3-8b": { + id: "qwen/qwen3-8b", + name: "Qwen: Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.05 }, + limit: { context: 40960, output: 8192 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen: Qwen3.5 397B A17B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39, output: 2.34 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-vl-plus": { + id: "qwen/qwen-vl-plus", + name: "Qwen: Qwen VL Plus", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-25", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1365, output: 0.4095, cache_read: 0.042 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-32b": { + id: "qwen/qwen3-32b", + name: "Qwen: Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen: Qwen2.5 VL 72B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-02-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen-max": { + id: "qwen/qwen-max", + name: "Qwen: Qwen-Max ", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-03", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.04, output: 4.16, cache_read: 0.32 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen-plus": { + id: "qwen/qwen-plus", + name: "Qwen: Qwen-Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + id: "qwen/qwen3-vl-235b-a22b-thinking", + name: "Qwen: Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.6 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + id: "qwen/qwen3-vl-30b-a3b-thinking", + name: "Qwen: Qwen3 VL 30B A3B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 1.56 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen2.5-vl-32b-instruct": { + id: "qwen/qwen2.5-vl-32b-instruct", + name: "Qwen: Qwen2.5 VL 32B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.025 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen/qwen3-vl-8b-instruct": { + id: "qwen/qwen3-vl-8b-instruct", + name: "Qwen: Qwen3 VL 8B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3.5-flash-02-23": { + id: "qwen/qwen3.5-flash-02-23", + name: "Qwen: Qwen3.5-Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen: Qwen3 Max", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen-plus-2025-07-28": { + id: "qwen/qwen-plus-2025-07-28", + name: "Qwen: Qwen Plus 0728", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.78 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + id: "qwen/qwen3-30b-a3b-instruct-2507", + name: "Qwen: Qwen3 30B A3B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.3, cache_read: 0.04 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-vl-32b-instruct": { + id: "qwen/qwen3-vl-32b-instruct", + name: "Qwen: Qwen3 VL 32B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.104, output: 0.416 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen: Qwen3 235B A22B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen: Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0975, output: 0.78 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + id: "qwen/qwen3-30b-a3b-thinking-2507", + name: "Qwen: Qwen3 30B A3B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen-2.5-7b-instruct": { + id: "qwen/qwen-2.5-7b-instruct", + name: "Qwen: Qwen2.5 7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.1 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen-vl-max": { + id: "qwen/qwen-vl-max", + name: "Qwen: Qwen VL Max", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-flash": { + id: "qwen/qwen3-coder-flash", + name: "Qwen: Qwen3 Coder Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.195, output: 0.975, cache_read: 0.06 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-30b-a3b": { + id: "qwen/qwen3-30b-a3b", + name: "Qwen: Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.28, cache_read: 0.03 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwq-32b": { + id: "qwen/qwq-32b", + name: "Qwen: QwQ 32B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen: Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 1.1 }, + limit: { context: 131072, output: 52429 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "Qwen: Qwen3 Coder Next", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.75, cache_read: 0.035 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-2.5-coder-32b-instruct": { + id: "qwen/qwen-2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-11-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2, cache_read: 0.015 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + id: "qwen/qwen3-vl-30b-a3b-instruct", + name: "Qwen: Qwen3 VL 30B A3B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen: Qwen3 Coder 30B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "qwen/qwen3-max-thinking": { + id: "qwen/qwen3-max-thinking", + name: "Qwen: Qwen3 Max Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.78, output: 3.9 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen-turbo": { + id: "qwen/qwen-turbo", + name: "Qwen: Qwen-Turbo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0325, output: 0.13, cache_read: 0.01 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + id: "qwen/qwen3-vl-235b-a22b-instruct", + name: "Qwen: Qwen3 VL 235B A22B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.88, cache_read: 0.11 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen: Qwen3 Coder 480B A35B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1, cache_read: 0.022 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen-2.5-vl-7b-instruct": { + id: "qwen/qwen-2.5-vl-7b-instruct", + name: "Qwen: Qwen2.5-VL 7B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-28", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen3.5-9b": { + id: "qwen/qwen3.5-9b", + name: "Qwen: Qwen3.5-9B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 256000, output: 32768 }, + }, + "qwen/qwen3-vl-8b-thinking": { + id: "qwen/qwen3-vl-8b-thinking", + name: "Qwen: Qwen3 VL 8B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.117, output: 1.365 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-plus-2025-07-28:thinking": { + id: "qwen/qwen-plus-2025-07-28:thinking", + name: "Qwen: Qwen Plus 0728 (thinking)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.78 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen-2.5-72b-instruct": { + id: "qwen/qwen-2.5-72b-instruct", + name: "Qwen2.5 72B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.39 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen/qwen3-14b": { + id: "qwen/qwen3-14b", + name: "Qwen: Qwen3 14B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24, cache_read: 0.025 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen: Qwen3.5-35B-A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1625, output: 1.3 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3.5-plus-02-15": { + id: "qwen/qwen3.5-plus-02-15", + name: "Qwen: Qwen3.5 Plus 2026-02-15", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.26, output: 1.56 }, + limit: { context: 1000000, output: 65536 }, + }, + "alfredpros/codellama-7b-instruct-solidity": { + id: "alfredpros/codellama-7b-instruct-solidity", + name: "AlfredPros: CodeLLaMa 7B Instruct Solidity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 4096, output: 4096 }, + }, + "kwaipilot/kat-coder-pro": { + id: "kwaipilot/kat-coder-pro", + name: "Kwaipilot: KAT-Coder-Pro V1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.207, output: 0.828, cache_read: 0.0414 }, + limit: { context: 256000, output: 128000 }, + }, + "google/gemini-2.5-pro-preview-05-06": { + id: "google/gemini-2.5-pro-preview-05-06", + name: "Google: Gemini 2.5 Pro Preview 05-06", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-3.1-pro-preview-customtools": { + id: "google/gemini-3.1-pro-preview-customtools", + name: "Google: Gemini 3.1 Pro Preview Custom Tools", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-001": { + id: "google/gemini-2.0-flash-001", + name: "Google: Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-11", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025, cache_write: 0.083333 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Google: Gemma 3n 4B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 32768, output: 6554 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Google: Gemini 3.1 Flash Lite Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, reasoning: 1.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Google: Gemini 3.1 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Google: Gemini 3 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, reasoning: 3, cache_read: 0.05, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Google: Gemini 3 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-18", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, cache_read: 0.2, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Google: Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-9b-it": { + id: "google/gemma-2-9b-it", + name: "Google: Gemma 2 9B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-06-28", + last_updated: "2024-06-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 8192, output: 1639 }, + }, + "google/gemini-3-pro-image-preview": { + id: "google/gemini-3-pro-image-preview", + name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 65536, output: 32768 }, + }, + "google/gemini-2.5-flash-image": { + id: "google/gemini-2.5-flash-image", + name: "Google: Nano Banana (Gemini 2.5 Flash Image)", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-08", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Google: Gemma 3 12B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.13, cache_read: 0.015 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Google: Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, reasoning: 2.5, cache_read: 0.03, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-3.1-flash-image-preview": { + id: "google/gemini-3.1-flash-image-preview", + name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 65536, output: 65536 }, + }, + "google/gemma-3-4b-it": { + id: "google/gemma-3-4b-it", + name: "Google: Gemma 3 4B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.08 }, + limit: { context: 131072, output: 19200 }, + }, + "google/gemini-2.5-pro-preview": { + id: "google/gemini-2.5-pro-preview", + name: "Google: Gemini 2.5 Pro Preview 06-05", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-05", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-27b-it": { + id: "google/gemma-2-27b-it", + name: "Google: Gemma 2 27B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-06-24", + last_updated: "2024-06-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 0.65 }, + limit: { context: 8192, output: 2048 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Google: Gemma 3 27B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11, cache_read: 0.02 }, + limit: { context: 128000, output: 65536 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Google: Gemini 2.5 Flash Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-2.0-flash-lite-001": { + id: "google/gemini-2.0-flash-lite-001", + name: "Google: Gemini 2.0 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-11", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "MoonshotAI: Kimi K2.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.2 }, + limit: { context: 262144, output: 65535 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "MoonshotAI: Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.15 }, + limit: { context: 131072, output: 26215 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "MoonshotAI: Kimi K2 0711", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131000, output: 26215 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "MoonshotAI: Kimi K2 Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.47, output: 2, cache_read: 0.2 }, + limit: { context: 131072, output: 65535 }, + }, + "aion-labs/aion-1.0": { + id: "aion-labs/aion-1.0", + name: "AionLabs: Aion-1.0", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 4, output: 8 }, + limit: { context: 131072, output: 32768 }, + }, + "aion-labs/aion-rp-llama-3.1-8b": { + id: "aion-labs/aion-rp-llama-3.1-8b", + name: "AionLabs: Aion-RP 1.0 (8B)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.6 }, + limit: { context: 32768, output: 32768 }, + }, + "aion-labs/aion-2.0": { + id: "aion-labs/aion-2.0", + name: "AionLabs: Aion-2.0", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.6 }, + limit: { context: 131072, output: 32768 }, + }, + "aion-labs/aion-1.0-mini": { + id: "aion-labs/aion-1.0-mini", + name: "AionLabs: Aion-1.0-Mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 1.4 }, + limit: { context: 131072, output: 32768 }, + }, + "thedrummer/unslopnemo-12b": { + id: "thedrummer/unslopnemo-12b", + name: "TheDrummer: UnslopNemo 12B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "thedrummer/cydonia-24b-v4.1": { + id: "thedrummer/cydonia-24b-v4.1", + name: "TheDrummer: Cydonia 24B V4.1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "thedrummer/skyfall-36b-v2": { + id: "thedrummer/skyfall-36b-v2", + name: "TheDrummer: Skyfall 36B V2", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "thedrummer/rocinante-12b": { + id: "thedrummer/rocinante-12b", + name: "TheDrummer: Rocinante 12B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.43 }, + limit: { context: 32768, output: 32768 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Anthropic: Claude Opus 4.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.7-sonnet:thinking": { + id: "anthropic/claude-3.7-sonnet:thinking", + name: "Anthropic: Claude 3.7 Sonnet (thinking)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Anthropic: Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Anthropic: Claude Opus 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Anthropic: Claude 3.5 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Anthropic: Claude Sonnet 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Anthropic: Claude Sonnet 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Anthropic: Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Anthropic: Claude 3 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-03-07", + last_updated: "2024-03-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Anthropic: Claude Opus 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Anthropic: Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Anthropic: Claude Haiku 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Anthropic: Claude Sonnet 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 1000000, output: 128000 }, + }, + "switchpoint/router": { + id: "switchpoint/router", + name: "Switchpoint Router", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-07-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 3.4 }, + limit: { context: 131072, output: 32768 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "Xiaomi: MiMo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29, cache_read: 0.045 }, + limit: { context: 262144, output: 65536 }, + }, + "bytedance/ui-tars-1.5-7b": { + id: "bytedance/ui-tars-1.5-7b", + name: "ByteDance: UI-TARS 7B ", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-07-23", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, output: 2048 }, + }, + "tngtech/deepseek-r1t2-chimera": { + id: "tngtech/deepseek-r1t2-chimera", + name: "TNG: DeepSeek R1T2 Chimera", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-08", + last_updated: "2025-07-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85, cache_read: 0.125 }, + limit: { context: 163840, output: 163840 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "Meituan: LongCat Flash Chat", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8, cache_read: 0.2 }, + limit: { context: 131072, output: 131072 }, + }, + }, + }, + "sap-ai-core": { + id: "sap-ai-core", + env: ["AICORE_SERVICE_KEY"], + npm: "@jerome-benoit/sap-ai-provider-v2", + name: "SAP AI Core", + doc: "https://help.sap.com/docs/sap-ai-core", + models: { + "anthropic--claude-4.6-opus": { + id: "anthropic--claude-4.6-opus", + name: "anthropic--claude-4.6-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic--claude-3-haiku": { + id: "anthropic--claude-3-haiku", + name: "anthropic--claude-3-haiku", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic--claude-3-opus": { + id: "anthropic--claude-3-opus", + name: "anthropic--claude-3-opus", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "gpt-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-3.7-sonnet": { + id: "anthropic--claude-3.7-sonnet", + name: "anthropic--claude-3.7-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "sonar-pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic--claude-4.5-sonnet": { + id: "anthropic--claude-4.5-sonnet", + name: "anthropic--claude-4.5-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic--claude-4.6-sonnet": { + id: "anthropic--claude-4.6-sonnet", + name: "anthropic--claude-4.6-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "sonar-deep-research", + family: "sonar-deep-research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-02-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, reasoning: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-4.5-opus": { + id: "anthropic--claude-4.5-opus", + name: "anthropic--claude-4.5-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + sonar: { + id: "sonar", + name: "sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic--claude-4-opus": { + id: "anthropic--claude-4-opus", + name: "anthropic--claude-4-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic--claude-3-sonnet": { + id: "anthropic--claude-3-sonnet", + name: "anthropic--claude-3-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic--claude-4-sonnet": { + id: "anthropic--claude-4-sonnet", + name: "anthropic--claude-4-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "gemini-2.5-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-4.5-haiku": { + id: "anthropic--claude-4.5-haiku", + name: "anthropic--claude-4.5-haiku", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "gpt-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "gpt-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "gpt-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "anthropic--claude-3.5-sonnet": { + id: "anthropic--claude-3.5-sonnet", + name: "anthropic--claude-3.5-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + }, + }, + morph: { + id: "morph", + env: ["MORPH_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.morphllm.com/v1", + name: "Morph", + doc: "https://docs.morphllm.com/api-reference/introduction", + models: { + auto: { + id: "auto", + name: "Auto", + family: "auto", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 1.55 }, + limit: { context: 32000, output: 32000 }, + }, + "morph-v3-fast": { + id: "morph-v3-fast", + name: "Morph v3 Fast", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 16000, output: 16000 }, + }, + "morph-v3-large": { + id: "morph-v3-large", + name: "Morph v3 Large", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 32000, output: 32000 }, + }, + }, + }, + "cloudflare-ai-gateway": { + id: "cloudflare-ai-gateway", + env: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"], + npm: "ai-gateway-provider", + name: "Cloudflare AI Gateway", + doc: "https://developers.cloudflare.com/ai-gateway/", + models: { + "workers-ai/@cf/myshell-ai/melotts": { + id: "workers-ai/@cf/myshell-ai/melotts", + name: "MyShell MeloTTS", + family: "melotts", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { + id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", + name: "IBM Granite 4.0 H Micro", + family: "granite", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/huggingface/distilbert-sst-2-int8": { + id: "workers-ai/@cf/huggingface/distilbert-sst-2-int8", + name: "DistilBERT SST-2 INT8", + family: "distilbert", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.026, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/zai-org/glm-4.7-flash": { + id: "workers-ai/@cf/zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "workers-ai/@cf/pipecat-ai/smart-turn-v2": { + id: "workers-ai/@cf/pipecat-ai/smart-turn-v2", + name: "Pipecat Smart Turn v2", + family: "smart-turn", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { + id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/facebook/bart-large-cnn": { + id: "workers-ai/@cf/facebook/bart-large-cnn", + name: "BART Large CNN", + family: "bart", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it": { + id: "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it", + name: "Gemma SEA-LION v4 27B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { + id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { + id: "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 4.88 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/openai/gpt-oss-20b": { + id: "workers-ai/@cf/openai/gpt-oss-20b", + name: "GPT OSS 20B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/openai/gpt-oss-120b": { + id: "workers-ai/@cf/openai/gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1": { + id: "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1", + name: "Mistral 7B Instruct v0.1", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { + id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3-8b-instruct-awq": { + id: "workers-ai/@cf/meta/llama-3-8b-instruct-awq", + name: "Llama 3 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-guard-3-8b": { + id: "workers-ai/@cf/meta/llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 0.03 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/m2m100-1.2b": { + id: "workers-ai/@cf/meta/m2m100-1.2b", + name: "M2M100 1.2B", + family: "m2m", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-2-7b-chat-fp16": { + id: "workers-ai/@cf/meta/llama-2-7b-chat-fp16", + name: "Llama 2 7B Chat FP16", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 6.67 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049, output: 0.68 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { + id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", + name: "Llama 3.3 70B Instruct FP8 Fast", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 2.25 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-1b-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8", + name: "Llama 3.1 8B Instruct FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.29 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-3b-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq", + name: "Llama 3.1 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3-8b-instruct": { + id: "workers-ai/@cf/meta/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.83 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.8299999999999998 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct": { + id: "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct", + name: "Qwen 2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen3-embedding-0.6b": { + id: "workers-ai/@cf/qwen/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwq-32b": { + id: "workers-ai/@cf/qwen/qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { + id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/google/gemma-3-12b-it": { + id: "workers-ai/@cf/google/gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/moonshotai/kimi-k2.5": { + id: "workers-ai/@cf/moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B": { + id: "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B", + name: "IndicTrans2 EN-Indic 1B", + family: "indictrans", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/pfnet/plamo-embedding-1b": { + id: "workers-ai/@cf/pfnet/plamo-embedding-1b", + name: "PLaMo Embedding 1B", + family: "plamo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.019, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-small-en-v1.5": { + id: "workers-ai/@cf/baai/bge-small-en-v1.5", + name: "BGE Small EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-large-en-v1.5": { + id: "workers-ai/@cf/baai/bge-large-en-v1.5", + name: "BGE Large EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-reranker-base": { + id: "workers-ai/@cf/baai/bge-reranker-base", + name: "BGE Reranker Base", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0031, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-base-en-v1.5": { + id: "workers-ai/@cf/baai/bge-base-en-v1.5", + name: "BGE Base EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.067, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-m3": { + id: "workers-ai/@cf/baai/bge-m3", + name: "BGE M3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/aura-2-en": { + id: "workers-ai/@cf/deepgram/aura-2-en", + name: "Deepgram Aura 2 (EN)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/aura-2-es": { + id: "workers-ai/@cf/deepgram/aura-2-es", + name: "Deepgram Aura 2 (ES)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/nova-3": { + id: "workers-ai/@cf/deepgram/nova-3", + name: "Deepgram Nova 3", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5-turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2021-09-01", + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4": { + id: "openai/gpt-4", + name: "GPT-4", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "anthropic/claude-opus-4-1": { + id: "anthropic/claude-opus-4-1", + name: "Claude Opus 4.1 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3-5-haiku": { + id: "anthropic/claude-3-5-haiku", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-sonnet": { + id: "anthropic/claude-3-sonnet", + name: "Claude Sonnet 3", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-3-opus": { + id: "anthropic/claude-3-opus", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + }, + }, + "github-copilot": { + id: "github-copilot", + env: ["GITHUB_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.githubcopilot.com", + name: "GitHub Copilot", + doc: "https://docs.github.com/en/copilot", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1-Codex-max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "claude-opus-4.6": { + id: "claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 64000 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 216000, input: 128000, output: 16000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-27", + last_updated: "2025-08-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "claude-sonnet-4.5": { + id: "claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 32000 }, + }, + "claude-opus-41": { + id: "claude-opus-41", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 80000, output: 16000 }, + }, + "claude-opus-4.5": { + id: "claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 160000, input: 128000, output: 32000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 64000, output: 4096 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "claude-haiku-4.5": { + id: "claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 32000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 64000, output: 16384 }, + }, + "claude-sonnet-4.6": { + id: "claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, input: 128000, output: 32000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + }, + }, + mixlayer: { + id: "mixlayer", + env: ["MIXLAYER_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.mixlayer.ai/v1", + name: "Mixlayer", + doc: "https://docs.mixlayer.com", + models: { + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen3.5 122B A10B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 3.2 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen3.5 27B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-9b": { + id: "qwen/qwen3.5-9b", + name: "Qwen3.5 9B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen3.5 35B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.3 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "xiaomi-token-plan-sgp": { + id: "xiaomi-token-plan-sgp", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://token-plan-sgp.xiaomimimo.com/v1", + name: "Xiaomi Token Plan (Singapore)", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + "mimo-v2-tts": { + id: "mimo-v2-tts", + name: "MiMo-V2-TTS", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 16000 }, + }, + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 128000 }, + }, + }, + }, + zai: { + id: "zai", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.z.ai/api/paas/v4", + name: "Z.AI", + doc: "https://docs.z.ai/guides/overview/pricing", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 4.4, cache_read: 0.26, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + }, + }, + opencode: { + id: "opencode", + env: ["OPENCODE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://opencode.ai/zen/v1", + name: "OpenCode Zen", + doc: "https://opencode.ai/docs/zen", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.08 }, + limit: { context: 262144, output: 65536 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-free": { + id: "glm-4.7-free", + name: "GLM-4.7 Free", + family: "glm-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "gemini-3.1-pro": { + id: "gemini-3.1-pro", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/google" }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5-free": { + id: "kimi-k2.5-free", + name: "Kimi K2.5 Free", + family: "kimi-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "minimax-m2.5-free": { + id: "minimax-m2.5-free", + name: "MiniMax M2.5 Free", + family: "minimax-free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "big-pickle": { + id: "big-pickle", + name: "Big Pickle", + family: "big-pickle", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-10-17", + last_updated: "2025-10-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-3-5-haiku": { + id: "claude-3-5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gemini-3-flash": { + id: "gemini-3-flash", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/google" }, + }, + "trinity-large-preview-free": { + id: "trinity-large-preview-free", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + status: "deprecated", + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "glm-5-free": { + id: "glm-5-free", + name: "GLM-5 Free", + family: "glm-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.1-free": { + id: "minimax-m2.1-free", + name: "MiniMax M2.1 Free", + family: "minimax-free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + provider: { npm: "@ai-sdk/anthropic" }, + }, + "qwen3.6-plus-free": { + id: "qwen3.6-plus-free", + name: "Qwen3.6 Plus Free", + family: "qwen-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-30", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1048576, output: 64000 }, + status: "deprecated", + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "gemini-3-pro": { + id: "gemini-3-pro", + name: "Gemini 3 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + status: "deprecated", + provider: { npm: "@ai-sdk/google" }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "grok-code": { + id: "grok-code", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-20", + last_updated: "2025-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 256000, output: 256000 }, + status: "deprecated", + }, + "mimo-v2-flash-free": { + id: "mimo-v2-flash-free", + name: "MiMo V2 Flash Free", + family: "mimo-flash-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 65536 }, + status: "deprecated", + }, + "gpt-5.3-codex-spark": { + id: "gpt-5.3-codex-spark", + name: "GPT-5.3 Codex Spark", + family: "gpt-codex-spark", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 128000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "qwen3-coder": { + id: "qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.8 }, + limit: { context: 262144, output: 65536 }, + status: "deprecated", + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "mimo-v2-pro-free": { + id: "mimo-v2-pro-free", + name: "MiMo V2 Pro Free", + family: "mimo-pro-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1048576, output: 64000 }, + status: "deprecated", + }, + "nemotron-3-super-free": { + id: "nemotron-3-super-free", + name: "Nemotron 3 Super Free", + family: "nemotron-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 128000 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "mimo-v2-omni-free": { + id: "mimo-v2-omni-free", + name: "MiMo V2 Omni Free", + family: "mimo-omni-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 64000 }, + status: "deprecated", + }, + }, + }, + stepfun: { + id: "stepfun", + env: ["STEPFUN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.stepfun.com/v1", + name: "StepFun", + doc: "https://platform.stepfun.com/docs/zh/overview/concept", + models: { + "step-3.5-flash-2603": { + id: "step-3.5-flash-2603", + name: "Step 3.5 Flash 2603", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "step-1-32k": { + id: "step-1-32k", + name: "Step 1 (32K)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-01", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.05, output: 9.59, cache_read: 0.41 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "step-3.5-flash": { + id: "step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.096, output: 0.288, cache_read: 0.019 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "step-2-16k": { + id: "step-2-16k", + name: "Step 2 (16K)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-01", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5.21, output: 16.44, cache_read: 1.04 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + }, + }, + nebius: { + id: "nebius", + env: ["NEBIUS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.tokenfactory.nebius.com/v1", + name: "Nebius Token Factory", + doc: "https://docs.tokenfactory.nebius.com/", + models: { + "NousResearch/Hermes-4-70B": { + id: "NousResearch/Hermes-4-70B", + name: "Hermes-4-70B", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, reasoning: 0.4, cache_read: 0.013, cache_write: 0.16 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "NousResearch/Hermes-4-405B": { + id: "NousResearch/Hermes-4-405B", + name: "Hermes-4-405B", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, reasoning: 3, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "black-forest-labs/flux-schnell": { + id: "black-forest-labs/flux-schnell", + name: "FLUX.1-schnell", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-07", + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 77, input: 77, output: 0 }, + }, + "black-forest-labs/flux-dev": { + id: "black-forest-labs/flux-dev", + name: "FLUX.1-dev", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-07", + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 77, input: 77, output: 0 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen2.5-VL-72B-Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3-30B-A3B-Thinking-2507", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, reasoning: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "Qwen/Qwen3-32B-fast": { + id: "Qwen/Qwen3-32B-fast", + name: "Qwen3-32B (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen3-Embedding-8B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2025-10", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3-30B-A3B-Instruct-2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 8192 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3-32B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3-Coder-30B-A3B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 8192 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.2, reasoning: 1.2, cache_read: 0.015, cache_write: 0.18 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.8 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen2.5-Coder-7B-fast": { + id: "Qwen/Qwen2.5-Coder-7B-fast", + name: "Qwen2.5-Coder-7B (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-19", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "PrimeIntellect/INTELLECT-3": { + id: "PrimeIntellect/INTELLECT-3", + name: "INTELLECT-3", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-25", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "GLM-4.5", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM-4.5-Air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-4.7-FP8": { + id: "zai-org/GLM-4.7-FP8", + name: "GLM-4.7 (FP8)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-03-01", + last_updated: "2026-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3.2, cache_read: 0.1, cache_write: 1 }, + limit: { context: 200000, input: 200000, output: 16384 }, + }, + "BAAI/bge-en-icl": { + id: "BAAI/bge-en-icl", + name: "BGE-ICL", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-06", + release_date: "2024-07-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "BAAI/bge-multilingual-gemma2": { + id: "BAAI/bge-multilingual-gemma2", + name: "bge-multilingual-gemma2", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-06", + release_date: "2024-07-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 8192, input: 8192, output: 0 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-12-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, cache_read: 0.013, cache_write: 0.16 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct-fast": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", + name: "Meta-Llama-3.1-8B-Instruct (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-07-23", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-fast": { + id: "meta-llama/Llama-3.3-70B-Instruct-fast", + name: "Llama-3.3-70B-Instruct (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-12-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "meta-llama/Llama-Guard-3-8B": { + id: "meta-llama/Llama-Guard-3-8B", + name: "Llama-Guard-3-8B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: false, + knowledge: "2024-04", + release_date: "2024-04-18", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 8192, input: 8000, output: 1024 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "Meta-Llama-3.1-8B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-07-23", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "nvidia/Nemotron-Nano-V2-12b": { + id: "nvidia/Nemotron-Nano-V2-12b", + name: "Nemotron-Nano-V2-12b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.2, cache_read: 0.007, cache_write: 0.08 }, + limit: { context: 32000, input: 30000, output: 4096 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron-3-Super-120B-A12B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": { + id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", + name: "Llama-3.1-Nemotron-Ultra-253B-v1", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": { + id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B", + name: "Nemotron-3-Nano-30B-A3B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24, cache_read: 0.006, cache_write: 0.075 }, + limit: { context: 32000, input: 30000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek-V3-0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5, cache_read: 0.05, cache_write: 0.1875 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3-0324-fast": { + id: "deepseek-ai/DeepSeek-V3-0324-fast", + name: "DeepSeek-V3-0324 (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.25, cache_read: 0.075, cache_write: 0.28125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1-0528-fast": { + id: "deepseek-ai/DeepSeek-R1-0528-fast", + name: "DeepSeek R1 0528 Fast", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4, reasoning: 2.4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 128000, input: 120000, output: 32768 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45, reasoning: 0.45, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 163000, input: 160000, output: 16384 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2, cache_read: 0.005, cache_write: 0.06 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6, reasoning: 0.6, cache_read: 0.015, cache_write: 0.18 }, + limit: { context: 128000, input: 124000, output: 8192 }, + }, + "google/gemma-2-2b-it": { + id: "google/gemma-2-2b-it", + name: "Gemma-2-2b-it", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-07-31", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 8192, input: 8000, output: 4096 }, + }, + "google/gemma-2-9b-it-fast": { + id: "google/gemma-2-9b-it-fast", + name: "Gemma-2-9b-it (Fast)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-27", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.0375 }, + limit: { context: 8192, input: 8000, output: 4096 }, + }, + "google/gemma-3-27b-it-fast": { + id: "google/gemma-3-27b-it-fast", + name: "Gemma-3-27b-it (Fast)", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 110000, input: 100000, output: 8192 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma-3-27b-it", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 110000, input: 100000, output: 8192 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi-K2-Thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, reasoning: 2.5, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi-K2-Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-05", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.4, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 200000, input: 190000, output: 8192 }, + }, + "moonshotai/Kimi-K2.5-fast": { + id: "moonshotai/Kimi-K2.5-fast", + name: "Kimi-K2.5-fast", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-15", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.5, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-15", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.5, reasoning: 2.5, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-02-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, reasoning: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "intfloat/e5-mistral-7b-instruct": { + id: "intfloat/e5-mistral-7b-instruct", + name: "e5-mistral-7b-instruct", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2023-12", + release_date: "2024-01-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + }, + }, + poe: { + id: "poe", + env: ["POE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.poe.com/v1", + name: "Poe", + doc: "https://creator.poe.com/docs/external-applications/openai-compatible-api", + models: { + "topazlabs-co/topazlabs": { + id: "topazlabs-co/topazlabs", + name: "TopazLabs", + family: "topazlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 204, output: 0 }, + }, + "novita/kimi-k2.5": { + id: "novita/kimi-k2.5", + name: "kimi-k2.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 262144 }, + }, + "novita/glm-4.7": { + id: "novita/glm-4.7", + name: "glm-4.7", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/glm-5": { + id: "novita/glm-5", + name: "glm-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/minimax-m2.1": { + id: "novita/minimax-m2.1", + name: "minimax-m2.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-26", + last_updated: "2025-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/glm-4.6": { + id: "novita/glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "novita/glm-4.6v": { + id: "novita/glm-4.6v", + name: "glm-4.6v", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 131000, output: 32768 }, + }, + "novita/deepseek-v3.2": { + id: "novita/deepseek-v3.2", + name: "DeepSeek-V3.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4, cache_read: 0.13 }, + limit: { context: 128000, output: 0 }, + }, + "novita/glm-4.7-flash": { + id: "novita/glm-4.7-flash", + name: "glm-4.7-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 65500 }, + }, + "novita/glm-4.7-n": { + id: "novita/glm-4.7-n", + name: "glm-4.7-n", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/kimi-k2-thinking": { + id: "novita/kimi-k2-thinking", + name: "kimi-k2-thinking", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 0 }, + }, + "fireworks-ai/kimi-k2.5-fw": { + id: "fireworks-ai/kimi-k2.5-fw", + name: "Kimi-K2.5-FW", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, input: 245760, output: 16384 }, + }, + "elevenlabs/elevenlabs-v2.5-turbo": { + id: "elevenlabs/elevenlabs-v2.5-turbo", + name: "ElevenLabs-v2.5-Turbo", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-28", + last_updated: "2024-10-28", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "elevenlabs/elevenlabs-v3": { + id: "elevenlabs/elevenlabs-v3", + name: "ElevenLabs-v3", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "elevenlabs/elevenlabs-music": { + id: "elevenlabs/elevenlabs-music", + name: "ElevenLabs-Music", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-29", + last_updated: "2025-08-29", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 2000, output: 0 }, + }, + "cerebras/gpt-oss-120b-cs": { + id: "cerebras/gpt-oss-120b-cs", + name: "gpt-oss-120b-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/llama-3.1-8b-cs": { + id: "cerebras/llama-3.1-8b-cs", + name: "llama-3.1-8b-cs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-13", + last_updated: "2025-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/qwen3-32b-cs": { + id: "cerebras/qwen3-32b-cs", + name: "qwen3-32b-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-15", + last_updated: "2025-05-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/qwen3-235b-2507-cs": { + id: "cerebras/qwen3-235b-2507-cs", + name: "qwen3-235b-2507-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/llama-3.3-70b-cs": { + id: "cerebras/llama-3.3-70b-cs", + name: "llama-3.3-70b-cs", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-13", + last_updated: "2025-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "stabilityai/stablediffusionxl": { + id: "stabilityai/stablediffusionxl", + name: "StableDiffusionXL", + family: "stable-diffusion", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-07-09", + last_updated: "2023-07-09", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 200, output: 0 }, + }, + "xai/grok-code-fast-1": { + id: "xai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-22", + last_updated: "2025-08-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 128000 }, + }, + "xai/grok-4-fast-reasoning": { + id: "xai/grok-4-fast-reasoning", + name: "Grok-4-Fast-Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "xai/grok-4.1-fast-non-reasoning": { + id: "xai/grok-4.1-fast-non-reasoning", + name: "Grok-4.1-Fast-Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok-4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 128000 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4.20-multi-agent": { + id: "xai/grok-4.20-multi-agent", + name: "Grok-4.20-Multi-Agent", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 128000, output: 0 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4-fast-non-reasoning": { + id: "xai/grok-4-fast-non-reasoning", + name: "Grok-4-Fast-Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "xai/grok-4.1-fast-reasoning": { + id: "xai/grok-4.1-fast-reasoning", + name: "Grok-4.1-Fast-Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 30000 }, + }, + "runwayml/runway": { + id: "runwayml/runway", + name: "Runway", + family: "runway", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 256, output: 0 }, + }, + "runwayml/runway-gen-4-turbo": { + id: "runwayml/runway-gen-4-turbo", + name: "Runway-Gen-4-Turbo", + family: "runway", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-09", + last_updated: "2025-05-09", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 256, output: 0 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/sora-2-pro": { + id: "openai/sora-2-pro", + name: "Sora-2-Pro", + family: "sora", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/chatgpt-4o-latest": { + id: "openai/chatgpt-4o-latest", + name: "ChatGPT-4o-Latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-14", + last_updated: "2024-08-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.5, output: 14 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5-Chat", + family: "gpt-codex", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 19, output: 150 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-aug": { + id: "openai/gpt-4o-aug", + name: "GPT-4o-Aug", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-11-21", + last_updated: "2024-11-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 9, cache_read: 1.1 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-4-classic-0314": { + id: "openai/gpt-4-classic-0314", + name: "GPT-4-Classic-0314", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-26", + last_updated: "2024-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 27, output: 54 }, + limit: { context: 8192, output: 4096 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045, output: 0.36, cache_read: 0.0045 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-10", + last_updated: "2026-02-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4-Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-13", + last_updated: "2023-09-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 9, output: 27 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 18, output: 72 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "o3-mini-high", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.54, cache_read: 0.068 }, + limit: { context: 124096, output: 4096 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "o4-mini-deep-research", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.68, output: 4, cache_read: 0.068 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/dall-e-3": { + id: "openai/dall-e-3", + name: "DALL-E-3", + family: "dall-e", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 800, output: 0 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4, cache_read: 0.25 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4-Nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 1.1, cache_read: 0.018 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-image-1": { + id: "openai/gpt-image-1", + name: "GPT-Image-1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-31", + last_updated: "2025-03-31", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-image-1-mini": { + id: "openai/gpt-image-1-mini", + name: "GPT-Image-1-Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2024-12-18", + last_updated: "2024-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 14, output: 54 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + cost: { input: 27, output: 160 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5-Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-13", + last_updated: "2023-09-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 1.4 }, + limit: { context: 16384, output: 2048 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9, output: 36, cache_read: 2.2 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "o1-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-03-19", + last_updated: "2025-03-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 140, output: 540 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-search": { + id: "openai/gpt-4o-search", + name: "GPT-4o-Search", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 9 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "pdf"], output: ["image"] }, + open_weights: false, + cost: { input: 2.2, output: 14, cache_read: 0.22 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.3-codex-spark": { + id: "openai/gpt-5.3-codex-spark", + name: "GPT-5.3-Codex-Spark", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-04", + last_updated: "2026-03-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-3.5-turbo-raw": { + id: "openai/gpt-3.5-turbo-raw", + name: "GPT-3.5-Turbo-Raw", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-27", + last_updated: "2023-09-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 1.4 }, + limit: { context: 4524, output: 2048 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36, cache_read: 0.022 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5-Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 14, output: 110 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/sora-2": { + id: "openai/sora-2", + name: "Sora-2", + family: "sora", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-instant": { + id: "openai/gpt-5.2-instant", + name: "GPT-5.2-Instant", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-mini-search": { + id: "openai/gpt-4o-mini-search", + name: "GPT-4o-mini-Search", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.54 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-image-1.5": { + id: "openai/gpt-image-1.5", + name: "gpt-image-1.5", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "GPT-3.5-Turbo-Instruct", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-20", + last_updated: "2023-09-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 1.8 }, + limit: { context: 3500, output: 1024 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-instant": { + id: "openai/gpt-5.1-instant", + name: "GPT-5.1-Instant", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.36, output: 1.4, cache_read: 0.09 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4-classic": { + id: "openai/gpt-4-classic", + name: "GPT-4-Classic", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-03-25", + last_updated: "2024-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 27, output: 54 }, + limit: { context: 8192, output: 4096 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-instant": { + id: "openai/gpt-5.3-instant", + name: "GPT-5.3-Instant", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "google/veo-3-fast": { + id: "google/veo-3-fast", + name: "Veo-3-Fast", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-13", + last_updated: "2025-10-13", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/veo-3.1-fast": { + id: "google/veo-3.1-fast", + name: "Veo-3.1-Fast", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-3.1-pro": { + id: "google/gemini-3.1-pro", + name: "Gemini-3.1-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/imagen-3-fast": { + id: "google/imagen-3-fast", + name: "Imagen-3-Fast", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-17", + last_updated: "2024-10-17", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.0-flash": { + id: "google/gemini-2.0-flash", + name: "Gemini-2.0-Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.42 }, + limit: { context: 990000, output: 8192 }, + }, + "google/gemini-deep-research": { + id: "google/gemini-deep-research", + name: "gemini-deep-research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 9.6 }, + limit: { context: 1048576, output: 0 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini-2.5-Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.87, output: 7, cache_read: 0.087 }, + limit: { context: 1065535, output: 65535 }, + }, + "google/imagen-3": { + id: "google/imagen-3", + name: "Imagen-3", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-15", + last_updated: "2024-10-15", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/nano-banana": { + id: "google/nano-banana", + name: "Nano-Banana", + family: "nano-banana", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, + limit: { context: 65536, output: 0 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini-2.5-Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-26", + last_updated: "2025-04-26", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, + limit: { context: 1065535, output: 65535 }, + }, + "google/gemini-3.1-flash-lite": { + id: "google/gemini-3.1-flash-lite", + name: "Gemini-3.1-Flash-Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash": { + id: "google/gemini-3-flash", + name: "Gemini-3-Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-07", + last_updated: "2025-10-07", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, cache_read: 0.04 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/veo-3.1": { + id: "google/veo-3.1", + name: "Veo-3.1", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/lyria": { + id: "google/lyria", + name: "Lyria", + family: "lyria", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "google/imagen-4-ultra": { + id: "google/imagen-4-ultra", + name: "Imagen-4-Ultra", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-24", + last_updated: "2025-05-24", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/nano-banana-pro": { + id: "google/nano-banana-pro", + name: "Nano-Banana-Pro", + family: "nano-banana", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 65536, output: 0 }, + }, + "google/gemini-3-pro": { + id: "google/gemini-3-pro", + name: "Gemini-3-Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 9.6, cache_read: 0.16 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/imagen-4-fast": { + id: "google/imagen-4-fast", + name: "Imagen-4-Fast", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/veo-3": { + id: "google/veo-3", + name: "Veo-3", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini-2.5-Flash-Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-19", + last_updated: "2025-06-19", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 1024000, output: 64000 }, + }, + "google/imagen-4": { + id: "google/imagen-4", + name: "Imagen-4", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemma-4-31b": { + id: "google/gemma-4-31b", + name: "Gemma-4-31B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 8192 }, + }, + "google/gemini-2.0-flash-lite": { + id: "google/gemini-2.0-flash-lite", + name: "Gemini-2.0-Flash-Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.052, output: 0.21 }, + limit: { context: 990000, output: 8192 }, + }, + "google/veo-2": { + id: "google/veo-2", + name: "Veo-2", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-02", + last_updated: "2024-12-02", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "lumalabs/ray2": { + id: "lumalabs/ray2", + name: "Ray2", + family: "ray", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 5000, output: 0 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude-Opus-4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, + limit: { context: 196608, output: 32000 }, + }, + "anthropic/claude-sonnet-3.5": { + id: "anthropic/claude-sonnet-3.5", + name: "Claude-Sonnet-3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-haiku-3": { + id: "anthropic/claude-haiku-3", + name: "Claude-Haiku-3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-03-09", + last_updated: "2024-03-09", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 1.1, cache_read: 0.021, cache_write: 0.26 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude-Opus-4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, + limit: { context: 983040, output: 128000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude-Sonnet-4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude-Sonnet-4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 32768 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude-Opus-4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-21", + last_updated: "2025-11-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, + limit: { context: 196608, output: 64000 }, + }, + "anthropic/claude-sonnet-3.7": { + id: "anthropic/claude-sonnet-3.7", + name: "Claude-Sonnet-3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 196608, output: 128000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude-Opus-4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, + limit: { context: 192512, output: 28672 }, + }, + "anthropic/claude-haiku-3.5": { + id: "anthropic/claude-haiku-3.5", + name: "Claude-Haiku-3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.68, output: 3.4, cache_read: 0.068, cache_write: 0.85 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude-Haiku-4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 4.3, cache_read: 0.085, cache_write: 1.1 }, + limit: { context: 192000, output: 64000 }, + }, + "anthropic/claude-sonnet-3.5-june": { + id: "anthropic/claude-sonnet-3.5-june", + name: "Claude-Sonnet-3.5-June", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-11-18", + last_updated: "2024-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude-Sonnet-4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 128000 }, + }, + "ideogramai/ideogram": { + id: "ideogramai/ideogram", + name: "Ideogram", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-04-03", + last_updated: "2024-04-03", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2": { + id: "ideogramai/ideogram-v2", + name: "Ideogram-v2", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-21", + last_updated: "2024-08-21", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2a-turbo": { + id: "ideogramai/ideogram-v2a-turbo", + name: "Ideogram-v2a-Turbo", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2a": { + id: "ideogramai/ideogram-v2a", + name: "Ideogram-v2a", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "trytako/tako": { + id: "trytako/tako", + name: "Tako", + family: "tako", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 2048, output: 0 }, + }, + "poetools/claude-code": { + id: "poetools/claude-code", + name: "claude-code", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-27", + last_updated: "2025-11-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + }, + }, + helicone: { + id: "helicone", + env: ["HELICONE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://ai-gateway.helicone.ai/v1", + name: "Helicone", + doc: "https://helicone.ai/models", + models: { + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 40 }, + limit: { context: 128000, output: 16400 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "xAI Grok 4.1 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gemma2-9b-it": { + id: "gemma2-9b-it", + name: "Google Gemma 2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-25", + last_updated: "2024-06-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Meta Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.39 }, + limit: { context: 128000, output: 16400 }, + }, + "llama-4-scout": { + id: "llama-4-scout", + name: "Meta Llama 4 Scout 17B 16E", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 131072, output: 8192 }, + }, + "chatgpt-4o-latest": { + id: "chatgpt-4o-latest", + name: "OpenAI ChatGPT-4o", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-14", + last_updated: "2024-08-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 20, cache_read: 2.5 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-3.5-sonnet-v2": { + id: "claude-3.5-sonnet-v2", + name: "Anthropic: Claude 3.5 Sonnet v2", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "hermes-2-pro-llama-3-8b": { + id: "hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-3.7-sonnet": { + id: "claude-3.7-sonnet", + name: "Anthropic: Claude 3.7 Sonnet", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-02", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "llama-prompt-guard-2-22m": { + id: "llama-prompt-guard-2-22m", + name: "Meta Llama Prompt Guard 2 22M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 512, output: 2 }, + }, + "o1-mini": { + id: "o1-mini", + name: "OpenAI: o1-mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-4.1-mini-2025-04-14": { + id: "gpt-4.1-mini-2025-04-14", + name: "OpenAI GPT-4.1 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.13 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.59 }, + limit: { context: 131072, output: 40960 }, + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Meta Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.7899999999999999 }, + limit: { context: 131072, output: 32678 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "OpenAI GPT-5 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "OpenAI GPT-5 Nano", + family: "gpt-nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.39999999999999997, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Google Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.19999999999999998 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Anthropic: Claude 3 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-03-07", + last_updated: "2024-03-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "llama-4-maverick": { + id: "llama-4-maverick", + name: "Meta Llama 4 Maverick 17B 128E", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 8192 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Anthropic: Claude Sonnet 4.5 (20250929)", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Google Gemini 2.5 Pro", + family: "gemini-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.3125, cache_write: 1.25 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-4.5-opus": { + id: "claude-4.5-opus", + name: "Anthropic: Claude Opus 4.5", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "xAI Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 30000 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Perplexity Sonar Pro", + family: "sonar-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 4096 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral-Large", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "o3-pro": { + id: "o3-pro", + name: "OpenAI o3 Pro", + family: "o-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Anthropic: Claude Opus 4.1", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "OpenAI GPT-4o-mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-4.5-haiku": { + id: "claude-4.5-haiku", + name: "Anthropic: Claude 4.5 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, + limit: { context: 200000, output: 8192 }, + }, + "kimi-k2-0711": { + id: "kimi-k2-0711", + name: "Kimi K2 (07/11)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5700000000000001, output: 2.3 }, + limit: { context: 131072, output: 16384 }, + }, + "o4-mini": { + id: "o4-mini", + name: "OpenAI o4 Mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, + limit: { context: 200000, output: 100000 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Sonar Deep Research", + family: "sonar-deep-research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 4096 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Google Gemma 3 12B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, + limit: { context: 131072, output: 8192 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Google Gemini 2.5 Flash", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.3 }, + limit: { context: 1048576, output: 65535 }, + }, + "deepseek-tng-r1t2-chimera": { + id: "deepseek-tng-r1t2-chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-02", + last_updated: "2025-07-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 130000, output: 163840 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "OpenAI: GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Anthropic: Claude Sonnet 4", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "xAI Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-25", + last_updated: "2024-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "OpenAI GPT-5.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, + limit: { context: 128000, output: 64000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "xAI: Grok 4 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + o1: { + id: "o1", + name: "OpenAI: o1", + family: "o", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "llama-3.1-8b-instant": { + id: "llama-3.1-8b-instant", + name: "Meta Llama 3.1 8B Instant", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.08 }, + limit: { context: 131072, output: 32678 }, + }, + "o3-mini": { + id: "o3-mini", + name: "OpenAI o3 Mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2023-10", + release_date: "2023-10-01", + last_updated: "2023-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + sonar: { + id: "sonar", + name: "Perplexity Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127000, output: 4096 }, + }, + "kimi-k2-0905": { + id: "kimi-k2-0905", + name: "Kimi K2 (09/05)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2, cache_read: 0.39999999999999997 }, + limit: { context: 262144, output: 16384 }, + }, + "mistral-small": { + id: "mistral-small", + name: "Mistral Small", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-02", + release_date: "2024-02-26", + last_updated: "2024-02-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 75, output: 200 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.29 }, + limit: { context: 41000, output: 41000 }, + }, + "codex-mini-latest": { + id: "codex-mini-latest", + name: "OpenAI Codex Mini Latest", + family: "gpt-codex-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4": { + id: "grok-4", + name: "xAI Grok 4", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-09", + last_updated: "2024-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 256000 }, + }, + "qwen3-235b-a22b-thinking": { + id: "qwen3-235b-a22b-thinking", + name: "Qwen3 235B A22B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.9000000000000004 }, + limit: { context: 262144, output: 81920 }, + }, + "qwen2.5-coder-7b-fast": { + id: "qwen2.5-coder-7b-fast", + name: "Qwen2.5 Coder 7B fast", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-15", + last_updated: "2024-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 32000, output: 8192 }, + }, + "llama-3.1-8b-instruct-turbo": { + id: "llama-3.1-8b-instruct-turbo", + name: "Meta Llama 3.1 8B Instruct Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "Zai GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.44999999999999996, output: 1.5 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "OpenAI: GPT-5 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Anthropic: Claude Opus 4.1 (20250805)", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "OpenAI GPT-5.1 Chat", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Anthropic: Claude 4.5 Haiku (20251001)", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, + limit: { context: 200000, output: 8192 }, + }, + "sonar-reasoning": { + id: "sonar-reasoning", + name: "Perplexity Sonar Reasoning", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 127000, output: 4096 }, + }, + "claude-opus-4": { + id: "claude-opus-4", + name: "Anthropic: Claude Opus 4", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "llama-prompt-guard-2-86m": { + id: "llama-prompt-guard-2-86m", + name: "Meta Llama Prompt Guard 2 86M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 512, output: 2 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "OpenAI GPT-4.1 Nano", + family: "gpt-nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09999999999999999, output: 0.39999999999999997, cache_read: 0.024999999999999998 }, + limit: { context: 1047576, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09999999999999999, output: 0.3 }, + limit: { context: 262144, output: 262144 }, + }, + "claude-3.5-haiku": { + id: "claude-3.5-haiku", + name: "Anthropic: Claude 3.5 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7999999999999999, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "xAI Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 131072 }, + }, + o3: { + id: "o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "OpenAI GPT-OSS 20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.19999999999999998 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "OpenAI: GPT-5 Pro", + family: "gpt-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 128000, output: 32768 }, + }, + "llama-guard-4": { + id: "llama-guard-4", + name: "Meta Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.21 }, + limit: { context: 131072, output: 1024 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "OpenAI GPT-4o", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-vl-235b-a22b-instruct": { + id: "qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Google Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.09999999999999999, + output: 0.39999999999999997, + cache_read: 0.024999999999999998, + cache_write: 0.09999999999999999, + }, + limit: { context: 1048576, output: 65535 }, + }, + "qwen3-coder": { + id: "qwen3-coder", + name: "Qwen3 Coder 480B A35B Instruct Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 0.95 }, + limit: { context: 262144, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "OpenAI GPT-5", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "ernie-4.5-21b-a3b-thinking": { + id: "ernie-4.5-21b-a3b-thinking", + name: "Baidu Ernie 4.5 21B A3B Thinking", + family: "ernie", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 128000, output: 8000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "OpenAI GPT-OSS 120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "OpenAI GPT-5 Chat Latest", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-09", + release_date: "2024-09-30", + last_updated: "2024-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-4.5-sonnet": { + id: "claude-4.5-sonnet", + name: "Anthropic: Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, + limit: { context: 128000, output: 8192 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Meta Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.049999999999999996 }, + limit: { context: 16384, output: 16384 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "OpenAI GPT-4.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 2 }, + limit: { context: 256000, output: 262144 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "OpenAI GPT-4.1 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-v3.1-terminus": { + id: "deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1, cache_read: 0.21600000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "OpenAI: GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-3": { + id: "grok-3", + name: "xAI Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 131072 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "xAI Grok 4 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Perplexity Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 4096 }, + }, + }, + }, + "ollama-cloud": { + id: "ollama-cloud", + env: ["OLLAMA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://ollama.com/v1", + name: "Ollama Cloud", + doc: "https://docs.ollama.com/cloud", + models: { + "minimax-m2.7": { + id: "minimax-m2.7", + name: "minimax-m2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "gpt-oss:20b": { + id: "gpt-oss:20b", + name: "gpt-oss:20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "kimi-k2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "glm-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-22", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "gemma4:31b": { + id: "gemma4:31b", + name: "gemma4:31b", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 8192 }, + }, + "gpt-oss:120b": { + id: "gpt-oss:120b", + name: "gpt-oss:120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 32768 }, + }, + "qwen3.5:397b": { + id: "qwen3.5:397b", + name: "qwen3.5:397b", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + release_date: "2026-02-15", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 81920 }, + }, + "deepseek-v3.1:671b": { + id: "deepseek-v3.1:671b", + name: "deepseek-v3.1:671b", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-21", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 163840 }, + }, + "glm-5": { + id: "glm-5", + name: "glm-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "qwen3-vl:235b-instruct": { + id: "qwen3-vl:235b-instruct", + name: "qwen3-vl:235b-instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-09-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 131072 }, + }, + "gemma3:4b": { + id: "gemma3:4b", + name: "gemma3:4b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2026-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 1048576, output: 65536 }, + }, + "ministral-3:14b": { + id: "ministral-3:14b", + name: "ministral-3:14b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "minimax-m2", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-10-23", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 128000 }, + }, + "qwen3-next:80b": { + id: "qwen3-next:80b", + name: "qwen3-next:80b", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-09-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-vl:235b": { + id: "qwen3-vl:235b", + name: "qwen3-vl:235b", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2025-09-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 32768 }, + }, + "rnj-1:8b": { + id: "rnj-1:8b", + name: "rnj-1:8b", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-06", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 32768, output: 4096 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "minimax-m2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-23", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "glm-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-03-27", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "mistral-large-3:675b": { + id: "mistral-large-3:675b", + name: "mistral-large-3:675b", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-12-02", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "ministral-3:8b": { + id: "ministral-3:8b", + name: "ministral-3:8b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "gemma3:12b": { + id: "gemma3:12b", + name: "gemma3:12b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-coder:480b": { + id: "qwen3-coder:480b", + name: "qwen3-coder:480b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-22", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "nemotron-3-nano:30b": { + id: "nemotron-3-nano:30b", + name: "nemotron-3-nano:30b", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 1048576, output: 131072 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "glm-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-09-29", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "ministral-3:3b": { + id: "ministral-3:3b", + name: "ministral-3:3b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-10-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "gemma3:27b": { + id: "gemma3:27b", + name: "gemma3:27b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2025-07-27", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "devstral-2:123b": { + id: "devstral-2:123b", + name: "devstral-2:123b", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-09", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "cogito-2.1:671b": { + id: "cogito-2.1:671b", + name: "cogito-2.1:671b", + family: "cogito", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-11-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 32000 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "qwen3-coder-next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2026-02-02", + last_updated: "2026-02-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "nemotron-3-super": { + id: "nemotron-3-super", + name: "nemotron-3-super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "minimax-m2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "deepseek-v3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-06-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 65536 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "kimi-k2-thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "devstral-small-2:24b": { + id: "devstral-small-2:24b", + name: "devstral-small-2:24b", + family: "devstral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-12-09", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2:1t": { + id: "kimi-k2:1t", + name: "kimi-k2:1t", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "zai-coding-plan": { + id: "zai-coding-plan", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.z.ai/api/coding/paas/v4", + name: "Z.AI Coding Plan", + doc: "https://docs.z.ai/devpack/overview", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + }, + }, + "amazon-bedrock": { + id: "amazon-bedrock", + env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"], + npm: "@ai-sdk/amazon-bedrock", + name: "Amazon Bedrock", + doc: "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + models: { + "anthropic.claude-opus-4-1-20250805-v1:0": { + id: "anthropic.claude-opus-4-1-20250805-v1:0", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic.claude-3-5-sonnet-20241022-v2:0": { + id: "anthropic.claude-3-5-sonnet-20241022-v2:0", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "openai.gpt-oss-safeguard-120b": { + id: "openai.gpt-oss-safeguard-120b", + name: "GPT OSS Safeguard 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia.nemotron-nano-3-30b": { + id: "nvidia.nemotron-nano-3-30b", + name: "NVIDIA Nemotron Nano 3 30B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 128000, output: 4096 }, + }, + "meta.llama3-2-90b-instruct-v1:0": { + id: "meta.llama3-2-90b-instruct-v1:0", + name: "Llama 3.2 90B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia.nemotron-super-3-120b": { + id: "nvidia.nemotron-super-3-120b", + name: "NVIDIA Nemotron 3 Super 120B A12B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.65 }, + limit: { context: 262144, output: 131072 }, + }, + "writer.palmyra-x5-v1:0": { + id: "writer.palmyra-x5-v1:0", + name: "Palmyra X5", + family: "palmyra", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 6 }, + limit: { context: 1040000, output: 8192 }, + }, + "mistral.ministral-3-8b-instruct": { + id: "mistral.ministral-3-8b-instruct", + name: "Ministral 3 8B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-3-5-sonnet-20240620-v1:0": { + id: "anthropic.claude-3-5-sonnet-20240620-v1:0", + name: "Claude Sonnet 3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "mistral.ministral-3-3b-instruct": { + id: "mistral.ministral-3-3b-instruct", + name: "Ministral 3 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 256000, output: 8192 }, + }, + "eu.anthropic.claude-opus-4-6-v1": { + id: "eu.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (EU)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "amazon.nova-premier-v1:0": { + id: "amazon.nova-premier-v1:0", + name: "Nova Premier", + family: "nova", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 12.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "eu.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "eu.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.devstral-2-123b": { + id: "mistral.devstral-2-123b", + name: "Devstral 2 123B", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, output: 8192 }, + }, + "us.anthropic.claude-opus-4-20250514-v1:0": { + id: "us.anthropic.claude-opus-4-20250514-v1:0", + name: "Claude Opus 4 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "global.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "global.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (Global)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.voxtral-small-24b-2507": { + id: "mistral.voxtral-small-24b-2507", + name: "Voxtral Small 24B 2507", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 32000, output: 8192 }, + }, + "google.gemma-3-12b-it": { + id: "google.gemma-3-12b-it", + name: "Google Gemma 3 12B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, + limit: { context: 131072, output: 8192 }, + }, + "amazon.nova-pro-v1:0": { + id: "amazon.nova-pro-v1:0", + name: "Nova Pro", + family: "nova-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, + limit: { context: 300000, output: 8192 }, + }, + "anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "minimax.minimax-m2": { + id: "minimax.minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204608, output: 128000 }, + }, + "mistral.pixtral-large-2502-v1:0": { + id: "mistral.pixtral-large-2502-v1:0", + name: "Pixtral Large (25.02)", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-08", + last_updated: "2025-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 8192 }, + }, + "meta.llama4-maverick-17b-instruct-v1:0": { + id: "meta.llama4-maverick-17b-instruct-v1:0", + name: "Llama 4 Maverick 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.97 }, + limit: { context: 1000000, output: 16384 }, + }, + "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "us.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (US)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "amazon.nova-micro-v1:0": { + id: "amazon.nova-micro-v1:0", + name: "Nova Micro", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, + limit: { context: 128000, output: 8192 }, + }, + "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-sonnet-4-6": { + id: "anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "openai.gpt-oss-20b-1:0": { + id: "openai.gpt-oss-20b-1:0", + name: "gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "us.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "zai.glm-5": { + id: "zai.glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 101376 }, + }, + "qwen.qwen3-32b-v1:0": { + id: "qwen.qwen3-32b-v1:0", + name: "Qwen3 32B (dense)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 16384, output: 16384 }, + }, + "deepseek.v3.2": { + id: "deepseek.v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 1.85 }, + limit: { context: 163840, output: 81920 }, + }, + "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (EU)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "zai.glm-4.7-flash": { + id: "zai.glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 131072 }, + }, + "amazon.nova-2-lite-v1:0": { + id: "amazon.nova-2-lite-v1:0", + name: "Nova 2 Lite", + family: "nova", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 2.75 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-opus-4-5-20251101-v1:0": { + id: "anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen.qwen3-coder-480b-a35b-v1:0": { + id: "qwen.qwen3-coder-480b-a35b-v1:0", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.8 }, + limit: { context: 131072, output: 65536 }, + }, + "meta.llama3-2-1b-instruct-v1:0": { + id: "meta.llama3-2-1b-instruct-v1:0", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 4096 }, + }, + "amazon.nova-lite-v1:0": { + id: "amazon.nova-lite-v1:0", + name: "Nova Lite", + family: "nova-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, + limit: { context: 300000, output: 8192 }, + }, + "meta.llama3-1-8b-instruct-v1:0": { + id: "meta.llama3-1-8b-instruct-v1:0", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 4096 }, + }, + "global.anthropic.claude-sonnet-4-6": { + id: "global.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "us.anthropic.claude-sonnet-4-6": { + id: "us.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "global.anthropic.claude-opus-4-6-v1": { + id: "global.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (Global)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "google.gemma-3-27b-it": { + id: "google.gemma-3-27b-it", + name: "Google Gemma 3 27B Instruct", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-27", + last_updated: "2025-07-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 202752, output: 8192 }, + }, + "global.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (Global)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "google.gemma-3-4b-it": { + id: "google.gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.08 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-opus-4-6-v1": { + id: "us.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "meta.llama4-scout-17b-instruct-v1:0": { + id: "meta.llama4-scout-17b-instruct-v1:0", + name: "Llama 4 Scout 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 3500000, output: 16384 }, + }, + "us.anthropic.claude-opus-4-1-20250805-v1:0": { + id: "us.anthropic.claude-opus-4-1-20250805-v1:0", + name: "Claude Opus 4.1 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "deepseek.v3-v1:0": { + id: "deepseek.v3-v1:0", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 163840, output: 81920 }, + }, + "mistral.magistral-small-2509": { + id: "mistral.magistral-small-2509", + name: "Magistral Small 1.2", + family: "magistral", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 40000 }, + }, + "qwen.qwen3-next-80b-a3b": { + id: "qwen.qwen3-next-80b-a3b", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "zai.glm-4.7": { + id: "zai.glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "moonshot.kimi-k2-thinking": { + id: "moonshot.kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 256000, output: 256000 }, + }, + "us.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "us.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.ministral-3-14b-instruct": { + id: "mistral.ministral-3-14b-instruct", + name: "Ministral 14B 3.0", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-3-haiku-20240307-v1:0": { + id: "anthropic.claude-3-haiku-20240307-v1:0", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-02", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25 }, + limit: { context: 200000, output: 4096 }, + }, + "global.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "global.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "deepseek.r1-v1:0": { + id: "deepseek.r1-v1:0", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 32768 }, + }, + "meta.llama3-1-405b-instruct-v1:0": { + id: "meta.llama3-1-405b-instruct-v1:0", + name: "Llama 3.1 405B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 2.4 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral.voxtral-mini-3b-2507": { + id: "mistral.voxtral-mini-3b-2507", + name: "Voxtral Mini 3B 2507", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["audio", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 4096 }, + }, + "eu.anthropic.claude-sonnet-4-6": { + id: "eu.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "openai.gpt-oss-120b-1:0": { + id: "openai.gpt-oss-120b-1:0", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia.nemotron-nano-12b-v2": { + id: "nvidia.nemotron-nano-12b-v2", + name: "NVIDIA Nemotron Nano 12B v2 VL BF16", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "minimax.minimax-m2.5": { + id: "minimax.minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 98304 }, + }, + "meta.llama3-3-70b-instruct-v1:0": { + id: "meta.llama3-3-70b-instruct-v1:0", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "meta.llama3-1-70b-instruct-v1:0": { + id: "meta.llama3-1-70b-instruct-v1:0", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "meta.llama3-2-3b-instruct-v1:0": { + id: "meta.llama3-2-3b-instruct-v1:0", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 131000, output: 4096 }, + }, + "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-opus-4-20250514-v1:0": { + id: "anthropic.claude-opus-4-20250514-v1:0", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "eu.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (EU)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-sonnet-4-20250514-v1:0": { + id: "anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "meta.llama3-2-11b-instruct-v1:0": { + id: "meta.llama3-2-11b-instruct-v1:0", + name: "Llama 3.2 11B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.16 }, + limit: { context: 128000, output: 4096 }, + }, + "moonshotai.kimi-k2.5": { + id: "moonshotai.kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 256000, output: 256000 }, + }, + "openai.gpt-oss-safeguard-20b": { + id: "openai.gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-opus-4-6-v1": { + id: "anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "qwen.qwen3-coder-30b-a3b-v1:0": { + id: "qwen.qwen3-coder-30b-a3b-v1:0", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 131072 }, + }, + "minimax.minimax-m2.1": { + id: "minimax.minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen.qwen3-vl-235b-a22b": { + id: "qwen.qwen3-vl-235b-a22b", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen.qwen3-coder-next": { + id: "qwen.qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.8 }, + limit: { context: 131072, output: 65536 }, + }, + "anthropic.claude-3-5-haiku-20241022-v1:0": { + id: "anthropic.claude-3-5-haiku-20241022-v1:0", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "nvidia.nemotron-nano-9b-v2": { + id: "nvidia.nemotron-nano-9b-v2", + name: "NVIDIA Nemotron Nano 9B v2", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.23 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral.mistral-large-3-675b-instruct": { + id: "mistral.mistral-large-3-675b-instruct", + name: "Mistral Large 3", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 8192 }, + }, + "qwen.qwen3-235b-a22b-2507-v1:0": { + id: "qwen.qwen3-235b-a22b-2507-v1:0", + name: "Qwen3 235B A22B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 262144, output: 131072 }, + }, + "anthropic.claude-3-7-sonnet-20250219-v1:0": { + id: "anthropic.claude-3-7-sonnet-20250219-v1:0", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "writer.palmyra-x4-v1:0": { + id: "writer.palmyra-x4-v1:0", + name: "Palmyra X4", + family: "palmyra", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 122880, output: 8192 }, + }, + }, + }, + "the-grid-ai": { + id: "the-grid-ai", + env: ["THEGRIDAI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.thegrid.ai/v1", + name: "The Grid AI", + doc: "https://thegrid.ai/docs", + models: { + "text-prime": { + id: "text-prime", + name: "Text Prime", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 30000 }, + status: "beta", + }, + "text-standard": { + id: "text-standard", + name: "Text Standard", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + status: "beta", + }, + "text-max": { + id: "text-max", + name: "Text Max", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-24", + last_updated: "2026-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 128000 }, + status: "beta", + }, + }, + }, + baseten: { + id: "baseten", + env: ["BASETEN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://inference.baseten.co/v1", + name: "Baseten", + doc: "https://docs.baseten.co/development/model-apis/overview", + models: { + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 200000 }, + }, + "nvidia/Nemotron-120B-A12B": { + id: "nvidia/Nemotron-120B-A12B", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.75 }, + limit: { context: 262144, output: 32678 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 164000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.77, output: 0.77 }, + limit: { context: 164000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-01", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 163800, output: 131100 }, + status: "deprecated", + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 128000, output: 128000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-09-05", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-30", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 8192 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204000, output: 204000 }, + }, + }, + }, + "zhipuai-coding-plan": { + id: "zhipuai-coding-plan", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://open.bigmodel.cn/api/coding/paas/v4", + name: "Zhipu AI Coding Plan", + doc: "https://docs.bigmodel.cn/cn/coding-plan/overview", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.6v-flash": { + id: "glm-4.6v-flash", + name: "GLM-4.6V-Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "alibaba-coding-plan": { + id: "alibaba-coding-plan", + env: ["ALIBABA_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding-intl.dashscope.aliyuncs.com/v1", + name: "Alibaba Coding Plan", + doc: "https://www.alibabacloud.com/help/en/model-studio/coding-plan", + models: { + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 196608, input: 196601, output: 24576 }, + }, + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + }, + }, + venice: { + id: "venice", + env: ["VENICE_API_KEY"], + npm: "venice-ai-sdk-provider", + name: "Venice AI", + doc: "https://docs.venice.ai", + models: { + "openai-gpt-4o-mini-2024-07-18": { + id: "openai-gpt-4o-mini-2024-07-18", + name: "GPT-4o Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-28", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1875, output: 0.75, cache_read: 0.09375 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-next-80b": { + id: "qwen3-next-80b", + name: "Qwen 3 Next 80b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.9 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen 3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-41-fast": { + id: "grok-41-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-12-01", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.57, cache_read: 0.06 }, + limit: { context: 1000000, output: 30000 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.6, output: 18, cache_read: 0.36, cache_write: 4.5 }, + limit: { context: 1000000, output: 64000 }, + }, + "nvidia-nemotron-cascade-2-30b-a3b": { + id: "nvidia-nemotron-cascade-2-30b-a3b", + name: "Nemotron Cascade 2 30B A3B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-24", + last_updated: "2026-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.8 }, + limit: { context: 256000, output: 32768 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-19", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 3.75, cache_read: 0.07 }, + limit: { context: 256000, output: 65536 }, + }, + "qwen3-coder-480b-a35b-instruct-turbo": { + id: "qwen3-coder-480b-a35b-instruct-turbo", + name: "Qwen 3 Coder 480B Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, + limit: { context: 256000, output: 65536 }, + }, + "qwen3-5-397b-a17b": { + id: "qwen3-5-397b-a17b", + name: "Qwen 3.5 397B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5 }, + limit: { context: 128000, output: 32768 }, + }, + "zai-org-glm-4.7": { + id: "zai-org-glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-24", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.65, cache_read: 0.11 }, + limit: { context: 198000, output: 16384 }, + }, + "openai-gpt-54": { + id: "openai-gpt-54", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.13, output: 18.8, cache_read: 0.313 }, + limit: { context: 1000000, output: 131072 }, + }, + "zai-org-glm-4.7-flash": { + id: "zai-org-glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 16384 }, + }, + "nvidia-nemotron-3-nano-30b-a3b": { + id: "nvidia-nemotron-3-nano-30b-a3b", + name: "NVIDIA Nemotron 3 Nano 30B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3 VL 235B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-16", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "openai-gpt-53-codex": { + id: "openai-gpt-53-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-45": { + id: "claude-sonnet-45", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-01-15", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.75, output: 18.75, cache_read: 0.375, cache_write: 4.69 }, + limit: { context: 198000, output: 49500 }, + }, + "openai-gpt-52": { + id: "openai-gpt-52", + name: "GPT-5.2", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-12-13", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 256000, output: 65536 }, + }, + "mistral-small-3-2-24b-instruct": { + id: "mistral-small-3-2-24b-instruct", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-15", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09375, output: 0.25 }, + limit: { context: 256000, output: 16384 }, + }, + "claude-opus-45": { + id: "claude-opus-45", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-06", + last_updated: "2026-01-28", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, + limit: { context: 198000, output: 49500 }, + }, + "grok-4-20-multi-agent-beta": { + id: "grok-4-20-multi-agent-beta", + name: "Grok 4.20 Multi-Agent Beta", + family: "grok-beta", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.27, + output: 6.8, + cache_read: 0.23, + context_over_200k: { input: 4.53, output: 13.6, cache_read: 0.23 }, + }, + limit: { context: 2000000, output: 128000 }, + }, + "minimax-m27": { + id: "minimax-m27", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.375, output: 1.5, cache_read: 0.075 }, + limit: { context: 198000, output: 32768 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen 3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.87, cache_read: 0.03 }, + limit: { context: 256000, output: 10000 }, + }, + "qwen3-5-35b-a3b": { + id: "qwen3-5-35b-a3b", + name: "Qwen 3.5 35B A3B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-25", + last_updated: "2026-03-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3125, output: 1.25, cache_read: 0.15625 }, + limit: { context: 256000, output: 65536 }, + }, + "mercury-2": { + id: "mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-20", + last_updated: "2026-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3125, output: 0.9375, cache_read: 0.03125 }, + limit: { context: 128000, output: 50000 }, + }, + "google-gemma-3-27b-it": { + id: "google-gemma-3-27b-it", + name: "Google Gemma 3 27B Instruct", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-04", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 198000, output: 16384 }, + }, + "olafangensan-glm-4.7-flash-heretic": { + id: "olafangensan-glm-4.7-flash-heretic", + name: "GLM 4.7 Flash Heretic", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.8 }, + limit: { context: 200000, output: 24000 }, + }, + "openai-gpt-52-codex": { + id: "openai-gpt-52-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-01-15", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 256000, output: 65536 }, + }, + "venice-uncensored-role-play": { + id: "venice-uncensored-role-play", + name: "Venice Role Play Uncensored", + family: "venice", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-20", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 128000, output: 4096 }, + }, + "zai-org-glm-5": { + id: "zai-org-glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 198000, output: 32000 }, + }, + "zai-org-glm-4.6": { + id: "zai-org-glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2024-04-01", + last_updated: "2026-04-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 2.75, cache_read: 0.3 }, + limit: { context: 198000, output: 16384 }, + }, + "mistral-small-2603": { + id: "mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1875, output: 0.75 }, + limit: { context: 256000, output: 65536 }, + }, + "openai-gpt-oss-120b": { + id: "openai-gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-5-9b": { + id: "qwen3-5-9b", + name: "Qwen 3.5 9B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-04-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 256000, output: 32768 }, + }, + "openai-gpt-54-pro": { + id: "openai-gpt-54-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 37.5, output: 225, context_over_200k: { input: 75, output: 337.5 } }, + limit: { context: 1000000, output: 128000 }, + }, + "aion-labs.aion-2-0": { + id: "aion-labs.aion-2-0", + name: "Aion 2.0", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-24", + last_updated: "2026-03-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2, cache_read: 0.25 }, + limit: { context: 128000, output: 32768 }, + }, + "openai-gpt-54-mini": { + id: "openai-gpt-54-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9375, output: 5.625, cache_read: 0.09375 }, + limit: { context: 400000, output: 128000 }, + }, + "google.gemma-4-31b-it": { + id: "google.gemma-4-31b-it", + name: "Google Gemma 4 31B Instruct", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-03", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.175, output: 0.5 }, + limit: { context: 256000, output: 8192 }, + }, + "minimax-m25": { + id: "minimax-m25", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.34, output: 1.19, cache_read: 0.04 }, + limit: { context: 198000, output: 32768 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen 3 Coder 480b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 3 }, + limit: { context: 256000, output: 65536 }, + }, + "zai-org-glm-5-1": { + id: "zai-org-glm-5-1", + name: "GLM 5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-07", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.75, output: 5.5, cache_read: 0.325 }, + limit: { context: 200000, output: 24000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, + limit: { context: 1000000, output: 128000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-04", + last_updated: "2026-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.33, output: 0.48, cache_read: 0.16 }, + limit: { context: 160000, output: 32768 }, + }, + "venice-uncensored": { + id: "venice-uncensored", + name: "Venice Uncensored 1.1", + family: "venice", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-03-18", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.9 }, + limit: { context: 32000, output: 8192 }, + }, + "qwen-3-6-plus": { + id: "qwen-3-6-plus", + name: "Qwen 3.6 Plus Uncensored", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-06", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.625, + output: 3.75, + cache_read: 0.0625, + cache_write: 0.78, + context_over_200k: { input: 2.5, output: 7.5 }, + }, + limit: { context: 1000000, output: 65536 }, + }, + "google.gemma-4-26b-a4b-it": { + id: "google.gemma-4-26b-a4b-it", + name: "Google Gemma 4 26B A4B Instruct", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1625, output: 0.5 }, + limit: { context: 256000, output: 8192 }, + }, + "openai-gpt-4o-2024-11-20": { + id: "openai-gpt-4o-2024-11-20", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-28", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.125, output: 12.5 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-3.3-70b": { + id: "llama-3.3-70b", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 128000, output: 4096 }, + }, + "kimi-k2-5": { + id: "kimi-k2-5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-01-27", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 3.5, cache_read: 0.11 }, + limit: { context: 256000, output: 65536 }, + }, + "grok-4-20-beta": { + id: "grok-4-20-beta", + name: "Grok 4.20 Beta", + family: "grok-beta", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.27, + output: 6.8, + cache_read: 0.23, + context_over_200k: { input: 4.53, output: 13.6, cache_read: 0.23 }, + }, + limit: { context: 2000000, output: 128000 }, + }, + "minimax-m21": { + id: "minimax-m21", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, + limit: { context: 198000, output: 32768 }, + }, + "llama-3.2-3b": { + id: "llama-3.2-3b", + name: "Llama 3.2 3B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-10-03", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "arcee-trinity-large-thinking": { + id: "arcee-trinity-large-thinking", + name: "Trinity Large Thinking", + family: "trinity", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3125, output: 1.125, cache_read: 0.075 }, + limit: { context: 256000, output: 65536 }, + }, + "hermes-3-llama-3.1-405b": { + id: "hermes-3-llama-3.1-405b", + name: "Hermes 3 Llama 3.1 405b", + family: "hermes", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-25", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.1, output: 3 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-3-1-pro-preview": { + id: "gemini-3-1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.5, + cache_write: 0.5, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1000000, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-12-10", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 3.2, cache_read: 0.375 }, + limit: { context: 256000, output: 65536 }, + }, + "claude-opus-4-6-fast": { + id: "claude-opus-4-6-fast", + name: "Claude Opus 4.6 Fast", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 36, output: 180, cache_read: 3.6, cache_write: 45 }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + aihubmix: { + id: "aihubmix", + env: ["AIHUBMIX_API_KEY"], + npm: "@aihubmix/ai-sdk-provider", + name: "AIHubMix", + doc: "https://docs.aihubmix.com", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "coding-glm-5-free": { + id: "coding-glm-5-free", + name: "Coding-GLM-5-Free", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 5.5, cache_read: 0.11, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "coding-glm-4.7": { + id: "coding-glm-4.7", + name: "Coding-GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.12 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-07", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, + limit: { context: 204800, output: 131072 }, + }, + "gemini-3-pro-preview-search": { + id: "gemini-3-pro-preview-search", + name: "Gemini 3 Pro Preview Search", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.5 }, + limit: { context: 1000000, output: 65000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.88, output: 2.82 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "Kimi-K2-0905": { + id: "Kimi-K2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5-Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2, cache_read: 0.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.5 }, + limit: { context: 1000000, output: 65000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 5, cache_read: 0.31 }, + limit: { context: 2000000, output: 65000 }, + }, + "coding-minimax-m2.1-free": { + id: "coding-minimax-m2.1-free", + name: "Coding MiniMax M2.1 Free", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 82.5, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "deepseek-v3.2-fast": { + id: "deepseek-v3.2-fast", + name: "DeepSeek-V3.2-Fast", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.1, output: 3.29 }, + limit: { context: 128000, output: 128000 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.15 }, + limit: { context: 204800, output: 131072 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-09", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.75 }, + limit: { context: 200000, output: 65536 }, + }, + "deepseek-v3.2-think": { + id: "deepseek-v3.2-think", + name: "DeepSeek-V3.2-Think", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 131000, output: 64000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.02 }, + limit: { context: 1000000, output: 65000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-6-think": { + id: "claude-opus-4-6-think", + name: "Claude Opus 4.6 Think", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 128000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 32000 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.41 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 1.37 }, + limit: { context: 262144, output: 65536 }, + }, + "coding-glm-4.7-free": { + id: "coding-glm-4.7-free", + name: "Coding GLM 4.7 Free", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.55 }, + limit: { context: 262144, input: 262144, output: 65536 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.82, output: 3.29 }, + limit: { context: 262144, output: 131000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.15 }, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 131000, output: 64000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5-Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 7, output: 28, cache_read: 3.5 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.3, output: 16.5, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 20, cache_read: 2.5 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen 3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.66 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-6-think": { + id: "claude-sonnet-4-6-think", + name: "Claude Sonnet 4.6 Think", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + cerebras: { + id: "cerebras", + env: ["CEREBRAS_API_KEY"], + npm: "@ai-sdk/cerebras", + name: "Cerebras", + doc: "https://inference-docs.cerebras.ai/models/overview", + models: { + "llama3.1-8b": { + id: "llama3.1-8b", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 32000, output: 8000 }, + }, + "qwen-3-235b-a22b-instruct-2507": { + id: "qwen-3-235b-a22b-instruct-2507", + name: "Qwen 3 235B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.2 }, + limit: { context: 131000, output: 32000 }, + }, + "zai-glm-4.7": { + id: "zai-glm-4.7", + name: "Z.AI GLM-4.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.25, output: 2.75, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 40000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.69 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + firmware: { + id: "firmware", + env: ["FIRMWARE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://app.frogbot.ai/api/v1", + name: "Firmware", + doc: "https://docs.frogbot.ai", + models: { + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi-K2.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 128000 }, + }, + "gpt-5-4": { + id: "gpt-5-4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 272000, output: 128000 }, + }, + "deepseek-v3-2": { + id: "deepseek-v3-2", + name: "DeepSeek v3.2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 1.68, cache_read: 0.28 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-17", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "zai-glm-5-1": { + id: "zai-glm-5-1", + name: "GLM-5", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-02-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 198000, output: 8192 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-17", + last_updated: "2025-07-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 128000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-3-6-plus": { + id: "qwen-3-6-plus", + name: "Qwen 3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.1 }, + limit: { context: 1000000, output: 64000 }, + }, + "minimax-m2-5": { + id: "minimax-m2-5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-01-15", + last_updated: "2025-02-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 192000, output: 8192 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-3-1-pro-preview": { + id: "gemini-3-1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "gpt-5-3-codex": { + id: "gpt-5-3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2026-01-31", + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + }, + }, + lmstudio: { + id: "lmstudio", + env: ["LMSTUDIO_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "http://127.0.0.1:1234/v1", + name: "LMStudio", + doc: "https://lmstudio.ai/models", + models: { + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-30b": { + id: "qwen/qwen3-coder-30b", + name: "Qwen3 Coder 30B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-2507": { + id: "qwen/qwen3-30b-a3b-2507", + name: "Qwen3 30B A3B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + }, + }, + lucidquery: { + id: "lucidquery", + env: ["LUCIDQUERY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://lucidquery.com/api/v1", + name: "LucidQuery AI", + doc: "https://lucidquery.com/api/docs", + models: { + "lucidnova-rf1-100b": { + id: "lucidnova-rf1-100b", + name: "LucidNova RF1 100B", + family: "nova", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-09-16", + release_date: "2024-12-28", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 5 }, + limit: { context: 120000, output: 8000 }, + }, + "lucidquery-nexus-coder": { + id: "lucidquery-nexus-coder", + name: "LucidQuery Nexus Coder", + family: "lucid", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-01", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 5 }, + limit: { context: 250000, output: 60000 }, + }, + }, + }, + "moonshotai-cn": { + id: "moonshotai-cn", + env: ["MOONSHOT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.moonshot.cn/v1", + name: "Moonshot AI (China)", + doc: "https://platform.moonshot.cn/docs/api/chat", + models: { + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0711-preview": { + id: "kimi-k2-0711-preview", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 10, cache_read: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "azure-cognitive-services": { + id: "azure-cognitive-services", + env: ["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME", "AZURE_COGNITIVE_SERVICES_API_KEY"], + npm: "@ai-sdk/azure", + name: "Azure Cognitive Services", + doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + models: { + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "mai-ds-r1": { + id: "mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "codestral-2501": { + id: "codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "gpt-3.5-turbo-instruct": { + id: "gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-09-21", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "phi-4-reasoning-plus": { + id: "phi-4-reasoning-plus", + name: "Phi-4-reasoning-plus", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "cohere-embed-v3-english": { + id: "cohere-embed-v3-english", + name: "Embed v3 English", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "gpt-4-32k": { + id: "gpt-4-32k", + name: "GPT-4 32K", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 32768, output: 32768 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 272000, output: 128000 }, + }, + "phi-4": { + id: "phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere-command-r-plus-08-2024": { + id: "cohere-command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-3.5-turbo-0613": { + id: "gpt-3.5-turbo-0613", + name: "GPT-3.5 Turbo 0613", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16384, output: 16384 }, + }, + "phi-3-medium-128k-instruct": { + id: "phi-3-medium-128k-instruct", + name: "Phi-3-medium-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "phi-3-small-128k-instruct": { + id: "phi-3-small-128k-instruct", + name: "Phi-3-small-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-3.5-turbo-0301": { + id: "gpt-3.5-turbo-0301", + name: "GPT-3.5 Turbo 0301", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "phi-4-mini": { + id: "phi-4-mini", + name: "Phi-4-mini", + family: "phi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "meta-llama-3-8b-instruct": { + id: "meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 8192, output: 8192 }, + }, + "phi-4-mini-reasoning": { + id: "phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "meta-llama-3.1-70b-instruct": { + id: "meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 128000, output: 32768 }, + }, + "phi-3-mini-4k-instruct": { + id: "phi-3-mini-4k-instruct", + name: "Phi-3-mini-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 4096, output: 1024 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 131072, output: 131072 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-3.5-turbo-1106": { + id: "gpt-3.5-turbo-1106", + name: "GPT-3.5 Turbo 1106", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 16384, output: 16384 }, + }, + "model-router": { + id: "model-router", + name: "Model Router", + family: "model-router", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-05-19", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "mistral-small-2503": { + id: "mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 32768 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 272000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "cohere-embed-v3-multilingual": { + id: "cohere-embed-v3-multilingual", + name: "Embed v3 Multilingual", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 66, cache_read: 8.25 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-3.5-turbo-0125": { + id: "gpt-3.5-turbo-0125", + name: "GPT-3.5 Turbo 0125", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16384, output: 16384 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "cohere-embed-v-4-0": { + id: "cohere-embed-v-4-0", + name: "Embed v4", + family: "cohere-embed", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0 }, + limit: { context: 128000, output: 1536 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4-turbo-vision": { + id: "gpt-4-turbo-vision", + name: "GPT-4 Turbo Vision", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.1-chat": { + id: "gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "meta-llama-3.1-405b-instruct": { + id: "meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 5.33, output: 16 }, + limit: { context: 128000, output: 32768 }, + }, + "llama-3.2-11b-vision-instruct": { + id: "llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.37, output: 0.37 }, + limit: { context: 128000, output: 8192 }, + }, + "cohere-command-a": { + id: "cohere-command-a", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "cohere-command-r-08-2024": { + id: "cohere-command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-v3.2-speciale": { + id: "deepseek-v3.2-speciale", + name: "DeepSeek-V3.2-Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "llama-3.2-90b-vision-instruct": { + id: "llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.04, output: 2.04 }, + limit: { context: 128000, output: 8192 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "phi-3-small-8k-instruct": { + id: "phi-3-small-8k-instruct", + name: "Phi-3-small-instruct (8k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 8192, output: 2048 }, + }, + "meta-llama-3-70b-instruct": { + id: "meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + }, + "phi-4-reasoning": { + id: "phi-4-reasoning", + name: "Phi-4-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "phi-3-mini-128k-instruct": { + id: "phi-3-mini-128k-instruct", + name: "Phi-3-mini-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "phi-3.5-moe-instruct": { + id: "phi-3.5-moe-instruct", + name: "Phi-3.5-MoE-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.64 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5-chat": { + id: "gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-10-24", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, output: 16384 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.14, output: 4.56 }, + limit: { context: 131072, output: 131072 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + shape: "completions", + }, + }, + "meta-llama-3.1-8b-instruct": { + id: "meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 128000, output: 32768 }, + }, + "ministral-3b": { + id: "ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 8192 }, + }, + "phi-3-medium-4k-instruct": { + id: "phi-3-medium-4k-instruct", + name: "Phi-3-medium-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 4096, output: 1024 }, + }, + "llama-4-scout-17b-16e-instruct": { + id: "llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.78 }, + limit: { context: 128000, output: 8192 }, + }, + "phi-3.5-mini-instruct": { + id: "phi-3.5-mini-instruct", + name: "Phi-3.5-mini-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-4-multimodal": { + id: "phi-4-multimodal", + name: "Phi-4-multimodal", + family: "phi", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.32, input_audio: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "codex-mini": { + id: "codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.2-chat": { + id: "gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + }, + }, + cohere: { + id: "cohere", + env: ["COHERE_API_KEY"], + npm: "@ai-sdk/cohere", + name: "Cohere", + doc: "https://docs.cohere.com/docs/models", + models: { + "command-a-reasoning-08-2025": { + id: "command-a-reasoning-08-2025", + name: "Command A Reasoning", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 32000 }, + }, + "command-r7b-12-2024": { + id: "command-r7b-12-2024", + name: "Command R7B", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-02-27", + last_updated: "2024-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "c4ai-aya-vision-8b": { + id: "c4ai-aya-vision-8b", + name: "Aya Vision 8B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 16000, output: 4000 }, + }, + "command-r-plus-08-2024": { + id: "command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "c4ai-aya-expanse-8b": { + id: "c4ai-aya-expanse-8b", + name: "Aya Expanse 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-24", + last_updated: "2024-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 8000, output: 4000 }, + }, + "command-r7b-arabic-02-2025": { + id: "command-r7b-arabic-02-2025", + name: "Command R7B Arabic", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "command-a-vision-07-2025": { + id: "command-a-vision-07-2025", + name: "Command A Vision", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 8000 }, + }, + "c4ai-aya-vision-32b": { + id: "c4ai-aya-vision-32b", + name: "Aya Vision 32B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 16000, output: 4000 }, + }, + "command-a-translate-08-2025": { + id: "command-a-translate-08-2025", + name: "Command A Translate", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 8000 }, + }, + "command-r-08-2024": { + id: "command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "c4ai-aya-expanse-32b": { + id: "c4ai-aya-expanse-32b", + name: "Aya Expanse 32B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-24", + last_updated: "2024-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 128000, output: 4000 }, + }, + "command-a-03-2025": { + id: "command-a-03-2025", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + }, + }, + "cloudferro-sherlock": { + id: "cloudferro-sherlock", + env: ["CLOUDFERRO_SHERLOCK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api-sherlock.cloudferro.com/openai/v1/", + name: "CloudFerro Sherlock", + doc: "https://docs.sherlock.cloudferro.com/", + models: { + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10-09", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.92, output: 2.92 }, + limit: { context: 70000, output: 70000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.92, output: 2.92 }, + limit: { context: 131000, output: 131000 }, + }, + "speakleash/Bielik-11B-v3.0-Instruct": { + id: "speakleash/Bielik-11B-v3.0-Instruct", + name: "Bielik 11B v3.0 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 0.67 }, + limit: { context: 32000, output: 32000 }, + }, + "speakleash/Bielik-11B-v2.6-Instruct": { + id: "speakleash/Bielik-11B-v2.6-Instruct", + name: "Bielik 11B v2.6 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 0.67 }, + limit: { context: 32000, output: 32000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196000, output: 196000 }, + }, + }, + }, + "kuae-cloud-coding-plan": { + id: "kuae-cloud-coding-plan", + env: ["KUAE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding-plan-endpoint.kuaecloud.net/v1", + name: "KUAE Cloud Coding Plan", + doc: "https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/", + models: { + "GLM-4.7": { + id: "GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + xai: { + id: "xai", + env: ["XAI_API_KEY"], + npm: "@ai-sdk/xai", + name: "xAI", + doc: "https://docs.x.ai/docs/models", + models: { + "grok-2-1212": { + id: "grok-2-1212", + name: "Grok 2 (1212)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-12-12", + last_updated: "2024-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-vision-beta": { + id: "grok-vision-beta", + name: "Grok Vision Beta", + family: "grok-vision", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15, cache_read: 5 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-3-mini-fast": { + id: "grok-3-mini-fast", + name: "Grok 3 Mini Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-mini-latest": { + id: "grok-3-mini-latest", + name: "Grok 3 Mini Latest", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-fast": { + id: "grok-3-fast", + name: "Grok 3 Fast", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2-vision-latest": { + id: "grok-2-vision-latest", + name: "Grok 2 Vision Latest", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-4.20-0309-reasoning": { + id: "grok-4.20-0309-reasoning", + name: "Grok 4.20 (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-mini-fast-latest": { + id: "grok-3-mini-fast-latest", + name: "Grok 3 Mini Fast Latest", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast": { + id: "grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-latest": { + id: "grok-3-latest", + name: "Grok 3 Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2": { + id: "grok-2", + name: "Grok 2", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "grok-4.20-0309-non-reasoning": { + id: "grok-4.20-0309-non-reasoning", + name: "Grok 4.20 (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-fast-latest": { + id: "grok-3-fast-latest", + name: "Grok 3 Fast Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4.20-multi-agent-0309": { + id: "grok-4.20-multi-agent-0309", + name: "Grok 4.20 Multi-Agent", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "grok-2-latest": { + id: "grok-2-latest", + name: "Grok 2 Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-beta": { + id: "grok-beta", + name: "Grok Beta", + family: "grok-beta", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15, cache_read: 5 }, + limit: { context: 131072, output: 4096 }, + }, + "grok-2-vision": { + id: "grok-2-vision", + name: "Grok 2 Vision", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-4-1-fast": { + id: "grok-4-1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2-vision-1212": { + id: "grok-2-vision-1212", + name: "Grok 2 Vision (1212)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + }, + }, + meganova: { + id: "meganova", + env: ["MEGANOVA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.meganova.ai/v1", + name: "Meganova", + doc: "https://docs.meganova.ai", + models: { + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3.5-Plus": { + id: "Qwen/Qwen3.5-Plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 16384, output: 16384 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.56 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.9 }, + limit: { context: 202752, output: 131072 }, + }, + "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 131072, output: 65536 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 32000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.88 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.2-Exp": { + id: "deepseek-ai/DeepSeek-V3.2-Exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-10-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.15 }, + limit: { context: 163840, output: 64000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.38 }, + limit: { context: 164000, output: 164000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.6 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.2 }, + limit: { context: 196608, output: 131072 }, + }, + }, + }, + "google-vertex-anthropic": { + id: "google-vertex-anthropic", + env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], + npm: "@ai-sdk/google-vertex/anthropic", + name: "Vertex (Anthropic)", + doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", + models: { + "claude-haiku-4-5@20251001": { + id: "claude-haiku-4-5@20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-6@default": { + id: "claude-sonnet-4-6@default", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-haiku@20241022": { + id: "claude-3-5-haiku@20241022", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-5-sonnet@20241022": { + id: "claude-3-5-sonnet@20241022", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-1@20250805": { + id: "claude-opus-4-1@20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-sonnet-4@20250514": { + id: "claude-sonnet-4@20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-7-sonnet@20250219": { + id: "claude-3-7-sonnet@20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4@20250514": { + id: "claude-opus-4@20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-opus-4-5@20251101": { + id: "claude-opus-4-5@20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-5@20250929": { + id: "claude-sonnet-4-5@20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6@default": { + id: "claude-opus-4-6@default", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + evroc: { + id: "evroc", + env: ["EVROC_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.think.evroc.com/v1", + name: "evroc", + doc: "https://docs.evroc.com/products/think/overview.html", + models: { + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen3 VL 30B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.94 }, + limit: { context: 100000, output: 100000 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen3 Embedding 8B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.12 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", + name: "Qwen3 30B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.42 }, + limit: { context: 64000, output: 64000 }, + }, + "mistralai/devstral-small-2-24b-instruct-2512": { + id: "mistralai/devstral-small-2-24b-instruct-2512", + name: "Devstral Small 2 24B Instruct 2512", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.47 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/Voxtral-Small-24B-2507": { + id: "mistralai/Voxtral-Small-24B-2507", + name: "Voxtral Small 24B", + family: "voxtral", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["audio", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 32000, output: 32000 }, + }, + "mistralai/Magistral-Small-2509": { + id: "mistralai/Magistral-Small-2509", + name: "Magistral Small 1.2 24B", + family: "magistral-small", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 2.36 }, + limit: { context: 131072, output: 131072 }, + }, + "microsoft/Phi-4-multimodal-instruct": { + id: "microsoft/Phi-4-multimodal-instruct", + name: "Phi-4 15B", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.47 }, + limit: { context: 32000, output: 32000 }, + }, + "KBLab/kb-whisper-large": { + id: "KBLab/kb-whisper-large", + name: "KB Whisper", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 448, output: 448 }, + }, + "nvidia/Llama-3.3-70B-Instruct-FP8": { + id: "nvidia/Llama-3.3-70B-Instruct-FP8", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.18, output: 1.18 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/whisper-large-v3": { + id: "openai/whisper-large-v3", + name: "Whisper 3 Large", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 448, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.94 }, + limit: { context: 65536, output: 65536 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 1.47, output: 5.9 }, + limit: { context: 262144, output: 262144 }, + }, + "intfloat/multilingual-e5-large-instruct": { + id: "intfloat/multilingual-e5-large-instruct", + name: "E5 Multi-Lingual Large Embeddings 0.6B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.12 }, + limit: { context: 512, output: 512 }, + }, + }, + }, + synthetic: { + id: "synthetic", + env: ["SYNTHETIC_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.synthetic.new/openai/v1", + name: "Synthetic", + doc: "https://synthetic.new/pricing", + models: { + "hf:meta-llama/Llama-3.1-405B-Instruct": { + id: "hf:meta-llama/Llama-3.1-405B-Instruct", + name: "Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama-4-Scout-17B-16E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 328000, output: 4096 }, + }, + "hf:meta-llama/Llama-3.3-70B-Instruct": { + id: "hf:meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.1-8B-Instruct": { + id: "hf:meta-llama/Llama-3.1-8B-Instruct", + name: "Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.1-70B-Instruct": { + id: "hf:meta-llama/Llama-3.1-70B-Instruct", + name: "Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 524000, output: 4096 }, + }, + "hf:MiniMaxAI/MiniMax-M2": { + id: "hf:MiniMaxAI/MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 196608, output: 131000 }, + }, + "hf:MiniMaxAI/MiniMax-M2.5": { + id: "hf:MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-07", + last_updated: "2026-02-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.6 }, + limit: { context: 191488, output: 65536 }, + }, + "hf:MiniMaxAI/MiniMax-M2.1": { + id: "hf:MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 204800, output: 131072 }, + }, + "hf:Qwen/Qwen3.5-397B-A17B": { + id: "hf:Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5-97B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.6 }, + limit: { context: 262144, output: 65536 }, + status: "beta", + }, + "hf:Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "hf:Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "hf:Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen 3 235B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 3 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen 3 Coder 480B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.1": { + id: "hf:deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3-0324": { + id: "hf:deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 (0324)", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3": { + id: "hf:deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-R1": { + id: "hf:deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-R1-0528": { + id: "hf:deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 (0528)", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 8 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.2": { + id: "hf:deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4, cache_read: 0.27, cache_write: 0 }, + limit: { context: 162816, input: 162816, output: 8000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:openai/gpt-oss-120b": { + id: "hf:openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:moonshotai/Kimi-K2-Thinking": { + id: "hf:moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 262144 }, + }, + "hf:moonshotai/Kimi-K2-Instruct-0905": { + id: "hf:moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 262144, output: 32768 }, + }, + "hf:moonshotai/Kimi-K2.5": { + id: "hf:moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { + id: "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1, cache_read: 0.3 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:nvidia/Kimi-K2.5-NVFP4": { + id: "hf:nvidia/Kimi-K2.5-NVFP4", + name: "Kimi K2.5 (NVFP4)", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:zai-org/GLM-4.7-Flash": { + id: "hf:zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-18", + last_updated: "2026-01-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.06 }, + limit: { context: 196608, output: 65536 }, + }, + "hf:zai-org/GLM-4.7": { + id: "hf:zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 200000, output: 64000 }, + }, + "hf:zai-org/GLM-5": { + id: "hf:zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 1 }, + limit: { context: 196608, output: 65536 }, + }, + "hf:zai-org/GLM-4.6": { + id: "hf:zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + nvidia: { + id: "nvidia", + env: ["NVIDIA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://integrate.api.nvidia.com/v1", + name: "Nvidia", + doc: "https://docs.api.nvidia.com/nim/", + models: { + "black-forest-labs/flux.1-dev": { + id: "black-forest-labs/flux.1-dev", + name: "FLUX.1-dev", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 0 }, + }, + "stepfun-ai/step-3.5-flash": { + id: "stepfun-ai/step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 16384 }, + }, + "mistralai/codestral-22b-instruct-v0.1": { + id: "mistralai/codestral-22b-instruct-v0.1", + name: "Codestral 22b Instruct V0.1", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-29", + last_updated: "2024-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + id: "mistralai/mistral-large-3-675b-instruct-2512", + name: "Mistral Large 3 675B Instruct 2512", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/devstral-2-123b-instruct-2512": { + id: "mistralai/devstral-2-123b-instruct-2512", + name: "Devstral-2-123B-Instruct-2512", + family: "devstral", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-08", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/ministral-14b-instruct-2512": { + id: "mistralai/ministral-14b-instruct-2512", + name: "Ministral 3 14B Instruct 2512", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-01", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-small-3.1-24b-instruct-2503": { + id: "mistralai/mistral-small-3.1-24b-instruct-2503", + name: "Mistral Small 3.1 24b Instruct 2503", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mamba-codestral-7b-v0.1": { + id: "mistralai/mamba-codestral-7b-v0.1", + name: "Mamba Codestral 7b V0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mistral-large-2-instruct": { + id: "mistralai/mistral-large-2-instruct", + name: "Mistral Large 2 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-4k-instruct": { + id: "microsoft/phi-3-medium-4k-instruct", + name: "Phi 3 Medium 4k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4000, output: 4096 }, + }, + "microsoft/phi-3.5-moe-instruct": { + id: "microsoft/phi-3.5-moe-instruct", + name: "Phi 3.5 Moe Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-17", + last_updated: "2024-08-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-mini-instruct": { + id: "microsoft/phi-4-mini-instruct", + name: "Phi-4-Mini", + family: "phi", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "microsoft/phi-3-small-8k-instruct": { + id: "microsoft/phi-3-small-8k-instruct", + name: "Phi 3 Small 8k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 4096 }, + }, + "microsoft/phi-3-vision-128k-instruct": { + id: "microsoft/phi-3-vision-128k-instruct", + name: "Phi 3 Vision 128k Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-19", + last_updated: "2024-05-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3.5-vision-instruct": { + id: "microsoft/phi-3.5-vision-instruct", + name: "Phi 3.5 Vision Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-128k-instruct": { + id: "microsoft/phi-3-small-128k-instruct", + name: "Phi 3 Small 128k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-128k-instruct": { + id: "microsoft/phi-3-medium-128k-instruct", + name: "Phi 3 Medium 128k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1", + name: "Llama 3.3 Nemotron Super 49b V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemotron-4-340b-instruct": { + id: "nvidia/nemotron-4-340b-instruct", + name: "Nemotron 4 340b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-06-13", + last_updated: "2024-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama3-chatqa-1.5-70b": { + id: "nvidia/llama3-chatqa-1.5-70b", + name: "Llama3 Chatqa 1.5 70b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-28", + last_updated: "2024-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", + name: "Llama 3.3 Nemotron Super 49b V1.5", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/parakeet-tdt-0.6b-v2": { + id: "nvidia/parakeet-tdt-0.6b-v2", + name: "Parakeet TDT 0.6B v2", + family: "parakeet", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "nemotron-3-nano-30b-a3b", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/llama-3.1-nemotron-ultra-253b-v1": { + id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", + name: "Llama-3.1-Nemotron-Ultra-253B-v1", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + id: "nvidia/nvidia-nemotron-nano-9b-v2", + name: "nvidia-nemotron-nano-9b-v2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/cosmos-nemotron-34b": { + id: "nvidia/cosmos-nemotron-34b", + name: "Cosmos Nemotron 34B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/llama-embed-nemotron-8b": { + id: "nvidia/llama-embed-nemotron-8b", + name: "Llama Embed Nemotron 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-03", + release_date: "2025-03-18", + last_updated: "2025-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 2048 }, + }, + "nvidia/llama-3.1-nemotron-51b-instruct": { + id: "nvidia/llama-3.1-nemotron-51b-instruct", + name: "Llama 3.1 Nemotron 51b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-22", + last_updated: "2024-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + id: "nvidia/llama-3.1-nemotron-70b-instruct", + name: "Llama 3.1 Nemotron 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-10-12", + last_updated: "2024-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemoretriever-ocr-v1": { + id: "nvidia/nemoretriever-ocr-v1", + name: "NeMo Retriever OCR v1", + family: "nemoretriever", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "deepseek-ai/deepseek-r1": { + id: "deepseek-ai/deepseek-r1", + name: "Deepseek R1", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.1": { + id: "deepseek-ai/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-20", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/deepseek-coder-6.7b-instruct": { + id: "deepseek-ai/deepseek-coder-6.7b-instruct", + name: "Deepseek Coder 6.7b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2023-10-29", + last_updated: "2023-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.2": { + id: "deepseek-ai/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/deepseek-r1-0528": { + id: "deepseek-ai/deepseek-r1-0528", + name: "Deepseek R1 0528", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.1-terminus": { + id: "deepseek-ai/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/whisper-large-v3": { + id: "openai/whisper-large-v3", + name: "Whisper Large v3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS-120B", + family: "gpt-oss", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-04", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "minimaxai/minimax-m2.1": { + id: "minimaxai/minimax-m2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "minimaxai/minimax-m2.5": { + id: "minimaxai/minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm4.7": { + id: "z-ai/glm4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm5": { + id: "z-ai/glm5", + name: "GLM5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 202752, output: 131000 }, + }, + "meta/llama-4-scout-17b-16e-instruct": { + id: "meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17b 16e Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-02", + release_date: "2025-04-02", + last_updated: "2025-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.3-70b-instruct": { + id: "meta/llama-3.3-70b-instruct", + name: "Llama 3.3 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-26", + last_updated: "2024-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama3-8b-instruct": { + id: "meta/llama3-8b-instruct", + name: "Llama3 8b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama3-70b-instruct": { + id: "meta/llama3-70b-instruct", + name: "Llama3 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/codellama-70b": { + id: "meta/codellama-70b", + name: "Codellama 70b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-29", + last_updated: "2024-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11b Vision Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.1-70b-instruct": { + id: "meta/llama-3.1-70b-instruct", + name: "Llama 3.1 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.2-1b-instruct": { + id: "meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-maverick-17b-128e-instruct": { + id: "meta/llama-4-maverick-17b-128e-instruct", + name: "Llama 4 Maverick 17b 128e Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-02", + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.1-405b-instruct": { + id: "meta/llama-3.1-405b-instruct", + name: "Llama 3.1 405b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3-235b-a22b": { + id: "qwen/qwen3-235b-a22b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen2.5-coder-7b-instruct": { + id: "qwen/qwen2.5-coder-7b-instruct", + name: "Qwen2.5 Coder 7b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-17", + last_updated: "2024-09-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen2.5-coder-32b-instruct": { + id: "qwen/qwen2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-06", + last_updated: "2024-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 8192 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwq-32b": { + id: "qwen/qwq-32b", + name: "Qwq 32b", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 66536 }, + }, + "google/gemma-2-2b-it": { + id: "google/gemma-2-2b-it", + name: "Gemma 2 2b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Gemma 3n E4b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-06-03", + last_updated: "2025-06-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-1b-it": { + id: "google/gemma-3-1b-it", + name: "Gemma 3 1b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/codegemma-7b": { + id: "google/codegemma-7b", + name: "Codegemma 7b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-03-21", + last_updated: "2024-03-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma-4-31B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 16384 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Gemma 3 12b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/codegemma-1.1-7b": { + id: "google/codegemma-1.1-7b", + name: "Codegemma 1.1 7b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-04-30", + last_updated: "2024-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3n-e2b-it": { + id: "google/gemma-3n-e2b-it", + name: "Gemma 3n E2b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-06-12", + last_updated: "2025-06-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-2-27b-it": { + id: "google/gemma-2-27b-it", + name: "Gemma 2 27b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-06-24", + last_updated: "2024-06-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma-3-27B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-07", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-01-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "moonshotai/kimi-k2-instruct-0905": { + id: "moonshotai/kimi-k2-instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + inference: { + id: "inference", + env: ["INFERENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://inference.net/v1", + name: "Inference", + doc: "https://inference.net/models", + models: { + "mistral/mistral-nemo-12b-instruct": { + id: "mistral/mistral-nemo-12b-instruct", + name: "Mistral Nemo 12B Instruct", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.038, output: 0.1 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.055, output: 0.055 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-1b-instruct": { + id: "meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-3b-instruct": { + id: "meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.1-8b-instruct": { + id: "meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.025, output: 0.025 }, + limit: { context: 16000, output: 4096 }, + }, + "qwen/qwen-2.5-7b-vision-instruct": { + id: "qwen/qwen-2.5-7b-vision-instruct", + name: "Qwen 2.5 7B Vision Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 125000, output: 4096 }, + }, + "qwen/qwen3-embedding-4b": { + id: "qwen/qwen3-embedding-4b", + name: "Qwen 3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 2048 }, + }, + "google/gemma-3": { + id: "google/gemma-3", + name: "Google Gemma 3", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.3 }, + limit: { context: 125000, output: 4096 }, + }, + "osmosis/osmosis-structure-0.6b": { + id: "osmosis/osmosis-structure-0.6b", + name: "Osmosis Structure 0.6B", + family: "osmosis", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 4000, output: 2048 }, + }, + }, + }, + inception: { + id: "inception", + env: ["INCEPTION_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.inceptionlabs.ai/v1/", + name: "Inception", + doc: "https://platform.inceptionlabs.ai/docs", + models: { + "mercury-edit": { + id: "mercury-edit", + name: "Mercury Edit", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 8192 }, + }, + "mercury-2": { + id: "mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + mercury: { + id: "mercury", + name: "Mercury", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-06-26", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "mercury-coder": { + id: "mercury-coder", + name: "Mercury Coder", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-02-26", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + openai: { + id: "openai", + env: ["OPENAI_API_KEY"], + npm: "@ai-sdk/openai", + name: "OpenAI", + doc: "https://platform.openai.com/docs/models", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o-2024-05-13": { + id: "gpt-4o-2024-05-13", + name: "GPT-4o (2024-05-13)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 4096 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat (latest)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2022-12", + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o3-pro": { + id: "o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "o4-mini-deep-research": { + id: "o4-mini-deep-research", + name: "o4-mini-deep-research", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + experimental: { + modes: { + fast: { + cost: { input: 1.5, output: 9, cache_read: 0.15 }, + provider: { body: { service_tier: "priority" } }, + }, + }, + }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-image-1": { + id: "gpt-image-1", + name: "gpt-image-1", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-24", + last_updated: "2025-04-24", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-4o-2024-08-06": { + id: "gpt-4o-2024-08-06", + name: "GPT-4o (2024-08-06)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-08-06", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-image-1-mini": { + id: "gpt-image-1-mini", + name: "gpt-image-1-mini", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "gpt-3.5-turbo": { + id: "gpt-3.5-turbo", + name: "GPT-3.5-turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2021-09-01", + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, + limit: { context: 16385, output: 4096 }, + }, + "o3-deep-research": { + id: "o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, output: 100000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "o1-pro": { + id: "o1-pro", + name: "o1-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2025-03-19", + last_updated: "2025-03-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, output: 100000 }, + }, + "codex-mini-latest": { + id: "codex-mini-latest", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + experimental: { + modes: { + fast: { cost: { input: 5, output: 30, cache_read: 0.5 }, provider: { body: { service_tier: "priority" } } }, + }, + }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.3-codex-spark": { + id: "gpt-5.3-codex-spark", + name: "GPT-5.3 Codex Spark", + family: "gpt-codex-spark", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 100000, output: 32000 }, + }, + "chatgpt-image-latest": { + id: "chatgpt-image-latest", + name: "chatgpt-image-latest", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 272000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-image-1.5": { + id: "gpt-image-1.5", + name: "gpt-image-1.5", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o-2024-11-20": { + id: "gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + requesty: { + id: "requesty", + env: ["REQUESTY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://router.requesty.ai/v1", + name: "Requesty", + doc: "https://requesty.ai/solution/llm-routing/models", + models: { + "xai/grok-4-fast": { + id: "xai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.2 }, + limit: { context: 2000000, output: 64000 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-09", + last_updated: "2025-09-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 3 }, + limit: { context: 256000, output: 64000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 16000, output: 4000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4 Mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "GPT-5 Image", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 5, output: 10, cache_read: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "audio", "image", "video"], output: ["text", "audio", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 2.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.55 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-01", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 62000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3-7-sonnet": { + id: "anthropic/claude-3-7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-1": { + id: "anthropic/claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + }, + }, + vultr: { + id: "vultr", + env: ["VULTR_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.vultrinference.com/v1", + name: "Vultr", + doc: "https://api.vultrinference.com/", + models: { + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-02-11", + last_updated: "2025-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 194000, output: 4096 }, + }, + "GLM-5-FP8": { + id: "GLM-5-FP8", + name: "GLM 5 FP8", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 3.1 }, + limit: { context: 200000, output: 131072 }, + }, + "DeepSeek-V3.2": { + id: "DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.65 }, + limit: { context: 127000, output: 4096 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 129000, output: 4096 }, + }, + "Kimi-K2.5": { + id: "Kimi-K2.5", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.75 }, + limit: { context: 254000, output: 32768 }, + }, + }, + }, + "alibaba-coding-plan-cn": { + id: "alibaba-coding-plan-cn", + env: ["ALIBABA_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding.dashscope.aliyuncs.com/v1", + name: "Alibaba Coding Plan (China)", + doc: "https://help.aliyun.com/zh/model-studio/coding-plan", + models: { + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 196608, output: 24576 }, + }, + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + }, + }, + mistral: { + id: "mistral", + env: ["MISTRAL_API_KEY"], + npm: "@ai-sdk/mistral", + name: "Mistral", + doc: "https://docs.mistral.ai/getting-started/models/", + models: { + "mistral-small-latest": { + id: "mistral-small-latest", + name: "Mistral Small (latest)", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "Mistral Large 3", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "labs-devstral-small-2512": { + id: "labs-devstral-small-2512", + name: "Devstral Small 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "magistral-medium-latest": { + id: "magistral-medium-latest", + name: "Magistral Medium (latest)", + family: "magistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 5 }, + limit: { context: 128000, output: 16384 }, + }, + "open-mixtral-8x7b": { + id: "open-mixtral-8x7b", + name: "Mixtral 8x7B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32000, output: 32000 }, + }, + "pixtral-large-latest": { + id: "pixtral-large-latest", + name: "Pixtral Large (latest)", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 2.1", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 16384 }, + }, + "codestral-latest": { + id: "codestral-latest", + name: "Codestral (latest)", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-05-29", + last_updated: "2025-01-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 4096 }, + }, + "mistral-large-latest": { + id: "mistral-large-latest", + name: "Mistral Large (latest)", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-small-2506": { + id: "mistral-small-2506", + name: "Mistral Small 3.2", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "pixtral-12b": { + id: "pixtral-12b", + name: "Pixtral 12B", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "ministral-8b-latest": { + id: "ministral-8b-latest", + name: "Ministral 8B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-embed": { + id: "mistral-embed", + name: "Mistral Embed", + family: "mistral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8000, output: 3072 }, + }, + "magistral-small": { + id: "magistral-small", + name: "Magistral Small", + family: "magistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-small-2603": { + id: "mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "ministral-3b-latest": { + id: "ministral-3b-latest", + name: "Ministral 3B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 128000 }, + }, + "open-mixtral-8x22b": { + id: "open-mixtral-8x22b", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 64000, output: 64000 }, + }, + "devstral-small-2505": { + id: "devstral-small-2505", + name: "Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 128000 }, + }, + "devstral-medium-2507": { + id: "devstral-medium-2507", + name: "Devstral Medium", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-medium-latest": { + id: "mistral-medium-latest", + name: "Mistral Medium (latest)", + family: "mistral-medium", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 16384 }, + }, + "open-mistral-7b": { + id: "open-mistral-7b", + name: "Mistral 7B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2023-09-27", + last_updated: "2023-09-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 8000, output: 8000 }, + }, + "devstral-medium-latest": { + id: "devstral-medium-latest", + name: "Devstral 2 (latest)", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "devstral-small-2507": { + id: "devstral-small-2507", + name: "Devstral Small", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-medium-2508": { + id: "mistral-medium-2508", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + ovhcloud: { + id: "ovhcloud", + env: ["OVHCLOUD_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", + name: "OVHcloud AI Endpoints", + doc: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", + models: { + "mixtral-8x7b-instruct-v0.1": { + id: "mixtral-8x7b-instruct-v0.1", + name: "Mixtral-8x7B-Instruct-v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen2.5-coder-32b-instruct": { + id: "qwen2.5-coder-32b-instruct", + name: "Qwen2.5-Coder-32B-Instruct", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.96, output: 0.96 }, + limit: { context: 32768, output: 32768 }, + }, + "meta-llama-3_3-70b-instruct": { + id: "meta-llama-3_3-70b-instruct", + name: "Meta-Llama-3_3-70B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.74, output: 0.74 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-7b-instruct-v0.3": { + id: "mistral-7b-instruct-v0.3", + name: "Mistral-7B-Instruct-v0.3", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.11 }, + limit: { context: 65536, output: 65536 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek-R1-Distill-Llama-70B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-30", + last_updated: "2025-01-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.74, output: 0.74 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3-32B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-16", + last_updated: "2025-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.25 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen2.5-vl-72b-instruct": { + id: "qwen2.5-vl-72b-instruct", + name: "Qwen2.5-VL-72B-Instruct", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-31", + last_updated: "2025-03-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.01, output: 1.01 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder-30B-A3B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.26 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.18 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-small-3.2-24b-instruct-2506": { + id: "mistral-small-3.2-24b-instruct-2506", + name: "Mistral-Small-3.2-24B-Instruct-2506", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-16", + last_updated: "2025-07-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.31 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.47 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-nemo-instruct-2407": { + id: "mistral-nemo-instruct-2407", + name: "Mistral-Nemo-Instruct-2407", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 65536, output: 65536 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama-3.1-8B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-11", + last_updated: "2025-06-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.11 }, + limit: { context: 131072, output: 131072 }, + }, + }, + }, + friendli: { + id: "friendli", + env: ["FRIENDLI_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.friendli.ai/serverless/v1", + name: "Friendli", + doc: "https://friendli.ai/docs/guides/serverless_endpoints/introduction", + models: { + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4 }, + limit: { context: 202752, output: 202752 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 202752 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 8000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + }, + }, + cortecs: { + id: "cortecs", + env: ["CORTECS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.cortecs.ai/v1", + name: "Cortecs", + doc: "https://api.cortecs.ai/v1/models", + models: { + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.09, output: 5.43 }, + limit: { context: 200000, output: 200000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.76 }, + limit: { context: 256000, output: 256000 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.551, output: 1.654 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.23 }, + limit: { context: 198000, output: 198000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.08, output: 3.44 }, + limit: { context: 202752, output: 202752 }, + }, + "nova-pro-v1": { + id: "nova-pro-v1", + name: "Nova Pro 1.0", + family: "nova-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.016, output: 4.061 }, + limit: { context: 300000, output: 5000 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.099, output: 0.33 }, + limit: { context: 16384, output: 16384 }, + }, + "claude-4-5-sonnet": { + id: "claude-4-5-sonnet", + name: "Claude 4.5 Sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.259, output: 16.296 }, + limit: { context: 200000, output: 200000 }, + }, + "kimi-k2-instruct": { + id: "kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-07-11", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.551, output: 2.646 }, + limit: { context: 131000, output: 131000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-11", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.57 }, + limit: { context: 400000, output: 400000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.654, output: 11.024 }, + limit: { context: 1048576, output: 65535 }, + }, + "claude-opus4-6": { + id: "claude-opus4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5.98, output: 29.89 }, + limit: { context: 1000000, output: 1000000 }, + }, + "devstral-small-2512": { + id: "devstral-small-2512", + name: "Devstral Small 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 262000 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.34, output: 1.34 }, + limit: { context: 196000, output: 196000 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 2.46 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-opus4-5": { + id: "claude-opus4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5.98, output: 29.89 }, + limit: { context: 200000, output: 200000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.307, output: 16.536 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.164, output: 1.311 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.34 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next 80B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.158, output: 0.84 }, + limit: { context: 256000, output: 65536 }, + }, + "claude-4-6-sonnet": { + id: "claude-4-6-sonnet", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.59, output: 17.92 }, + limit: { context: 1000000, output: 1000000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.441, output: 1.984 }, + limit: { context: 262000, output: 262000 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.32, output: 1.18 }, + limit: { context: 196608, output: 196608 }, + }, + "intellect-3": { + id: "intellect-3", + name: "INTELLECT 3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.219, output: 1.202 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.53 }, + limit: { context: 203000, output: 203000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT Oss 120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT 4.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.354, output: 9.417 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.656, output: 2.731 }, + limit: { context: 262000, output: 262000 }, + }, + "llama-3.1-405b-instruct": { + id: "llama-3.1-405b-instruct", + name: "Llama 3.1 405B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + }, + }, + siliconflow: { + id: "siliconflow", + env: ["SILICONFLOW_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.siliconflow.com/v1", + name: "SiliconFlow", + doc: "https://cloud.siliconflow.com/models", + models: { + "nex-agi/DeepSeek-V3.1-Nex-N1": { + id: "nex-agi/DeepSeek-V3.1-Nex-N1", + name: "nex-agi/DeepSeek-V3.1-Nex-N1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen/Qwen2.5-VL-72B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen3-VL-32B-Thinking": { + id: "Qwen/Qwen3-VL-32B-Thinking", + name: "Qwen/Qwen3-VL-32B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen/Qwen3-30B-A3B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 131000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + id: "Qwen/Qwen3-VL-235B-A22B-Thinking", + name: "Qwen/Qwen3-VL-235B-A22B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-7B-Instruct": { + id: "Qwen/Qwen2.5-7B-Instruct", + name: "Qwen/Qwen2.5-7B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen/Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen/Qwen3-VL-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "Qwen/QwQ-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.58 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-235B-A22B": { + id: "Qwen/Qwen3-235B-A22B", + name: "Qwen/Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.42 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Captioner": { + id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-VL-8B-Thinking": { + id: "Qwen/Qwen3-VL-8B-Thinking", + name: "Qwen/Qwen3-VL-8B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-7B-Instruct": { + id: "Qwen/Qwen2.5-VL-7B-Instruct", + name: "Qwen/Qwen2.5-VL-7B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-8B": { + id: "Qwen/Qwen3-8B", + name: "Qwen/Qwen3-8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen/Qwen3-30B-A3B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen/Qwen3-235B-A22B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen/Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen/Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen2.5-72B-Instruct-128K": { + id: "Qwen/Qwen2.5-72B-Instruct-128K", + name: "Qwen/Qwen2.5-72B-Instruct-128K", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen2.5-32B-Instruct": { + id: "Qwen/Qwen2.5-32B-Instruct", + name: "Qwen/Qwen2.5-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen/Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Thinking": { + id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen/Qwen2.5-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen/Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-14B-Instruct": { + id: "Qwen/Qwen2.5-14B-Instruct", + name: "Qwen/Qwen2.5-14B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Thinking": { + id: "Qwen/Qwen3-VL-30B-A3B-Thinking", + name: "Qwen/Qwen3-VL-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Instruct": { + id: "Qwen/Qwen3-VL-32B-Instruct", + name: "Qwen/Qwen3-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Instruct": { + id: "Qwen/Qwen3-VL-8B-Instruct", + name: "Qwen/Qwen3-VL-8B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.68 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen/Qwen2.5-72B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 33000, output: 4000 }, + }, + "stepfun-ai/Step-3.5-Flash": { + id: "stepfun-ai/Step-3.5-Flash", + name: "stepfun-ai/Step-3.5-Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "zai-org/GLM-4.5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-5V-Turbo": { + id: "zai-org/GLM-5V-Turbo", + name: "zai-org/GLM-5V-Turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "zai-org/GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "zai-org/GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_write: 0 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "zai-org/GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "zai-org/GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "zai-org/GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-07", + last_updated: "2025-12-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "zai-org/GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.9 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.5V": { + id: "zai-org/GLM-4.5V", + name: "zai-org/GLM-4.5V", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 66000, output: 66000 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "meta-llama/Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 33000, output: 4000 }, + }, + "inclusionAI/Ring-flash-2.0": { + id: "inclusionAI/Ring-flash-2.0", + name: "inclusionAI/Ring-flash-2.0", + family: "ring", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-mini-2.0": { + id: "inclusionAI/Ling-mini-2.0", + name: "inclusionAI/Ling-mini-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-flash-2.0": { + id: "inclusionAI/Ling-flash-2.0", + name: "inclusionAI/Ling-flash-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "tencent/Hunyuan-A13B-Instruct": { + id: "tencent/Hunyuan-A13B-Instruct", + name: "tencent/Hunyuan-A13B-Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "tencent/Hunyuan-MT-7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 33000, output: 33000 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "deepseek-ai/DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/deepseek-vl2": { + id: "deepseek-ai/deepseek-vl2", + name: "deepseek-ai/deepseek-vl2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 4000, output: 4000 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3.2-Exp": { + id: "deepseek-ai/DeepSeek-V3.2-Exp", + name: "deepseek-ai/DeepSeek-V3.2-Exp", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "openai/gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.18 }, + limit: { context: 131000, output: 8000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "openai/gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.45 }, + limit: { context: 131000, output: 8000 }, + }, + "baidu/ERNIE-4.5-300B-A47B": { + id: "baidu/ERNIE-4.5-300B-A47B", + name: "baidu/ERNIE-4.5-300B-A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "THUDM/GLM-Z1-9B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "THUDM/GLM-4-9B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "THUDM/GLM-4-32B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "THUDM/GLM-Z1-32B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "moonshotai/Kimi-K2-Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 2.29 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "moonshotai/Kimi-K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 3 }, + limit: { context: 262000, output: 262000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMaxAI/MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMaxAI/MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "ByteDance-Seed/Seed-OSS-36B-Instruct": { + id: "ByteDance-Seed/Seed-OSS-36B-Instruct", + name: "ByteDance-Seed/Seed-OSS-36B-Instruct", + family: "seed", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + }, + }, + vercel: { + id: "vercel", + env: ["AI_GATEWAY_API_KEY"], + npm: "@ai-sdk/gateway", + name: "Vercel AI Gateway", + doc: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + models: { + "alibaba/qwen3-coder-plus": { + id: "alibaba/qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1000000, output: 1000000 }, + }, + "alibaba/qwen3-embedding-8b": { + id: "alibaba/qwen3-embedding-8b", + name: "Qwen3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen-3-30b": { + id: "alibaba/qwen-3-30b", + name: "Qwen3-30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.29 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen-3-235b": { + id: "alibaba/qwen-3-235b", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3.5-flash": { + id: "alibaba/qwen3.5-flash", + name: "Qwen 3.5 Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.001, cache_write: 0.125 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen3.6-plus": { + id: "alibaba/qwen3.6-plus", + name: "Qwen 3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.09999999999999999, cache_write: 0.625 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen3-max": { + id: "alibaba/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3-embedding-0.6b": { + id: "alibaba/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen-3-32b": { + id: "alibaba/qwen-3-32b", + name: "Qwen 3.32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-next-80b-a3b-thinking": { + id: "alibaba/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 65536 }, + }, + "alibaba/qwen3-vl-thinking": { + id: "alibaba/qwen3-vl-thinking", + name: "Qwen3 VL Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 8.4 }, + limit: { context: 131072, output: 129024 }, + }, + "alibaba/qwen3-235b-a22b-thinking": { + id: "alibaba/qwen3-235b-a22b-thinking", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.9 }, + limit: { context: 262114, output: 262114 }, + }, + "alibaba/qwen3-next-80b-a3b-instruct": { + id: "alibaba/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 1.1 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3-coder-next": { + id: "alibaba/qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 256000, output: 256000 }, + }, + "alibaba/qwen3-embedding-4b": { + id: "alibaba/qwen3-embedding-4b", + name: "Qwen3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen3-max-thinking": { + id: "alibaba/qwen3-max-thinking", + name: "Qwen 3 Max Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 256000, output: 65536 }, + }, + "alibaba/qwen3-coder": { + id: "alibaba/qwen3-coder", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.38, output: 1.53 }, + limit: { context: 262144, output: 66536 }, + }, + "alibaba/qwen3-max-preview": { + id: "alibaba/qwen3-max-preview", + name: "Qwen3 Max Preview", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3.5-plus": { + id: "alibaba/qwen3.5-plus", + name: "Qwen 3.5 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, cache_read: 0.04, cache_write: 0.5 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen-3-14b": { + id: "alibaba/qwen-3-14b", + name: "Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-vl-instruct": { + id: "alibaba/qwen3-vl-instruct", + name: "Qwen3 VL Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 131072, output: 129024 }, + }, + "alibaba/qwen3-coder-30b-a3b": { + id: "alibaba/qwen3-coder-30b-a3b", + name: "Qwen 3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "perplexity/sonar-pro": { + id: "perplexity/sonar-pro", + name: "Sonar Pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Sonar", + family: "sonar", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-02", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar-reasoning": { + id: "perplexity/sonar-reasoning", + name: "Sonar Reasoning", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar-reasoning-pro": { + id: "perplexity/sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 8000 }, + }, + "deepseek/deepseek-v3.2-thinking": { + id: "deepseek/deepseek-v3.2-thinking", + name: "DeepSeek V3.2 Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1 }, + limit: { context: 163840, output: 128000 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.4, cache_read: 0.22 }, + limit: { context: 163842, output: 8000 }, + }, + "deepseek/deepseek-v3": { + id: "deepseek/deepseek-v3", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.77, output: 0.77 }, + limit: { context: 163840, output: 16384 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 32768 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Trinity Mini", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/trinity-large-thinking": { + id: "arcee-ai/trinity-large-thinking", + name: "Trinity Large Thinking", + family: "trinity", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.8999999999999999 }, + limit: { context: 262100, output: 80000 }, + }, + "arcee-ai/trinity-large-preview": { + id: "arcee-ai/trinity-large-preview", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 131000, output: 131000 }, + }, + "recraft/recraft-v3": { + id: "recraft/recraft-v3", + name: "Recraft V3", + family: "recraft", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "recraft/recraft-v2": { + id: "recraft/recraft-v2", + name: "Recraft V2", + family: "recraft", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "voyage/voyage-3-large": { + id: "voyage/voyage-3-large", + name: "voyage-3-large", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4-large": { + id: "voyage/voyage-4-large", + name: "voyage-4-large", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-3.5-lite": { + id: "voyage/voyage-3.5-lite", + name: "voyage-3.5-lite", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-code-3": { + id: "voyage/voyage-code-3", + name: "voyage-code-3", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-finance-2": { + id: "voyage/voyage-finance-2", + name: "voyage-finance-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4-lite": { + id: "voyage/voyage-4-lite", + name: "voyage-4-lite", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-4": { + id: "voyage/voyage-4", + name: "voyage-4", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-code-2": { + id: "voyage/voyage-code-2", + name: "voyage-code-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-law-2": { + id: "voyage/voyage-law-2", + name: "voyage-law-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-3.5": { + id: "voyage/voyage-3.5", + name: "voyage-3.5", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "morph/morph-v3-large": { + id: "morph/morph-v3-large", + name: "Morph v3 Large", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 32000, output: 32000 }, + }, + "morph/morph-v3-fast": { + id: "morph/morph-v3-fast", + name: "Morph v3 Fast", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 16000, output: 16000 }, + }, + "zai/glm-5v-turbo": { + id: "zai/glm-5v-turbo", + name: "GLM 5V Turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24 }, + limit: { context: 200000, output: 128000 }, + }, + "zai/glm-4.7": { + id: "zai/glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, + limit: { context: 202752, output: 120000 }, + }, + "zai/glm-5": { + id: "zai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131072 }, + }, + "zai/glm-4.7-flashx": { + id: "zai/glm-4.7-flashx", + name: "GLM 4.7 FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "zai/glm-4.6v-flash": { + id: "zai/glm-4.6v-flash", + name: "GLM-4.6V-Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 24000 }, + }, + "zai/glm-4.5": { + id: "zai/glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 131072 }, + }, + "zai/glm-4.5-air": { + id: "zai/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 128000, output: 96000 }, + }, + "zai/glm-5-turbo": { + id: "zai/glm-5-turbo", + name: "GLM 5 Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24 }, + limit: { context: 202800, output: 131100 }, + }, + "zai/glm-4.5v": { + id: "zai/glm-4.5v", + name: "GLM 4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 66000, output: 66000 }, + }, + "zai/glm-4.6": { + id: "zai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.8 }, + limit: { context: 200000, output: 96000 }, + }, + "zai/glm-4.6v": { + id: "zai/glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, + limit: { context: 128000, output: 24000 }, + }, + "zai/glm-4.7-flash": { + id: "zai/glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.39999999999999997 }, + limit: { context: 200000, output: 131000 }, + }, + "cohere/command-a": { + id: "cohere/command-a", + name: "Command A", + family: "command", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "cohere/embed-v4.0": { + id: "cohere/embed-v4.0", + name: "Embed v4.0", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "INTELLECT 3", + family: "intellect", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 131072 }, + }, + "xai/grok-4.20-non-reasoning": { + id: "xai/grok-4.20-non-reasoning", + name: "Grok 4.20 Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-non-reasoning-beta": { + id: "xai/grok-4.20-non-reasoning-beta", + name: "Grok 4.20 Beta Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-reasoning": { + id: "xai/grok-4.20-reasoning", + name: "Grok 4.20 Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-imagine-image": { + id: "xai/grok-imagine-image", + name: "Grok Imagine Image", + family: "grok", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4.20-multi-agent-beta": { + id: "xai/grok-4.20-multi-agent-beta", + name: "Grok 4.20 Multi Agent Beta", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-imagine-image-pro": { + id: "xai/grok-imagine-image-pro", + name: "Grok Imagine Image Pro", + family: "grok", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4-fast-reasoning": { + id: "xai/grok-4-fast-reasoning", + name: "Grok 4 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 256000 }, + }, + "xai/grok-4.1-fast-non-reasoning": { + id: "xai/grok-4.1-fast-non-reasoning", + name: "Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4.20-reasoning-beta": { + id: "xai/grok-4.20-reasoning-beta", + name: "Grok 4.20 Beta Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-multi-agent": { + id: "xai/grok-4.20-multi-agent", + name: "Grok 4.20 Multi-Agent", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.1-fast-reasoning": { + id: "xai/grok-4.1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4-fast-non-reasoning": { + id: "xai/grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-2-vision": { + id: "xai/grok-2-vision", + name: "Grok 2 Vision", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "xai/grok-code-fast-1": { + id: "xai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "xai/grok-3-fast": { + id: "xai/grok-3-fast", + name: "Grok 3 Fast", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-3-mini-fast": { + id: "xai/grok-3-mini-fast", + name: "Grok 3 Mini Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "NVIDIA Nemotron 3 Super 120B A12B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.65 }, + limit: { context: 256000, output: 32000 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "Nemotron 3 Nano 30B A3B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-12b-v2-vl": { + id: "nvidia/nemotron-nano-12b-v2-vl", + name: "Nvidia Nemotron Nano 12B V2 VL", + family: "nemotron", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "Nvidia Nemotron Nano 9B V2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.024999999999999998 }, + limit: { context: 128000, output: 128000 }, + }, + "inception/mercury-coder-small": { + id: "inception/mercury-coder-small", + name: "Mercury Coder Small Beta", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-02-26", + last_updated: "2025-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 32000, output: 16384 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "GPT 4o Mini Search Preview", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2023-09", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/codex-mini": { + id: "openai/codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.38 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "GPT-5.3 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT 5.2 ", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/text-embedding-3-large": { + id: "openai/text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT 5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/text-embedding-ada-002": { + id: "openai/text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3 Pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT 5.4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT 5.4 Nano", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1-thinking": { + id: "openai/gpt-5.1-thinking", + name: "GPT 5.1 Thinking", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT 5.4 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-09", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, input: 12289, output: 4096 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/text-embedding-3-small": { + id: "openai/text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT 5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 131072, input: 98304, output: 32768 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 128000, output: 272000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "gpt-oss-safeguard-20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3, cache_read: 0.04 }, + limit: { context: 131072, input: 65536, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-09", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 8192, input: 4096, output: 4096 }, + }, + "openai/gpt-5.1-instant": { + id: "openai/gpt-5.1-instant", + name: "GPT-5.1 Instant", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "amazon/titan-embed-text-v2": { + id: "amazon/titan-embed-text-v2", + name: "Titan Text Embeddings V2", + family: "titan-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-04", + last_updated: "2024-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "amazon/nova-2-lite": { + id: "amazon/nova-2-lite", + name: "Nova 2 Lite", + family: "nova", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 1000000 }, + }, + "amazon/nova-pro": { + id: "amazon/nova-pro", + name: "Nova Pro", + family: "nova-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, + limit: { context: 300000, output: 8192 }, + }, + "amazon/nova-lite": { + id: "amazon/nova-lite", + name: "Nova Lite", + family: "nova-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, + limit: { context: 300000, output: 8192 }, + }, + "amazon/nova-micro": { + id: "amazon/nova-micro", + name: "Nova Micro", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral/mistral-nemo": { + id: "mistral/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.17 }, + limit: { context: 60288, output: 16000 }, + }, + "mistral/ministral-14b": { + id: "mistral/ministral-14b", + name: "Ministral 14B", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/codestral-embed": { + id: "mistral/codestral-embed", + name: "Codestral Embed", + family: "codestral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "mistral/mistral-medium": { + id: "mistral/mistral-medium", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 64000 }, + }, + "mistral/mistral-embed": { + id: "mistral/mistral-embed", + name: "Mistral Embed", + family: "mistral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "mistral/devstral-2": { + id: "mistral/devstral-2", + name: "Devstral 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "mistral/mistral-large-3": { + id: "mistral/mistral-large-3", + name: "Mistral Large 3", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/devstral-small-2": { + id: "mistral/devstral-small-2", + name: "Devstral Small 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "mistral/devstral-small": { + id: "mistral/devstral-small", + name: "Devstral Small 1.1", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 64000 }, + }, + "mistral/ministral-8b": { + id: "mistral/ministral-8b", + name: "Ministral 8B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/magistral-medium": { + id: "mistral/magistral-medium", + name: "Magistral Medium (latest)", + family: "magistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 5 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral/mistral-small": { + id: "mistral/mistral-small", + name: "Mistral Small (latest)", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/magistral-small": { + id: "mistral/magistral-small", + name: "Magistral Small", + family: "magistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/pixtral-12b": { + id: "mistral/pixtral-12b", + name: "Pixtral 12B", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/mixtral-8x22b-instruct": { + id: "mistral/mixtral-8x22b-instruct", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 64000, output: 64000 }, + }, + "mistral/pixtral-large": { + id: "mistral/pixtral-large", + name: "Pixtral Large (latest)", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/ministral-3b": { + id: "mistral/ministral-3b", + name: "Ministral 3B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/codestral": { + id: "mistral/codestral", + name: "Codestral (latest)", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-05-29", + last_updated: "2025-01-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 4096 }, + }, + "meta/llama-3.2-1b": { + id: "meta/llama-3.2-1b", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.1-8b": { + id: "meta/llama-3.1-8b", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.05 }, + limit: { context: 131072, output: 16384 }, + }, + "meta/llama-3.2-90b": { + id: "meta/llama-3.2-90b", + name: "Llama 3.2 90B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-3b": { + id: "meta/llama-3.2-3b", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-11b": { + id: "meta/llama-3.2-11b", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.16 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.1-70b": { + id: "meta/llama-3.1-70b", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta/llama-3.3-70b": { + id: "meta/llama-3.3-70b", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-maverick": { + id: "meta/llama-4-maverick", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-scout": { + id: "meta/llama-4-scout", + name: "Llama-4-Scout-17B-16E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "vercel/v0-1.5-md": { + id: "vercel/v0-1.5-md", + name: "v0-1.5-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "vercel/v0-1.0-md": { + id: "vercel/v0-1.0-md", + name: "v0-1.0-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "Minimax M2.7", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131000 }, + }, + "minimax/minimax-m2.7-highspeed": { + id: "minimax/minimax-m2.7-highspeed", + name: "MiniMax M2.7 High Speed", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131100 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.15, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 262114, output: 262114 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.1-lightning": { + id: "minimax/minimax-m2.1-lightning", + name: "MiniMax M2.1 Lightning", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.4, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131000 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "MiniMax M2.5 High Speed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 0, output: 0 }, + }, + "kwaipilot/kat-coder-pro-v1": { + id: "kwaipilot/kat-coder-pro-v1", + name: "KAT-Coder-Pro V1", + family: "kat-coder", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-24", + last_updated: "2025-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "kwaipilot/kat-coder-pro-v2": { + id: "kwaipilot/kat-coder-pro-v2", + name: "Kat Coder Pro V2", + family: "kat-coder", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 256000 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1000000, output: 65000 }, + }, + "google/gemini-3-pro-image": { + id: "google/gemini-3-pro-image", + name: "Nano Banana Pro (Gemini 3 Pro Image)", + family: "gemini-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 2, output: 120 }, + limit: { context: 65536, output: 32768 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1000000, output: 64000 }, + }, + "google/imagen-4.0-ultra-generate-001": { + id: "google/imagen-4.0-ultra-generate-001", + name: "Imagen 4 Ultra", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-24", + last_updated: "2025-05-24", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-embedding-001": { + id: "google/gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma 4 31B IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.39999999999999997 }, + limit: { context: 262144, output: 131072 }, + }, + "google/gemini-2.5-flash-image": { + id: "google/gemini-2.5-flash-image", + name: "Nano Banana (Gemini 2.5 Flash Image)", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/text-embedding-005": { + id: "google/text-embedding-005", + name: "Text Embedding 005", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08", + last_updated: "2024-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/text-multilingual-embedding-002": { + id: "google/text-multilingual-embedding-002", + name: "Text Multilingual Embedding 002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemini-3.1-flash-image-preview": { + id: "google/gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image Preview (Nano Banana 2)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 131072, output: 32768 }, + }, + "google/gemini-3-flash": { + id: "google/gemini-3-flash", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/imagen-4.0-generate-001": { + id: "google/imagen-4.0-generate-001", + name: "Imagen 4", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-preview-09-2025": { + id: "google/gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-embedding-2": { + id: "google/gemini-embedding-2", + name: "Gemini Embedding 2", + family: "gemini-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "google/gemma-4-26b-a4b-it": { + id: "google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.39999999999999997 }, + limit: { context: 262144, output: 131072 }, + }, + "google/imagen-4.0-fast-generate-001": { + id: "google/imagen-4.0-fast-generate-001", + name: "Imagen 4 Fast", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash-image-preview": { + id: "google/gemini-2.5-flash-image-preview", + name: "Nano Banana Preview (Gemini 2.5 Flash Image Preview)", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-2.0-flash-lite": { + id: "google/gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash": { + id: "google/gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "moonshotai/kimi-k2-turbo": { + id: "moonshotai/kimi-k2-turbo", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.4, output: 10 }, + limit: { context: 256000, output: 16384 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking-turbo": { + id: "moonshotai/kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262114, output: 262114 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.47, output: 2, cache_read: 0.14 }, + limit: { context: 216144, output: 216144 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "anthropic/claude-3.5-sonnet-20240620": { + id: "anthropic/claude-3.5-sonnet-20240620", + name: "Claude 3.5 Sonnet (2024-06-20)", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3-opus": { + id: "anthropic/claude-3-opus", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo V2 Pro", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3, cache_read: 0.19999999999999998 }, + limit: { context: 1000000, output: 128000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.29 }, + limit: { context: 262144, output: 32000 }, + }, + "bytedance/seed-1.6": { + id: "bytedance/seed-1.6", + name: "Seed 1.6", + family: "seed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 32000 }, + }, + "bytedance/seed-1.8": { + id: "bytedance/seed-1.8", + name: "Seed 1.8", + family: "seed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 64000 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "LongCat Flash Chat", + family: "longcat", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-30", + last_updated: "2025-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "meituan/longcat-flash-thinking": { + id: "meituan/longcat-flash-thinking", + name: "LongCat Flash Thinking", + family: "longcat", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 128000, output: 8192 }, + }, + "meituan/longcat-flash-thinking-2601": { + id: "meituan/longcat-flash-thinking-2601", + name: "LongCat Flash Thinking 2601", + family: "longcat", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32768, output: 32768 }, + }, + "bfl/flux-pro-1.0-fill": { + id: "bfl/flux-pro-1.0-fill", + name: "FLUX.1 Fill [pro]", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-pro-1.1": { + id: "bfl/flux-pro-1.1", + name: "FLUX1.1 [pro]", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-kontext-pro": { + id: "bfl/flux-kontext-pro", + name: "FLUX.1 Kontext Pro", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-kontext-max": { + id: "bfl/flux-kontext-max", + name: "FLUX.1 Kontext Max", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-pro-1.1-ultra": { + id: "bfl/flux-pro-1.1-ultra", + name: "FLUX1.1 [pro] Ultra", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + }, + }, + minimax: { + id: "minimax", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimax.io/anthropic/v1", + name: "MiniMax (minimax.io)", + doc: "https://platform.minimax.io/docs/guides/quickstart", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + llmgateway: { + id: "llmgateway", + env: ["LLMGATEWAY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.llmgateway.io/v1", + name: "LLM Gateway", + doc: "https://llmgateway.io/docs", + models: { + "minimax-m2.7": { + id: "minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131100 }, + }, + "gpt-4o-mini-search-preview": { + id: "gpt-4o-mini-search-preview", + name: "GPT-4o Mini Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4-20-beta-0309-non-reasoning": { + id: "grok-4-20-beta-0309-non-reasoning", + name: "Grok 4.20 Beta Non-Reasoning (0309)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 2000000, output: 30000 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 6, output: 60 }, + limit: { context: 1000000, output: 66000 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview (09-2025)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65535 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-21", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 32768 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "Mistral Large 3", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 16384 }, + }, + "llama-4-scout": { + id: "llama-4-scout", + name: "Llama 4 Scout", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.59 }, + limit: { context: 32768, output: 16384 }, + status: "beta", + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "minimax-m2.7-highspeed": { + id: "minimax-m2.7-highspeed", + name: "MiniMax M2.7 Highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06 }, + limit: { context: 204800, output: 131100 }, + }, + "hermes-2-pro-llama-3-8b": { + id: "hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + status: "beta", + }, + "qwen-coder-plus": { + id: "qwen-coder-plus", + name: "Qwen Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 131072, output: 8192 }, + }, + auto: { + id: "auto", + name: "Auto Route", + family: "auto", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gemma-3n-e4b-it": { + id: "gemma-3n-e4b-it", + name: "Gemma 3n E4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude 3.5 Sonnet (2024-10-22)", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 8192 }, + status: "deprecated", + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 272000 }, + }, + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 131072, output: 8192 }, + }, + "glm-4.6v-flashx": { + id: "glm-4.6v-flashx", + name: "GLM-4.6V FlashX", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.4, cache_read: 0 }, + limit: { context: 128000, output: 16000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen VL Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.21, output: 0.64 }, + limit: { context: 131072, output: 32000 }, + }, + "gemma-2-27b-it-together": { + id: "gemma-2-27b-it-together", + name: "Gemma 2 27B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.08 }, + limit: { context: 8192, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131100 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, output: 8192 }, + }, + "codestral-2508": { + id: "codestral-2508", + name: "Codestral", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 16384 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7 FlashX", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "gemma-3-1b-it": { + id: "gemma-3-1b-it", + name: "Gemma 3 1B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro (Preview)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen35-397b-a17b": { + id: "qwen35-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 131072, output: 32000 }, + }, + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1048576, output: 8192 }, + status: "deprecated", + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash (Preview)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65535 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 131072, output: 32000 }, + }, + "glm-4-32b-0414-128k": { + id: "glm-4-32b-0414-128k", + name: "GLM-4 32B (0414-128k)", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 16384 }, + }, + "seed-1-6-flash-250715": { + id: "seed-1-6-flash-250715", + name: "Seed 1.6 Flash (250715)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen Omni Turbo", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-26", + last_updated: "2025-03-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 32768, output: 8192 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Claude 3 Haiku (2024-03-07)", + family: "claude", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03 }, + limit: { context: 200000, output: 4096 }, + }, + "seed-1-6-250615": { + id: "seed-1-6-250615", + name: "Seed 1.6 (250615)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-vl-235b-a22b-thinking": { + id: "qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-vl-30b-a3b-thinking": { + id: "qwen3-vl-30b-a3b-thinking", + name: "Qwen3 VL 30B A3B Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1 }, + limit: { context: 131072, output: 32768 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1, cache_read: 0.03 }, + limit: { context: 196608, output: 131072 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5 (2025-09-29)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-09", + last_updated: "2024-09-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 1000000, output: 32000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 16384 }, + }, + "cogview-4": { + id: "cogview-4", + name: "CogView-4", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-03-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen2-5-vl-32b-instruct": { + id: "qwen2-5-vl-32b-instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.2 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Sonar Pro", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-07", + last_updated: "2025-03-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 16384 }, + }, + "pixtral-large-latest": { + id: "pixtral-large-latest", + name: "Pixtral Large Latest", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-11-18", + last_updated: "2024-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 12 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-vl-8b-instruct": { + id: "qwen3-vl-8b-instruct", + name: "Qwen3 VL 8B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "claude-3-7-sonnet": { + id: "claude-3-7-sonnet", + name: "Claude 3.7 Sonnet", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 8192 }, + }, + "grok-4-20-beta-0309-reasoning": { + id: "grok-4-20-beta-0309-reasoning", + name: "Grok 4.20 Beta Reasoning (0309)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-imagine-image": { + id: "grok-imagine-image", + name: "Grok Imagine Image", + family: "grok", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-02", + last_updated: "2026-03-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-pro-latest": { + id: "gemini-pro-latest", + name: "Gemini Pro Latest", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-27", + last_updated: "2026-02-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.08 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-3-5-haiku": { + id: "claude-3-5-haiku", + name: "Claude 3.5 Haiku", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08 }, + limit: { context: 200000, output: 8192 }, + status: "deprecated", + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 15, cache_read: 0.6 }, + limit: { context: 256000, output: 32800 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1 }, + limit: { context: 196608, output: 131072 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "Gemini 3 Pro Image (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 65536, output: 32768 }, + }, + "mixtral-8x7b-instruct-together": { + id: "mixtral-8x7b-instruct-together", + name: "Mixtral 8x7B Instruct", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2023-12-10", + last_updated: "2023-12-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-max-latest": { + id: "qwen-max-latest", + name: "Qwen Max Latest", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 131072, output: 32000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 16384 }, + }, + "glm-4.6v-flash": { + id: "glm-4.6v-flash", + name: "GLM-4.6V Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-02", + last_updated: "2025-10-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.03 }, + limit: { context: 32768, output: 32768 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-large-latest": { + id: "mistral-large-latest", + name: "Mistral Large Latest", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 12 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-small-2506": { + id: "mistral-small-2506", + name: "Mistral Small 3.2", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "seedream-4-0": { + id: "seedream-4-0", + name: "Seedream 4.0", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 8192 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax-text-01": { + id: "minimax-text-01", + name: "MiniMax Text 01", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000000, output: 131072 }, + }, + "qwen3-32b-fp8": { + id: "qwen3-32b-fp8", + name: "Qwen3 32B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65535 }, + }, + "llama-4-scout-17b-instruct": { + id: "llama-4-scout-17b-instruct", + name: "Llama 4 Scout 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 8192, output: 2048 }, + status: "beta", + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, output: 16400 }, + }, + "qwen3-4b-fp8": { + id: "qwen3-4b-fp8", + name: "Qwen3 4B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 128000, output: 20000 }, + }, + "veo-3.1-generate-preview": { + id: "veo-3.1-generate-preview", + name: "Veo 3.1", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-14", + last_updated: "2026-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 1 }, + status: "beta", + }, + "llama-guard-4-12b": { + id: "llama-guard-4-12b", + name: "Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 131072, output: 16384 }, + }, + "gemma-3n-e2b-it": { + id: "gemma-3n-e2b-it", + name: "Gemma 3n E2B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3.1-flash-image-preview": { + id: "gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "ministral-8b-2512": { + id: "ministral-8b-2512", + name: "Ministral 8B", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, output: 16384 }, + }, + "grok-4-fast": { + id: "grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "gemma-3-27b": { + id: "gemma-3-27b", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-imagine-image-pro": { + id: "grok-imagine-image-pro", + name: "Grok Imagine Image Pro", + family: "grok", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-02", + last_updated: "2026-03-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-vl-flash": { + id: "qwen3-vl-flash", + name: "Qwen3 VL Flash", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 262144, output: 32768 }, + }, + "llama-3.1-70b-instruct": { + id: "llama-3.1-70b-instruct", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 2048 }, + status: "beta", + }, + "seed-1-8-251228": { + id: "seed-1-8-251228", + name: "Seed 1.8 (251228)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 6 }, + limit: { context: 131072, output: 32768 }, + status: "beta", + }, + "seed-1-6-250915": { + id: "seed-1-6-250915", + name: "Seed 1.6 (250915)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 16384 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, output: 10000 }, + }, + "glm-4.5-x": { + id: "glm-4.5-x", + name: "GLM-4.5 X", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 8.9, cache_read: 0.45 }, + limit: { context: 128000, output: 16384 }, + status: "beta", + }, + "veo-3.1-fast-generate-preview": { + id: "veo-3.1-fast-generate-preview", + name: "Veo 3.1 Fast", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-14", + last_updated: "2026-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 1 }, + status: "beta", + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gemma-3-4b-it": { + id: "gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen-image-max": { + id: "qwen-image-max", + name: "Qwen Image Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-04", + last_updated: "2025-08-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-30b-a3b-thinking-2507": { + id: "qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 8192 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + o1: { + id: "o1", + name: "o1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 16384 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5 Air", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.1, cache_read: 0.03 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, output: 128000 }, + }, + "claude-3-5-sonnet": { + id: "claude-3-5-sonnet", + name: "Claude 3.5 Sonnet", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 16384 }, + }, + "gpt-3.5-turbo": { + id: "gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2022-11-30", + last_updated: "2022-11-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, output: 16384 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3 Mini", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen-image-max-2025-12-30": { + id: "qwen-image-max-2025-12-30", + name: "Qwen Image Max 2025-12-30", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-31", + last_updated: "2025-12-31", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen VL Max", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 32000 }, + }, + sonar: { + id: "sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 130000, output: 16384 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.5, cache_read: 0.06 }, + limit: { context: 1000000, output: 65536 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.11 }, + limit: { context: 128000, output: 32768 }, + }, + "ministral-3b-2512": { + id: "ministral-3b-2512", + name: "Ministral 3B", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 16384 }, + }, + "grok-4-20-multi-agent-beta-0309": { + id: "grok-4-20-multi-agent-beta-0309", + name: "Grok 4.20 Multi-Agent Beta (0309)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 2000000, output: 30000 }, + }, + "qwen-plus-latest": { + id: "qwen-plus-latest", + name: "Qwen Plus Latest", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-09", + last_updated: "2024-09-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 1000000, output: 32000 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 128000, output: 16000 }, + }, + "seedream-4-5": { + id: "seedream-4-5", + name: "Seedream 4.5", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "llama-3.1-nemotron-ultra-253b": { + id: "llama-3.1-nemotron-ultra-253b", + name: "Llama 3.1 Nemotron Ultra 253B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-07", + last_updated: "2025-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 256000 }, + }, + "llama-4-maverick-17b-instruct": { + id: "llama-4-maverick-17b-instruct", + name: "Llama 4 Maverick 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.97 }, + limit: { context: 8192, output: 2048 }, + status: "beta", + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "Grok 4 (0709)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 256000 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 129024, output: 32768 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "qwen-image": { + id: "qwen-image", + name: "Qwen Image", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-04", + last_updated: "2025-08-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen-image-edit-plus": { + id: "qwen-image-edit-plus", + name: "Qwen Image Edit Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen3-30b-a3b-fp8": { + id: "qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "minimax-m2.1-lightning": { + id: "minimax-m2.1-lightning", + name: "MiniMax M2.1 Lightning", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.48 }, + limit: { context: 196608, output: 131072 }, + }, + "claude-3-haiku": { + id: "claude-3-haiku", + name: "Claude 3 Haiku", + family: "claude", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03 }, + limit: { context: 200000, output: 4096 }, + }, + "glm-image": { + id: "glm-image", + name: "GLM-Image", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-14", + last_updated: "2025-01-14", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, + limit: { context: 128000, output: 16000 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max 2026-01-23", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 65536 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, output: 128000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5 (2025-10-01)", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen-image-edit-max": { + id: "qwen-image-edit-max", + name: "Qwen Image Edit Max", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-16", + last_updated: "2026-01-16", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5 Flash", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-3.2-3b-instruct": { + id: "llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.05 }, + limit: { context: 32768, output: 32000 }, + status: "beta", + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.68, cache_read: 0.06 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen-image-plus": { + id: "qwen-image-plus", + name: "Qwen Image Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-04", + last_updated: "2025-08-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3 VL Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.6, cache_read: 0.04 }, + limit: { context: 262144, output: 32768 }, + }, + "grok-4-1-fast": { + id: "grok-4-1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4 (2025-05-14)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.8 }, + limit: { context: 262000, output: 8192 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 1000000, output: 128000 }, + }, + "gpt-4o-search-preview": { + id: "gpt-4o-search-preview", + name: "GPT-4o Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + custom: { + id: "custom", + name: "Custom Model", + family: "auto", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 Nano", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1000000, output: 16384 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude 3.7 Sonnet (2025-02-19)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 8192 }, + }, + "qwen3-vl-30b-a3b-instruct": { + id: "qwen3-vl-30b-a3b-instruct", + name: "Qwen3 VL 30B A3B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-10-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 8192 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + o3: { + id: "o3", + name: "o3", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 16384 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 163840, output: 16384 }, + }, + "qwen3-235b-a22b-fp8": { + id: "qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 32766 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "minimax-m2.5-highspeed": { + id: "minimax-m2.5-highspeed", + name: "MiniMax M2.5 Highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 1000000, output: 8192 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3, cache_read: 0.5 }, + limit: { context: 131072, output: 16384 }, + }, + "llama-3-8b-instruct": { + id: "llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 8192, output: 8192 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-vl-235b-a22b-instruct": { + id: "qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7 Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "gemini-2.5-flash-image-preview": { + id: "gemini-2.5-flash-image-preview", + name: "Gemini 2.5 Flash Image (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-02", + last_updated: "2025-10-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 131072, output: 32766 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "GPT-5 Chat Latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4 (2025-05-14)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-26", + last_updated: "2025-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen25-coder-7b": { + id: "qwen25-coder-7b", + name: "Qwen2.5 Coder 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 32768, output: 8192 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 2048 }, + status: "beta", + }, + "llama-3-70b-instruct": { + id: "llama-3-70b-instruct", + name: "Llama 3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek R1 (0528)", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 64000, output: 16384 }, + status: "beta", + }, + "glm-4.5-airx": { + id: "glm-4.5-airx", + name: "GLM-4.5 AirX", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.5, cache_read: 0.22 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "devstral-small-2507": { + id: "devstral-small-2507", + name: "Devstral Small 1.1", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-21", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-02-25", + last_updated: "2025-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + status: "deprecated", + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1000000, output: 16384 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 272000 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok-3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 131072, output: 16384 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-10-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "ministral-14b-2512": { + id: "ministral-14b-2512", + name: "Ministral 14B", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, output: 16384 }, + }, + "llama-3.2-11b-instruct": { + id: "llama-3.2-11b-instruct", + name: "Llama 3.2 11B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.33 }, + limit: { context: 128000, output: 16384 }, + status: "beta", + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-07", + last_updated: "2025-03-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-3-opus": { + id: "claude-3-opus", + name: "Claude 3 Opus", + family: "claude", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5 }, + limit: { context: 200000, output: 4096 }, + }, + }, + }, + "google-vertex": { + id: "google-vertex", + env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], + npm: "@ai-sdk/google-vertex", + name: "Vertex", + doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + models: { + "gemini-flash-lite-latest": { + id: "gemini-flash-lite-latest", + name: "Gemini Flash-Lite Latest", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview-customtools": { + id: "gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash Preview 05-20", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-embedding-001": { + id: "gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-05", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 2048, output: 3072 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-flash-latest": { + id: "gemini-flash-latest", + name: "Gemini Flash Latest", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview 06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 65536, output: 65536 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview 04-17", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "zai-org/glm-5-maas": { + id: "zai-org/glm-5-maas", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.1 }, + limit: { context: 202752, output: 131072 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "zai-org/glm-4.7-maas": { + id: "zai-org/glm-4.7-maas", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-06", + last_updated: "2026-01-06", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "deepseek-ai/deepseek-v3.2-maas": { + id: "deepseek-ai/deepseek-v3.2-maas", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-04-04", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.056 }, + limit: { context: 163840, output: 65536 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "deepseek-ai/deepseek-v3.1-maas": { + id: "deepseek-ai/deepseek-v3.1-maas", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.7 }, + limit: { context: 163840, output: 32768 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "openai/gpt-oss-120b-maas": { + id: "openai/gpt-oss-120b-maas", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-20b-maas": { + id: "openai/gpt-oss-20b-maas", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.25 }, + limit: { context: 131072, output: 32768 }, + }, + "meta/llama-3.3-70b-instruct-maas": { + id: "meta/llama-3.3-70b-instruct-maas", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 8192 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "meta/llama-4-maverick-17b-128e-instruct-maas": { + id: "meta/llama-4-maverick-17b-128e-instruct-maas", + name: "Llama 4 Maverick 17B 128E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.15 }, + limit: { context: 524288, output: 8192 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "qwen/qwen3-235b-a22b-instruct-2507-maas": { + id: "qwen/qwen3-235b-a22b-instruct-2507-maas", + name: "Qwen3 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 262144, output: 16384 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "moonshotai/kimi-k2-thinking-maas": { + id: "moonshotai/kimi-k2-thinking-maas", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + }, + }, + "cloudflare-workers-ai": { + id: "cloudflare-workers-ai", + env: ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", + name: "Cloudflare Workers AI", + doc: "https://developers.cloudflare.com/workers-ai/models/", + models: { + "@cf/zai-org/glm-4.7-flash": { + id: "@cf/zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "@cf/nvidia/nemotron-3-120b-a12b": { + id: "@cf/nvidia/nemotron-3-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "@cf/openai/gpt-oss-20b": { + id: "@cf/openai/gpt-oss-20b", + name: "GPT OSS 20B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/openai/gpt-oss-120b": { + id: "@cf/openai/gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-4-scout-17b-16e-instruct": { + id: "@cf/meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/google/gemma-4-26b-a4b-it": { + id: "@cf/google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 256000, output: 16384 }, + }, + "@cf/moonshotai/kimi-k2.5": { + id: "@cf/moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + }, + }, + groq: { + id: "groq", + env: ["GROQ_API_KEY"], + npm: "@ai-sdk/groq", + name: "Groq", + doc: "https://console.groq.com/docs/models", + models: { + "gemma2-9b-it": { + id: "gemma2-9b-it", + name: "Gemma 2 9B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "mistral-saba-24b": { + id: "mistral-saba-24b", + name: "Mistral Saba 24B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-02-06", + last_updated: "2025-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.79, output: 0.79 }, + limit: { context: 32768, output: 32768 }, + status: "deprecated", + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 0.99 }, + limit: { context: 131072, output: 8192 }, + status: "deprecated", + }, + "llama-guard-3-8b": { + id: "llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 131072, output: 32768 }, + }, + "allam-2-7b": { + id: "allam-2-7b", + name: "ALLaM-2-7b", + family: "allam", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 4096 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper Large V3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 448, output: 448 }, + }, + "llama-3.1-8b-instant": { + id: "llama-3.1-8b-instant", + name: "Llama 3.1 8B Instant", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 131072, output: 131072 }, + }, + "llama3-70b-8192": { + id: "llama3-70b-8192", + name: "Llama 3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "qwen-qwq-32b": { + id: "qwen-qwq-32b", + name: "Qwen QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-27", + last_updated: "2024-11-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.39 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "whisper-large-v3-turbo": { + id: "whisper-large-v3-turbo", + name: "Whisper Large v3 Turbo", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 448, output: 448 }, + }, + "llama3-8b-8192": { + id: "llama3-8b-8192", + name: "Llama 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "canopylabs/orpheus-arabic-saudi": { + id: "canopylabs/orpheus-arabic-saudi", + name: "Orpheus Arabic Saudi", + family: "canopylabs", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-12-16", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 40, output: 0 }, + limit: { context: 4000, output: 50000 }, + }, + "canopylabs/orpheus-v1-english": { + id: "canopylabs/orpheus-v1-english", + name: "Orpheus V1 English", + family: "canopylabs", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-12-19", + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4000, output: 50000 }, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + id: "meta-llama/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.34 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-prompt-guard-2-22m": { + id: "meta-llama/llama-prompt-guard-2-22m", + name: "Llama Prompt Guard 2 22M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 512, output: 512 }, + }, + "meta-llama/llama-guard-4-12b": { + id: "meta-llama/llama-guard-4-12b", + name: "Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 131072, output: 1024 }, + status: "deprecated", + }, + "meta-llama/llama-4-maverick-17b-128e-instruct": { + id: "meta-llama/llama-4-maverick-17b-128e-instruct", + name: "Llama 4 Maverick 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 8192 }, + status: "deprecated", + }, + "meta-llama/llama-prompt-guard-2-86m": { + id: "meta-llama/llama-prompt-guard-2-86m", + name: "Llama Prompt Guard 2 86M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 512, output: 512 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "Safety GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 65536 }, + }, + "qwen/qwen3-32b": { + id: "qwen/qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11-08", + release_date: "2024-12-23", + last_updated: "2024-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.59 }, + limit: { context: 131072, output: 40960 }, + }, + "groq/compound": { + id: "groq/compound", + name: "Compound", + family: "groq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09-04", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "groq/compound-mini": { + id: "groq/compound-mini", + name: "Compound Mini", + family: "groq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09-04", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "moonshotai/kimi-k2-instruct-0905": { + id: "moonshotai/kimi-k2-instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 262144, output: 16384 }, + }, + }, + }, + azure: { + id: "azure", + env: ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], + npm: "@ai-sdk/azure", + name: "Azure", + doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + models: { + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2-chat": { + id: "gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "codex-mini": { + id: "codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "phi-4-multimodal": { + id: "phi-4-multimodal", + name: "Phi-4-multimodal", + family: "phi", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.32, input_audio: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-3.5-mini-instruct": { + id: "phi-3.5-mini-instruct", + name: "Phi-3.5-mini-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-scout-17b-16e-instruct": { + id: "llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.78 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 128000, input: 128000, output: 8192 }, + status: "beta", + }, + "phi-3-medium-4k-instruct": { + id: "phi-3-medium-4k-instruct", + name: "Phi-3-medium-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 4096, output: 1024 }, + }, + "ministral-3b": { + id: "ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "meta-llama-3.1-8b-instruct": { + id: "meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 128000, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + shape: "completions", + }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 32768 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.14, output: 4.56 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-chat": { + id: "gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-10-24", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, output: 16384 }, + }, + "phi-3.5-moe-instruct": { + id: "phi-3.5-moe-instruct", + name: "Phi-3.5-MoE-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.64 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.3-chat": { + id: "gpt-5.3-chat", + name: "GPT-5.3 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "phi-3-mini-128k-instruct": { + id: "phi-3-mini-128k-instruct", + name: "Phi-3-mini-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-4-reasoning": { + id: "phi-4-reasoning", + name: "Phi-4-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 272000, output: 128000 }, + }, + "meta-llama-3-70b-instruct": { + id: "meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 8192, output: 2048 }, + }, + "phi-3-small-8k-instruct": { + id: "phi-3-small-8k-instruct", + name: "Phi-3-small-instruct (8k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "llama-3.2-90b-vision-instruct": { + id: "llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.04, output: 2.04 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 128000, input: 128000, output: 8192 }, + status: "beta", + }, + "deepseek-v3.2-speciale": { + id: "deepseek-v3.2-speciale", + name: "DeepSeek-V3.2-Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "cohere-command-r-08-2024": { + id: "cohere-command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere-command-a": { + id: "cohere-command-a", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "llama-3.2-11b-vision-instruct": { + id: "llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.37, output: 0.37 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama-3.1-405b-instruct": { + id: "meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 5.33, output: 16 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.1-chat": { + id: "gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4-turbo-vision": { + id: "gpt-4-turbo-vision", + name: "GPT-4 Turbo Vision", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "cohere-embed-v-4-0": { + id: "cohere-embed-v-4-0", + name: "Embed v4", + family: "cohere-embed", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0 }, + limit: { context: 128000, output: 1536 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-3.5-turbo-0125": { + id: "gpt-3.5-turbo-0125", + name: "GPT-3.5 Turbo 0125", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16384, output: 16384 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 66, cache_read: 8.25 }, + limit: { context: 128000, output: 32768 }, + }, + "cohere-embed-v3-multilingual": { + id: "cohere-embed-v3-multilingual", + name: "Embed v3 Multilingual", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "grok-4-20-non-reasoning": { + id: "grok-4-20-non-reasoning", + name: "Grok 4.20 (Non-Reasoning)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 272000, output: 128000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "mistral-small-2503": { + id: "mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "model-router": { + id: "model-router", + name: "Model Router", + family: "model-router", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-05-19", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-3.5-turbo-1106": { + id: "gpt-3.5-turbo-1106", + name: "GPT-3.5 Turbo 1106", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 16384, output: 16384 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-3-mini-4k-instruct": { + id: "phi-3-mini-4k-instruct", + name: "Phi-3-mini-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 4096, output: 1024 }, + }, + "meta-llama-3.1-70b-instruct": { + id: "meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 128000, output: 32768 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "phi-4-mini-reasoning": { + id: "phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 8192, output: 8192 }, + }, + "meta-llama-3-8b-instruct": { + id: "meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "phi-4-mini": { + id: "phi-4-mini", + name: "Phi-4-mini", + family: "phi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "grok-4-20-reasoning": { + id: "grok-4-20-reasoning", + name: "Grok 4.20 (Reasoning)", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "gpt-3.5-turbo-0301": { + id: "gpt-3.5-turbo-0301", + name: "GPT-3.5 Turbo 0301", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-3-small-128k-instruct": { + id: "phi-3-small-128k-instruct", + name: "Phi-3-small-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "phi-3-medium-128k-instruct": { + id: "phi-3-medium-128k-instruct", + name: "Phi-3-medium-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-3.5-turbo-0613": { + id: "gpt-3.5-turbo-0613", + name: "GPT-3.5 Turbo 0613", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16384, output: 16384 }, + }, + "cohere-command-r-plus-08-2024": { + id: "cohere-command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-4": { + id: "phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-4-32k": { + id: "gpt-4-32k", + name: "GPT-4 32K", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 32768, output: 32768 }, + }, + "cohere-embed-v3-english": { + id: "cohere-embed-v3-english", + name: "Embed v3 English", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "phi-4-reasoning-plus": { + id: "phi-4-reasoning-plus", + name: "Phi-4-reasoning-plus", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-3.5-turbo-instruct": { + id: "gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-09-21", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "codestral-2501": { + id: "codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "mai-ds-r1": { + id: "mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 8192 }, + }, + }, + }, + fastrouter: { + id: "fastrouter", + env: ["FASTROUTER_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://go.fastrouter.ai/api/v1", + name: "FastRouter", + doc: "https://fastrouter.ai/models", + models: { + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 256000, output: 64000 }, + }, + "deepseek-ai/deepseek-r1-distill-llama-70b": { + id: "deepseek-ai/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-23", + last_updated: "2025-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32768 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + stackit: { + id: "stackit", + env: ["STACKIT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1", + name: "STACKIT", + doc: "https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models", + models: { + "Qwen/Qwen3-VL-Embedding-8B": { + id: "Qwen/Qwen3-VL-Embedding-8B", + name: "Qwen3-VL Embedding 8B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.09 }, + limit: { context: 32000, output: 4096 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", + name: "Qwen3-VL 235B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.64, output: 1.91 }, + limit: { context: 218000, output: 8192 }, + }, + "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": { + id: "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.27 }, + limit: { context: 128000, output: 8192 }, + }, + "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": { + id: "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", + name: "Mistral Nemo", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 131000, output: 8192 }, + }, + "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": { + id: "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 128000, output: 8192 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-05-17", + last_updated: "2025-05-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 37000, output: 8192 }, + }, + "intfloat/e5-mistral-7b-instruct": { + id: "intfloat/e5-mistral-7b-instruct", + name: "E5 Mistral 7B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 4096, output: 4096 }, + }, + }, + }, + "tencent-coding-plan": { + id: "tencent-coding-plan", + env: ["TENCENT_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.lkeap.cloud.tencent.com/coding/v3", + name: "Tencent Coding Plan (China)", + doc: "https://cloud.tencent.com/document/product/1772/128947", + models: { + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "hunyuan-turbos": { + id: "hunyuan-turbos", + name: "Hunyuan-TurboS", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-t1": { + id: "hunyuan-t1", + name: "Hunyuan-T1", + family: "hunyuan", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-2.0-instruct": { + id: "hunyuan-2.0-instruct", + name: "Tencent HY 2.0 Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 32768 }, + }, + "tc-code-latest": { + id: "tc-code-latest", + name: "Auto", + family: "auto", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-2.0-thinking": { + id: "hunyuan-2.0-thinking", + name: "Tencent HY 2.0 Think", + family: "hunyuan", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + }, + }, + "privatemode-ai": { + id: "privatemode-ai", + env: ["PRIVATEMODE_API_KEY", "PRIVATEMODE_ENDPOINT"], + npm: "@ai-sdk/openai-compatible", + api: "http://localhost:8080/v1", + name: "Privatemode AI", + doc: "https://docs.privatemode.ai/api/overview", + models: { + "gemma-3-27b": { + id: "gemma-3-27b", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper large-v3", + family: "whisper", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2023-09-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "qwen3-embedding-4b": { + id: "qwen3-embedding-4b", + name: "Qwen3-Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-06", + last_updated: "2025-06-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32000, output: 2560 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-04", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-coder-30b-a3b": { + id: "qwen3-coder-30b-a3b", + name: "Qwen3-Coder 30B-A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + google: { + id: "google", + env: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], + npm: "@ai-sdk/google", + name: "Google", + doc: "https://ai.google.dev/gemini-api/docs/pricing", + models: { + "gemini-flash-lite-latest": { + id: "gemini-flash-lite-latest", + name: "Gemini Flash-Lite Latest", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-live-2.5-flash-preview-native-audio": { + id: "gemini-live-2.5-flash-preview-native-audio", + name: "Gemini Live 2.5 Flash Preview Native Audio", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-09-18", + modalities: { input: ["text", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, + limit: { context: 131072, output: 65536 }, + }, + "gemini-3.1-pro-preview-customtools": { + id: "gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-1.5-flash": { + id: "gemini-1.5-flash", + name: "Gemini 1.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.01875 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemini-1.5-pro": { + id: "gemini-1.5-pro", + name: "Gemini 1.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-02-15", + last_updated: "2024-02-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 5, cache_read: 0.3125 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemma-3n-e4b-it": { + id: "gemma-3n-e4b-it", + name: "Gemma 3n 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-tts": { + id: "gemini-2.5-flash-preview-tts", + name: "Gemini 2.5 Flash Preview TTS", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 0.5, output: 10 }, + limit: { context: 8000, output: 16000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash Preview 05-20", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-embedding-001": { + id: "gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-05", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 2048, output: 3072 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-flash-latest": { + id: "gemini-flash-latest", + name: "Gemini Flash Latest", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-4-31b-it": { + id: "gemma-4-31b-it", + name: "Gemma 4 31B", + family: "gemma", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 256000, output: 8192 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview 06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025, input_audio: 0.3 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Gemma 3 12B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-3n-e2b-it": { + id: "gemma-3n-e2b-it", + name: "Gemma 3n 2B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "gemini-3.1-flash-image-preview": { + id: "gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 60 }, + limit: { context: 131072, output: 32768 }, + }, + "gemma-3-4b-it": { + id: "gemma-3-4b-it", + name: "Gemma 3 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview 04-17", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-tts": { + id: "gemini-2.5-pro-preview-tts", + name: "Gemini 2.5 Pro Preview TTS", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 1, output: 20 }, + limit: { context: 8000, output: 16000 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-3-27b-it": { + id: "gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-4-26b-it": { + id: "gemma-4-26b-it", + name: "Gemma 4 26B", + family: "gemma", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 256000, output: 8192 }, + }, + "gemini-2.5-flash-image-preview": { + id: "gemini-2.5-flash-image-preview", + name: "Gemini 2.5 Flash Image (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-1.5-flash-8b": { + id: "gemini-1.5-flash-8b", + name: "Gemini 1.5 Flash-8B", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-03", + last_updated: "2024-10-03", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0375, output: 0.15, cache_read: 0.01 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemini-live-2.5-flash": { + id: "gemini-live-2.5-flash", + name: "Gemini Live 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, + limit: { context: 128000, output: 8000 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + }, + }, + drun: { + id: "drun", + env: ["DRUN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://chat.d.run/v1", + name: "D.Run (China)", + doc: "https://www.d.run", + models: { + "public/deepseek-r1": { + id: "public/deepseek-r1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32000 }, + }, + "public/minimax-m25": { + id: "public/minimax-m25", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1.16 }, + limit: { context: 204800, output: 131072 }, + }, + "public/deepseek-v3": { + id: "public/deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + moonshotai: { + id: "moonshotai", + env: ["MOONSHOT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.moonshot.ai/v1", + name: "Moonshot AI", + doc: "https://platform.moonshot.ai/docs/api/chat", + models: { + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 10, cache_read: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0711-preview": { + id: "kimi-k2-0711-preview", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + berget: { + id: "berget", + env: ["BERGET_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.berget.ai/v1", + name: "Berget.AI", + doc: "https://api.berget.ai", + models: { + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.3 }, + limit: { context: 128000, output: 8192 }, + }, + "BAAI/bge-reranker-v2-m3": { + id: "BAAI/bge-reranker-v2-m3", + name: "bge-reranker-v2-m3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-23", + last_updated: "2025-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 512, output: 512 }, + }, + "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct 2506", + family: "mistral-small", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32000, output: 8192 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 8192 }, + }, + "KBLab/kb-whisper-large": { + id: "KBLab/kb-whisper-large", + name: "KB-Whisper-Large", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 480000, output: 4800 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS-120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 8192 }, + }, + "intfloat/multilingual-e5-large-instruct": { + id: "intfloat/multilingual-e5-large-instruct", + name: "Multilingual-E5-large-instruct", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "intfloat/multilingual-e5-large": { + id: "intfloat/multilingual-e5-large", + name: "Multilingual-E5-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-09", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + }, + }, + "github-models": { + id: "github-models", + env: ["GITHUB_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.github.ai/inference", + name: "GitHub Models", + doc: "https://docs.github.com/en/github-models", + models: { + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "ai21-labs/ai21-jamba-1.5-mini": { + id: "ai21-labs/ai21-jamba-1.5-mini", + name: "AI21 Jamba 1.5 Mini", + family: "jamba", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-29", + last_updated: "2024-08-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 4096 }, + }, + "ai21-labs/ai21-jamba-1.5-large": { + id: "ai21-labs/ai21-jamba-1.5-large", + name: "AI21 Jamba 1.5 Large", + family: "jamba", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-29", + last_updated: "2024-08-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 4096 }, + }, + "microsoft/phi-3.5-mini-instruct": { + id: "microsoft/phi-3.5-mini-instruct", + name: "Phi-3.5-mini instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-4k-instruct": { + id: "microsoft/phi-3-medium-4k-instruct", + name: "Phi-3-medium instruct (4k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 1024 }, + }, + "microsoft/phi-3.5-moe-instruct": { + id: "microsoft/phi-3.5-moe-instruct", + name: "Phi-3.5-MoE instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-mini-128k-instruct": { + id: "microsoft/phi-3-mini-128k-instruct", + name: "Phi-3-mini instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-mini-instruct": { + id: "microsoft/phi-4-mini-instruct", + name: "Phi-4-mini-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-reasoning": { + id: "microsoft/phi-4-reasoning", + name: "Phi-4-Reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-8k-instruct": { + id: "microsoft/phi-3-small-8k-instruct", + name: "Phi-3-small instruct (8k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "microsoft/phi-3.5-vision-instruct": { + id: "microsoft/phi-3.5-vision-instruct", + name: "Phi-3.5-vision instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-mini-4k-instruct": { + id: "microsoft/phi-3-mini-4k-instruct", + name: "Phi-3-mini instruct (4k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 1024 }, + }, + "microsoft/phi-4-mini-reasoning": { + id: "microsoft/phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-128k-instruct": { + id: "microsoft/phi-3-small-128k-instruct", + name: "Phi-3-small instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-128k-instruct": { + id: "microsoft/phi-3-medium-128k-instruct", + name: "Phi-3-medium instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4": { + id: "microsoft/phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16000, output: 4096 }, + }, + "microsoft/phi-4-multimodal-instruct": { + id: "microsoft/phi-4-multimodal-instruct", + name: "Phi-4-multimodal-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/mai-ds-r1": { + id: "microsoft/mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "cohere/cohere-command-r-08-2024": { + id: "cohere/cohere-command-r-08-2024", + name: "Cohere Command R 08-2024", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-a": { + id: "cohere/cohere-command-a", + name: "Cohere Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-plus": { + id: "cohere/cohere-command-r-plus", + name: "Cohere Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-04-04", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r": { + id: "cohere/cohere-command-r", + name: "Cohere Command R", + family: "command-r", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-03-11", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-plus-08-2024": { + id: "cohere/cohere-command-r-plus-08-2024", + name: "Cohere Command R+ 08-2024", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-09", + last_updated: "2024-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-09", + last_updated: "2024-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/o1-mini": { + id: "openai/o1-mini", + name: "OpenAI o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 65536 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1-preview": { + id: "openai/o1-preview", + name: "OpenAI o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "meta/llama-4-scout-17b-16e-instruct": { + id: "meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/meta-llama-3.1-8b-instruct": { + id: "meta/meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/llama-3.3-70b-instruct": { + id: "meta/llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3-70b-instruct": { + id: "meta/meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "meta/llama-3.2-90b-vision-instruct": { + id: "meta/llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/meta-llama-3.1-405b-instruct": { + id: "meta/meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3.1-70b-instruct": { + id: "meta/meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3-8b-instruct": { + id: "meta/meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "meta/llama-4-maverick-17b-128e-instruct-fp8": { + id: "meta/llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "core42/jais-30b-chat": { + id: "core42/jais-30b-chat", + name: "JAIS 30b Chat", + family: "jais", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2023-08-30", + last_updated: "2023-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "mistral-ai/mistral-nemo": { + id: "mistral-ai/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral-ai/ministral-3b": { + id: "mistral-ai/ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral-ai/mistral-large-2411": { + id: "mistral-ai/mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/mistral-small-2503": { + id: "mistral-ai/mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/mistral-medium-2505": { + id: "mistral-ai/mistral-medium-2505", + name: "Mistral Medium 3 (25.05)", + family: "mistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/codestral-2501": { + id: "mistral-ai/codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32000, output: 8192 }, + }, + }, + }, + togetherai: { + id: "togetherai", + env: ["TOGETHER_API_KEY"], + npm: "@ai-sdk/togetherai", + name: "Together AI", + doc: "https://docs.together.ai/docs/serverless-models", + models: { + "essentialai/Rnj-1-Instruct": { + id: "essentialai/Rnj-1-Instruct", + name: "Rnj-1 Instruct", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-05", + last_updated: "2025-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 130000 }, + }, + "Qwen/Qwen3-Coder-Next-FP8": { + id: "Qwen/Qwen3-Coder-Next-FP8", + name: "Qwen3 Coder Next FP8", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-03", + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", + name: "Qwen3 235B A22B Instruct 2507 FP8", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4 }, + limit: { context: 202752, output: 131072 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.88, output: 0.88 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 7 }, + limit: { context: 163839, output: 163839 }, + }, + "deepseek-ai/DeepSeek-V3-1": { + id: "deepseek-ai/DeepSeek-V3-1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.7 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemma-4-31B-it": { + id: "google/gemma-4-31B-it", + name: "Gemma 4 31B Instruct", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 262144, output: 131072 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "qihang-ai": { + id: "qihang-ai", + env: ["QIHANG_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.qhaigc.net/v1", + name: "QiHang", + doc: "https://www.qhaigc.net/docs", + models: { + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.71, output: 3.57 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.43, context_over_200k: { input: 0.07, output: 0.43 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.29 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.57, output: 3.43 }, + limit: { context: 1000000, output: 65000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.43, output: 2.14 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.71, context_over_200k: { input: 0.09, output: 0.71 } }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.71 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + anthropic: { + id: "anthropic", + env: ["ANTHROPIC_API_KEY"], + npm: "@ai-sdk/anthropic", + name: "Anthropic", + doc: "https://docs.anthropic.com/en/docs/about-claude/models", + models: { + "claude-3-sonnet-20240229": { + id: "claude-3-sonnet-20240229", + name: "Claude Sonnet 3", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-opus-20240229": { + id: "claude-3-opus-20240229", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-3-5-haiku-20241022": { + id: "claude-3-5-haiku-20241022", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "claude-opus-4-0": { + id: "claude-opus-4-0", + name: "Claude Opus 4 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-haiku-latest": { + id: "claude-3-5-haiku-latest", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-sonnet-4-0": { + id: "claude-sonnet-4-0", + name: "Claude Sonnet 4 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-sonnet-20240620": { + id: "claude-3-5-sonnet-20240620", + name: "Claude Sonnet 3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + experimental: { + modes: { + fast: { + cost: { input: 30, output: 150, cache_read: 3, cache_write: 37.5 }, + provider: { body: { speed: "fast" }, headers: { "anthropic-beta": "fast-mode-2026-02-01" } }, + }, + }, + }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + modelscope: { + id: "modelscope", + env: ["MODELSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api-inference.modelscope.cn/v1", + name: "ModelScope", + doc: "https://modelscope.cn/docs/model-service/API-Inference/intro", + models: { + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "ZhipuAI/GLM-4.5": { + id: "ZhipuAI/GLM-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "ZhipuAI/GLM-4.6": { + id: "ZhipuAI/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 202752, output: 98304 }, + }, + }, + }, + gitlab: { + id: "gitlab", + env: ["GITLAB_TOKEN"], + npm: "gitlab-ai-provider", + name: "GitLab Duo", + doc: "https://docs.gitlab.com/user/duo_agent_platform/", + models: { + "duo-chat-gpt-5-4-nano": { + id: "duo-chat-gpt-5-4-nano", + name: "Agentic Chat (GPT-5.4 Nano)", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-mini": { + id: "duo-chat-gpt-5-mini", + name: "Agentic Chat (GPT-5 Mini)", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-sonnet-4-6": { + id: "duo-chat-sonnet-4-6", + name: "Agentic Chat (Claude Sonnet 4.6)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "duo-chat-gpt-5-2": { + id: "duo-chat-gpt-5-2", + name: "Agentic Chat (GPT-5.2)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-codex": { + id: "duo-chat-gpt-5-codex", + name: "Agentic Chat (GPT-5 Codex)", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-1": { + id: "duo-chat-gpt-5-1", + name: "Agentic Chat (GPT-5.1)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-2-codex": { + id: "duo-chat-gpt-5-2-codex", + name: "Agentic Chat (GPT-5.2 Codex)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-sonnet-4-5": { + id: "duo-chat-sonnet-4-5", + name: "Agentic Chat (Claude Sonnet 4.5)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-gpt-5-4": { + id: "duo-chat-gpt-5-4", + name: "Agentic Chat (GPT-5.4)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "duo-chat-haiku-4-5": { + id: "duo-chat-haiku-4-5", + name: "Agentic Chat (Claude Haiku 4.5)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-gpt-5-3-codex": { + id: "duo-chat-gpt-5-3-codex", + name: "Agentic Chat (GPT-5.3 Codex)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-4-mini": { + id: "duo-chat-gpt-5-4-mini", + name: "Agentic Chat (GPT-5.4 Mini)", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-opus-4-5": { + id: "duo-chat-opus-4-5", + name: "Agentic Chat (Claude Opus 4.5)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-opus-4-6": { + id: "duo-chat-opus-4-6", + name: "Agentic Chat (Claude Opus 4.6)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + }, + }, + xiaomi: { + id: "xiaomi", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.xiaomimimo.com/v1", + name: "Xiaomi", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 256000, output: 128000 }, + }, + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 0.2 }, + limit: { context: 1000000, output: 128000 }, + }, + "mimo-v2-flash": { + id: "mimo-v2-flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12-01", + release_date: "2025-12-16", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 256000, output: 64000 }, + }, + }, + }, + clarifai: { + id: "clarifai", + env: ["CLARIFAI_PAT"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.clarifai.com/v2/ext/openai/v1", + name: "Clarifai", + doc: "https://docs.clarifai.com/compute/inference/", + models: { + "arcee_ai/AFM/models/trinity-mini": { + id: "arcee_ai/AFM/models/trinity-mini", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/completion/models/Ministral-3-14B-Reasoning-2512": { + id: "mistralai/completion/models/Ministral-3-14B-Reasoning-2512", + name: "Ministral 3 14B Reasoning 2512", + family: "ministral", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-01", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 1.7 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/completion/models/Ministral-3-3B-Reasoning-2512": { + id: "mistralai/completion/models/Ministral-3-3B-Reasoning-2512", + name: "Ministral 3 3B Reasoning 2512", + family: "ministral", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12", + last_updated: "2026-02-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.039, output: 0.54825 }, + limit: { context: 262144, output: 262144 }, + }, + "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR": { + id: "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR", + name: "DeepSeek OCR", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-02-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 8192, output: 8192 }, + }, + "openai/chat-completion/models/gpt-oss-20b": { + id: "openai/chat-completion/models/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.18 }, + limit: { context: 131072, output: 16384 }, + }, + "openai/chat-completion/models/gpt-oss-120b-high-throughput": { + id: "openai/chat-completion/models/gpt-oss-120b-high-throughput", + name: "GPT OSS 120B High Throughput", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 131072, output: 16384 }, + }, + "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput": { + id: "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput", + name: "MiniMax-M2.5 High Throughput", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct": { + id: "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11458, output: 0.74812 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507": { + id: "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.36, output: 1.3 }, + limit: { context: 262144, output: 131072 }, + }, + "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507": { + id: "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 262144, output: 262144 }, + }, + "clarifai/main/models/mm-poly-8b": { + id: "clarifai/main/models/mm-poly-8b", + name: "MM Poly 8B", + family: "mm-poly", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-06", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.658, output: 1.11 }, + limit: { context: 32768, output: 4096 }, + }, + }, + }, + "minimax-cn": { + id: "minimax-cn", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimaxi.com/anthropic/v1", + name: "MiniMax (minimaxi.com)", + doc: "https://platform.minimaxi.com/docs/guides/quickstart", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "xiaomi-token-plan-ams": { + id: "xiaomi-token-plan-ams", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://token-plan-ams.xiaomimimo.com/v1", + name: "Xiaomi Token Plan (Europe)", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + "mimo-v2-tts": { + id: "mimo-v2-tts", + name: "MiMo-V2-TTS", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 16000 }, + }, + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 128000 }, + }, + }, + }, + zhipuai: { + id: "zhipuai", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://open.bigmodel.cn/api/paas/v4", + name: "Zhipu AI", + doc: "https://docs.z.ai/guides/overview/pricing", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 22, cache_read: 1.2, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 24, cache_read: 1.3, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + nova: { + id: "nova", + env: ["NOVA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.nova.amazon.com/v1", + name: "Nova", + doc: "https://nova.amazon.com/dev/documentation", + models: { + "nova-2-lite-v1": { + id: "nova-2-lite-v1", + name: "Nova 2 Lite", + family: "nova-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, reasoning: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "nova-2-pro-v1": { + id: "nova-2-pro-v1", + name: "Nova 2 Pro", + family: "nova-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2026-01-03", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, reasoning: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + }, + }, +} From ca5f08675955ac5d10129f44afda36e006ae8d44 Mon Sep 17 00:00:00 2001 From: Dax Date: Sat, 11 Apr 2026 16:55:17 -0400 Subject: [PATCH 127/151] refactor(server): simplify router middleware with next() (#21720) --- packages/opencode/package.json | 5 + packages/opencode/src/agent/agent.ts | 12 +- packages/opencode/src/cli/cmd/tui/thread.ts | 10 +- packages/opencode/src/config/config.ts | 1 - packages/opencode/src/plugin/index.ts | 18 +- packages/opencode/src/server/adapter.bun.ts | 40 +++ packages/opencode/src/server/adapter.node.ts | 66 ++++ packages/opencode/src/server/adapter.ts | 21 ++ packages/opencode/src/server/control/index.ts | 150 +++++++++ .../src/server/{routes => instance}/config.ts | 0 .../src/server/{routes => instance}/event.ts | 0 .../{routes => instance}/experimental.ts | 0 .../src/server/{routes => instance}/file.ts | 0 .../src/server/{routes => instance}/global.ts | 0 .../server/{instance.ts => instance/index.ts} | 104 ++---- .../src/server/{routes => instance}/mcp.ts | 0 .../{router.ts => instance/middleware.ts} | 16 +- .../server/{routes => instance}/permission.ts | 0 .../server/{routes => instance}/project.ts | 0 .../server/{routes => instance}/provider.ts | 0 .../src/server/{routes => instance}/pty.ts | 0 .../server/{routes => instance}/question.ts | 0 .../server/{routes => instance}/session.ts | 0 .../src/server/{routes => instance}/tui.ts | 0 .../server/{routes => instance}/workspace.ts | 0 packages/opencode/src/server/middleware.ts | 105 ++++-- packages/opencode/src/server/server.ts | 303 ++---------------- packages/opencode/src/server/ui/index.ts | 55 ++++ .../test/memory/abort-leak-webfetch.ts | 49 +++ .../opencode/test/memory/abort-leak.test.ts | 127 ++++++++ .../test/plugin/loader-shared.test.ts | 150 +++++---- .../test/server/session-messages.test.ts | 2 +- 32 files changed, 767 insertions(+), 467 deletions(-) create mode 100644 packages/opencode/src/server/adapter.bun.ts create mode 100644 packages/opencode/src/server/adapter.node.ts create mode 100644 packages/opencode/src/server/adapter.ts create mode 100644 packages/opencode/src/server/control/index.ts rename packages/opencode/src/server/{routes => instance}/config.ts (100%) rename packages/opencode/src/server/{routes => instance}/event.ts (100%) rename packages/opencode/src/server/{routes => instance}/experimental.ts (100%) rename packages/opencode/src/server/{routes => instance}/file.ts (100%) rename packages/opencode/src/server/{routes => instance}/global.ts (100%) rename packages/opencode/src/server/{instance.ts => instance/index.ts} (65%) rename packages/opencode/src/server/{routes => instance}/mcp.ts (100%) rename packages/opencode/src/server/{router.ts => instance/middleware.ts} (90%) rename packages/opencode/src/server/{routes => instance}/permission.ts (100%) rename packages/opencode/src/server/{routes => instance}/project.ts (100%) rename packages/opencode/src/server/{routes => instance}/provider.ts (100%) rename packages/opencode/src/server/{routes => instance}/pty.ts (100%) rename packages/opencode/src/server/{routes => instance}/question.ts (100%) rename packages/opencode/src/server/{routes => instance}/session.ts (100%) rename packages/opencode/src/server/{routes => instance}/tui.ts (100%) rename packages/opencode/src/server/{routes => instance}/workspace.ts (100%) create mode 100644 packages/opencode/src/server/ui/index.ts create mode 100644 packages/opencode/test/memory/abort-leak-webfetch.ts create mode 100644 packages/opencode/test/memory/abort-leak.test.ts diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 99b60d1e9..18feb4675 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -39,6 +39,11 @@ "bun": "./src/pty/pty.bun.ts", "node": "./src/pty/pty.node.ts", "default": "./src/pty/pty.bun.ts" + }, + "#hono": { + "bun": "./src/server/adapter.bun.ts", + "node": "./src/server/adapter.node.ts", + "default": "./src/server/adapter.bun.ts" } }, "devDependencies": { diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 93b393f13..fd9ac43e8 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -398,13 +398,11 @@ export namespace Agent { }), ) - export const defaultLayer = Layer.suspend(() => - layer.pipe( - Layer.provide(Provider.defaultLayer), - Layer.provide(Auth.defaultLayer), - Layer.provide(Config.defaultLayer), - Layer.provide(Skill.defaultLayer), - ), + export const defaultLayer = layer.pipe( + Layer.provide(Provider.defaultLayer), + Layer.provide(Auth.defaultLayer), + Layer.provide(Config.defaultLayer), + Layer.provide(Skill.defaultLayer), ) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index 0534b147a..972e67d10 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -137,12 +137,18 @@ export const TuiThreadCommand = cmd({ ), }) worker.onerror = (e) => { - Log.Default.error(e) + Log.Default.error("thread error", { + message: e.message, + filename: e.filename, + lineno: e.lineno, + colno: e.colno, + error: e.error, + }) } const client = Rpc.client(worker) const error = (e: unknown) => { - Log.Default.error(e) + Log.Default.error("process error", { error: errorMessage(e) }) } const reload = () => { client.call("reload", undefined).catch((err) => { diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 086d51abd..ecce8fb8f 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -4,7 +4,6 @@ import { pathToFileURL } from "url" import os from "os" import { Process } from "../util/process" import z from "zod" -import { ModelsDev } from "../provider/models" import { mergeDeep, pipe, unique } from "remeda" import { Global } from "../global" import fsNode from "fs/promises" diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index 5de77aee3..e0478e0b3 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -124,7 +124,7 @@ export namespace Plugin { Authorization: `Basic ${Buffer.from(`${Flag.OPENCODE_SERVER_USERNAME ?? "opencode"}:${Flag.OPENCODE_SERVER_PASSWORD}`).toString("base64")}`, } : undefined, - fetch: async (...args) => Server.Default().app.fetch(...args), + fetch: async (...args) => (await Server.Default()).app.fetch(...args), }) const cfg = yield* config.get() const input: PluginInput = { @@ -210,13 +210,15 @@ export namespace Plugin { return message }, }).pipe( - Effect.catch((message) => - bus.publish(Session.Event.Error, { - error: new NamedError.Unknown({ - message: `Failed to load plugin ${load.spec}: ${message}`, - }).toObject(), - }), - ), + Effect.catch(() => { + // TODO: make proper events for this + // bus.publish(Session.Event.Error, { + // error: new NamedError.Unknown({ + // message: `Failed to load plugin ${load.spec}: ${message}`, + // }).toObject(), + // }) + return Effect.void + }), ) } diff --git a/packages/opencode/src/server/adapter.bun.ts b/packages/opencode/src/server/adapter.bun.ts new file mode 100644 index 000000000..3e70b97e8 --- /dev/null +++ b/packages/opencode/src/server/adapter.bun.ts @@ -0,0 +1,40 @@ +import type { Hono } from "hono" +import { createBunWebSocket } from "hono/bun" +import type { Adapter } from "./adapter" + +export const adapter: Adapter = { + create(app: Hono) { + const ws = createBunWebSocket() + return { + upgradeWebSocket: ws.upgradeWebSocket, + async listen(opts) { + const args = { + fetch: app.fetch, + hostname: opts.hostname, + idleTimeout: 0, + websocket: ws.websocket, + } as const + const start = (port: number) => { + try { + return Bun.serve({ ...args, port }) + } catch { + return + } + } + const server = opts.port === 0 ? (start(4096) ?? start(0)) : start(opts.port) + if (!server) { + throw new Error(`Failed to start server on port ${opts.port}`) + } + if (!server.port) { + throw new Error(`Failed to resolve server address for port ${opts.port}`) + } + return { + port: server.port, + stop(close?: boolean) { + return Promise.resolve(server.stop(close)) + }, + } + }, + } + }, +} diff --git a/packages/opencode/src/server/adapter.node.ts b/packages/opencode/src/server/adapter.node.ts new file mode 100644 index 000000000..9c2a41cce --- /dev/null +++ b/packages/opencode/src/server/adapter.node.ts @@ -0,0 +1,66 @@ +import { createAdaptorServer, type ServerType } from "@hono/node-server" +import { createNodeWebSocket } from "@hono/node-ws" +import type { Hono } from "hono" +import type { Adapter } from "./adapter" + +export const adapter: Adapter = { + create(app: Hono) { + const ws = createNodeWebSocket({ app }) + return { + upgradeWebSocket: ws.upgradeWebSocket, + async listen(opts) { + const start = (port: number) => + new Promise((resolve, reject) => { + const server = createAdaptorServer({ fetch: app.fetch }) + ws.injectWebSocket(server) + const fail = (err: Error) => { + cleanup() + reject(err) + } + const ready = () => { + cleanup() + resolve(server) + } + const cleanup = () => { + server.off("error", fail) + server.off("listening", ready) + } + server.once("error", fail) + server.once("listening", ready) + server.listen(port, opts.hostname) + }) + + const server = opts.port === 0 ? await start(4096).catch(() => start(0)) : await start(opts.port) + const addr = server.address() + if (!addr || typeof addr === "string") { + throw new Error(`Failed to resolve server address for port ${opts.port}`) + } + + let closing: Promise | undefined + return { + port: addr.port, + stop(close?: boolean) { + closing ??= new Promise((resolve, reject) => { + server.close((err) => { + if (err) { + reject(err) + return + } + resolve() + }) + if (close) { + if ("closeAllConnections" in server && typeof server.closeAllConnections === "function") { + server.closeAllConnections() + } + if ("closeIdleConnections" in server && typeof server.closeIdleConnections === "function") { + server.closeIdleConnections() + } + } + }) + return closing + }, + } + }, + } + }, +} diff --git a/packages/opencode/src/server/adapter.ts b/packages/opencode/src/server/adapter.ts new file mode 100644 index 000000000..272521d7d --- /dev/null +++ b/packages/opencode/src/server/adapter.ts @@ -0,0 +1,21 @@ +import type { Hono } from "hono" +import type { UpgradeWebSocket } from "hono/ws" + +export type Opts = { + port: number + hostname: string +} + +export type Listener = { + port: number + stop: (close?: boolean) => Promise +} + +export interface Runtime { + upgradeWebSocket: UpgradeWebSocket + listen(opts: Opts): Promise +} + +export interface Adapter { + create(app: Hono): Runtime +} diff --git a/packages/opencode/src/server/control/index.ts b/packages/opencode/src/server/control/index.ts new file mode 100644 index 000000000..aae77f2f0 --- /dev/null +++ b/packages/opencode/src/server/control/index.ts @@ -0,0 +1,150 @@ +import { Auth } from "@/auth" +import { Log } from "@/util/log" +import { ProviderID } from "@/provider/schema" +import { Hono } from "hono" +import { describeRoute, resolver, validator, openAPIRouteHandler } from "hono-openapi" +import z from "zod" +import { errors } from "../error" +import { GlobalRoutes } from "../instance/global" + +export function ControlPlaneRoutes(): Hono { + const app = new Hono() + return app + .route("/global", GlobalRoutes()) + .put( + "/auth/:providerID", + describeRoute({ + summary: "Set auth credentials", + description: "Set authentication credentials", + operationId: "auth.set", + responses: { + 200: { + description: "Successfully set authentication credentials", + content: { + "application/json": { + schema: resolver(z.boolean()), + }, + }, + }, + ...errors(400), + }, + }), + validator( + "param", + z.object({ + providerID: ProviderID.zod, + }), + ), + validator("json", Auth.Info.zod), + async (c) => { + const providerID = c.req.valid("param").providerID + const info = c.req.valid("json") + await Auth.set(providerID, info) + return c.json(true) + }, + ) + .delete( + "/auth/:providerID", + describeRoute({ + summary: "Remove auth credentials", + description: "Remove authentication credentials", + operationId: "auth.remove", + responses: { + 200: { + description: "Successfully removed authentication credentials", + content: { + "application/json": { + schema: resolver(z.boolean()), + }, + }, + }, + ...errors(400), + }, + }), + validator( + "param", + z.object({ + providerID: ProviderID.zod, + }), + ), + async (c) => { + const providerID = c.req.valid("param").providerID + await Auth.remove(providerID) + return c.json(true) + }, + ) + .get( + "/doc", + openAPIRouteHandler(app, { + documentation: { + info: { + title: "opencode", + version: "0.0.3", + description: "opencode api", + }, + openapi: "3.1.1", + }, + }), + ) + .use( + validator( + "query", + z.object({ + directory: z.string().optional(), + workspace: z.string().optional(), + }), + ), + ) + .post( + "/log", + describeRoute({ + summary: "Write log", + description: "Write a log entry to the server logs with specified level and metadata.", + operationId: "app.log", + responses: { + 200: { + description: "Log entry written successfully", + content: { + "application/json": { + schema: resolver(z.boolean()), + }, + }, + }, + ...errors(400), + }, + }), + validator( + "json", + z.object({ + service: z.string().meta({ description: "Service name for the log entry" }), + level: z.enum(["debug", "info", "error", "warn"]).meta({ description: "Log level" }), + message: z.string().meta({ description: "Log message" }), + extra: z + .record(z.string(), z.any()) + .optional() + .meta({ description: "Additional metadata for the log entry" }), + }), + ), + async (c) => { + const { service, level, message, extra } = c.req.valid("json") + const logger = Log.create({ service }) + + switch (level) { + case "debug": + logger.debug(message, extra) + break + case "info": + logger.info(message, extra) + break + case "error": + logger.error(message, extra) + break + case "warn": + logger.warn(message, extra) + break + } + + return c.json(true) + }, + ) +} diff --git a/packages/opencode/src/server/routes/config.ts b/packages/opencode/src/server/instance/config.ts similarity index 100% rename from packages/opencode/src/server/routes/config.ts rename to packages/opencode/src/server/instance/config.ts diff --git a/packages/opencode/src/server/routes/event.ts b/packages/opencode/src/server/instance/event.ts similarity index 100% rename from packages/opencode/src/server/routes/event.ts rename to packages/opencode/src/server/instance/event.ts diff --git a/packages/opencode/src/server/routes/experimental.ts b/packages/opencode/src/server/instance/experimental.ts similarity index 100% rename from packages/opencode/src/server/routes/experimental.ts rename to packages/opencode/src/server/instance/experimental.ts diff --git a/packages/opencode/src/server/routes/file.ts b/packages/opencode/src/server/instance/file.ts similarity index 100% rename from packages/opencode/src/server/routes/file.ts rename to packages/opencode/src/server/instance/file.ts diff --git a/packages/opencode/src/server/routes/global.ts b/packages/opencode/src/server/instance/global.ts similarity index 100% rename from packages/opencode/src/server/routes/global.ts rename to packages/opencode/src/server/instance/global.ts diff --git a/packages/opencode/src/server/instance.ts b/packages/opencode/src/server/instance/index.ts similarity index 65% rename from packages/opencode/src/server/instance.ts rename to packages/opencode/src/server/instance/index.ts index 6525d2ded..2acc424e4 100644 --- a/packages/opencode/src/server/instance.ts +++ b/packages/opencode/src/server/instance/index.ts @@ -1,53 +1,33 @@ import { describeRoute, resolver, validator } from "hono-openapi" import { Hono } from "hono" -import { proxy } from "hono/proxy" import type { UpgradeWebSocket } from "hono/ws" import z from "zod" -import { createHash } from "node:crypto" -import * as fs from "node:fs/promises" -import { Log } from "../util/log" -import { Format } from "../format" -import { TuiRoutes } from "./routes/tui" -import { Instance } from "../project/instance" -import { Vcs } from "../project/vcs" -import { Agent } from "../agent/agent" -import { Skill } from "../skill" -import { Global } from "../global" -import { LSP } from "../lsp" -import { Command } from "../command" -import { Flag } from "../flag/flag" -import { QuestionRoutes } from "./routes/question" -import { PermissionRoutes } from "./routes/permission" -import { Snapshot } from "@/snapshot" -import { ProjectRoutes } from "./routes/project" -import { SessionRoutes } from "./routes/session" -import { PtyRoutes } from "./routes/pty" -import { McpRoutes } from "./routes/mcp" -import { FileRoutes } from "./routes/file" -import { ConfigRoutes } from "./routes/config" -import { ExperimentalRoutes } from "./routes/experimental" -import { ProviderRoutes } from "./routes/provider" -import { EventRoutes } from "./routes/event" -import { errorHandler } from "./middleware" -import { getMimeType } from "hono/utils/mime" +import { Format } from "../../format" +import { TuiRoutes } from "./tui" +import { Instance } from "../../project/instance" +import { Vcs } from "../../project/vcs" +import { Agent } from "../../agent/agent" +import { Skill } from "../../skill" +import { Global } from "../../global" +import { LSP } from "../../lsp" +import { Command } from "../../command" +import { QuestionRoutes } from "./question" +import { PermissionRoutes } from "./permission" +import { ProjectRoutes } from "./project" +import { SessionRoutes } from "./session" +import { PtyRoutes } from "./pty" +import { McpRoutes } from "./mcp" +import { FileRoutes } from "./file" +import { ConfigRoutes } from "./config" +import { ExperimentalRoutes } from "./experimental" +import { ProviderRoutes } from "./provider" +import { EventRoutes } from "./event" +import { WorkspaceRouterMiddleware } from "./middleware" import { AppRuntime } from "@/effect/app-runtime" -const log = Log.create({ service: "server" }) - -const embeddedUIPromise = Flag.OPENCODE_DISABLE_EMBEDDED_WEB_UI - ? Promise.resolve(null) - : // @ts-expect-error - generated file at build time - import("opencode-web-ui.gen.ts").then((module) => module.default as Record).catch(() => null) - -const DEFAULT_CSP = - "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:" - -const csp = (hash = "") => - `default-src 'self'; script-src 'self' 'wasm-unsafe-eval'${hash ? ` 'sha256-${hash}'` : ""}; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:` - -export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono()) => - app - .onError(errorHandler(log)) +export const InstanceRoutes = (upgrade: UpgradeWebSocket): Hono => + new Hono() + .use(WorkspaceRouterMiddleware(upgrade)) .route("/project", ProjectRoutes()) .route("/pty", PtyRoutes(upgrade)) .route("/config", ConfigRoutes()) @@ -281,39 +261,3 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono() return c.json(await AppRuntime.runPromise(Format.Service.use((svc) => svc.status()))) }, ) - .all("/*", async (c) => { - const embeddedWebUI = await embeddedUIPromise - const path = c.req.path - - if (embeddedWebUI) { - const match = embeddedWebUI[path.replace(/^\//, "")] ?? embeddedWebUI["index.html"] ?? null - if (!match) return c.json({ error: "Not Found" }, 404) - - if (await fs.exists(match)) { - const mime = getMimeType(match) ?? "text/plain" - c.header("Content-Type", mime) - if (mime.startsWith("text/html")) { - c.header("Content-Security-Policy", DEFAULT_CSP) - } - return c.body(new Uint8Array(await fs.readFile(match))) - } else { - return c.json({ error: "Not Found" }, 404) - } - } else { - const response = await proxy(`https://app.opencode.ai${path}`, { - ...c.req, - headers: { - ...c.req.raw.headers, - host: "app.opencode.ai", - }, - }) - const match = response.headers.get("content-type")?.includes("text/html") - ? (await response.clone().text()).match( - /]*\bsrc\s*=)[^>]*\bid=(['"])oc-theme-preload-script\1[^>]*>([\s\S]*?)<\/script>/i, - ) - : undefined - const hash = match ? createHash("sha256").update(match[2]).digest("base64") : "" - response.headers.set("Content-Security-Policy", csp(hash)) - return response - } - }) diff --git a/packages/opencode/src/server/routes/mcp.ts b/packages/opencode/src/server/instance/mcp.ts similarity index 100% rename from packages/opencode/src/server/routes/mcp.ts rename to packages/opencode/src/server/instance/mcp.ts diff --git a/packages/opencode/src/server/router.ts b/packages/opencode/src/server/instance/middleware.ts similarity index 90% rename from packages/opencode/src/server/router.ts rename to packages/opencode/src/server/instance/middleware.ts index f97724c2e..1a5011477 100644 --- a/packages/opencode/src/server/router.ts +++ b/packages/opencode/src/server/instance/middleware.ts @@ -3,12 +3,10 @@ import type { UpgradeWebSocket } from "hono/ws" import { getAdaptor } from "@/control-plane/adaptors" import { WorkspaceID } from "@/control-plane/schema" import { Workspace } from "@/control-plane/workspace" -import { ServerProxy } from "./proxy" -import { lazy } from "@/util/lazy" +import { ServerProxy } from "../proxy" import { Filesystem } from "@/util/filesystem" import { Instance } from "@/project/instance" import { InstanceBootstrap } from "@/project/bootstrap" -import { InstanceRoutes } from "./instance" import { Session } from "@/session" import { SessionID } from "@/session/schema" import { WorkspaceContext } from "@/control-plane/workspace-context" @@ -47,9 +45,7 @@ async function getSessionWorkspace(url: URL) { } export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): MiddlewareHandler { - const routes = lazy(() => InstanceRoutes(upgrade)) - - return async (c) => { + return async (c, next) => { const raw = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd() const directory = Filesystem.resolve( (() => { @@ -72,7 +68,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware directory, init: InstanceBootstrap, async fn() { - return routes().fetch(c.req.raw, c.env) + return next() }, }) } @@ -87,7 +83,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware // The lets the `DELETE /session/:id` endpoint through and we've // made sure that it will run without an instance if (url.pathname.match(/\/session\/[^/]+$/) && c.req.method === "DELETE") { - return routes().fetch(c.req.raw, c.env) + return next() } return new Response(`Workspace not found: ${workspaceID}`, { @@ -109,7 +105,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware directory: target.directory, init: InstanceBootstrap, async fn() { - return routes().fetch(c.req.raw, c.env) + return next() }, }), }) @@ -118,7 +114,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware if (local(c.req.method, url.pathname)) { // No instance provided because we are serving cached data; there // is no instance to work with - return routes().fetch(c.req.raw, c.env) + return next() } if (c.req.header("upgrade")?.toLowerCase() === "websocket") { diff --git a/packages/opencode/src/server/routes/permission.ts b/packages/opencode/src/server/instance/permission.ts similarity index 100% rename from packages/opencode/src/server/routes/permission.ts rename to packages/opencode/src/server/instance/permission.ts diff --git a/packages/opencode/src/server/routes/project.ts b/packages/opencode/src/server/instance/project.ts similarity index 100% rename from packages/opencode/src/server/routes/project.ts rename to packages/opencode/src/server/instance/project.ts diff --git a/packages/opencode/src/server/routes/provider.ts b/packages/opencode/src/server/instance/provider.ts similarity index 100% rename from packages/opencode/src/server/routes/provider.ts rename to packages/opencode/src/server/instance/provider.ts diff --git a/packages/opencode/src/server/routes/pty.ts b/packages/opencode/src/server/instance/pty.ts similarity index 100% rename from packages/opencode/src/server/routes/pty.ts rename to packages/opencode/src/server/instance/pty.ts diff --git a/packages/opencode/src/server/routes/question.ts b/packages/opencode/src/server/instance/question.ts similarity index 100% rename from packages/opencode/src/server/routes/question.ts rename to packages/opencode/src/server/instance/question.ts diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/instance/session.ts similarity index 100% rename from packages/opencode/src/server/routes/session.ts rename to packages/opencode/src/server/instance/session.ts diff --git a/packages/opencode/src/server/routes/tui.ts b/packages/opencode/src/server/instance/tui.ts similarity index 100% rename from packages/opencode/src/server/routes/tui.ts rename to packages/opencode/src/server/instance/tui.ts diff --git a/packages/opencode/src/server/routes/workspace.ts b/packages/opencode/src/server/instance/workspace.ts similarity index 100% rename from packages/opencode/src/server/routes/workspace.ts rename to packages/opencode/src/server/instance/workspace.ts diff --git a/packages/opencode/src/server/middleware.ts b/packages/opencode/src/server/middleware.ts index 278740c57..a51ba602b 100644 --- a/packages/opencode/src/server/middleware.ts +++ b/packages/opencode/src/server/middleware.ts @@ -3,31 +3,90 @@ import { NamedError } from "@opencode-ai/util/error" import { NotFoundError } from "../storage/db" import { Session } from "../session" import type { ContentfulStatusCode } from "hono/utils/http-status" -import type { ErrorHandler } from "hono" +import type { ErrorHandler, MiddlewareHandler } from "hono" import { HTTPException } from "hono/http-exception" -import type { Log } from "../util/log" +import { Log } from "../util/log" +import { Flag } from "@/flag/flag" +import { basicAuth } from "hono/basic-auth" +import { cors } from "hono/cors" +import { compress } from "hono/compress" -export function errorHandler(log: Log.Logger): ErrorHandler { - return (err, c) => { - log.error("failed", { - error: err, - }) - if (err instanceof NamedError) { - let status: ContentfulStatusCode - if (err instanceof NotFoundError) status = 404 - else if (err instanceof Provider.ModelNotFoundError) status = 400 - else if (err.name === "ProviderAuthValidationFailed") status = 400 - else if (err.name.startsWith("Worktree")) status = 400 - else status = 500 - return c.json(err.toObject(), { status }) - } - if (err instanceof Session.BusyError) { - return c.json(new NamedError.Unknown({ message: err.message }).toObject(), { status: 400 }) - } - if (err instanceof HTTPException) return err.getResponse() - const message = err instanceof Error && err.stack ? err.stack : err.toString() - return c.json(new NamedError.Unknown({ message }).toObject(), { - status: 500, +const log = Log.create({ service: "server" }) + +export const ErrorMiddleware: ErrorHandler = (err, c) => { + log.error("failed", { + error: err, + }) + if (err instanceof NamedError) { + let status: ContentfulStatusCode + if (err instanceof NotFoundError) status = 404 + else if (err instanceof Provider.ModelNotFoundError) status = 400 + else if (err.name === "ProviderAuthValidationFailed") status = 400 + else if (err.name.startsWith("Worktree")) status = 400 + else status = 500 + return c.json(err.toObject(), { status }) + } + if (err instanceof Session.BusyError) { + return c.json(new NamedError.Unknown({ message: err.message }).toObject(), { status: 400 }) + } + if (err instanceof HTTPException) return err.getResponse() + const message = err instanceof Error && err.stack ? err.stack : err.toString() + return c.json(new NamedError.Unknown({ message }).toObject(), { + status: 500, + }) +} + +export const AuthMiddleware: MiddlewareHandler = (c, next) => { + // Allow CORS preflight requests to succeed without auth. + // Browser clients sending Authorization headers will preflight with OPTIONS. + if (c.req.method === "OPTIONS") return next() + const password = Flag.OPENCODE_SERVER_PASSWORD + if (!password) return next() + const username = Flag.OPENCODE_SERVER_USERNAME ?? "opencode" + + if (c.req.query("auth_token")) c.req.raw.headers.set("authorization", `Basic ${c.req.query("auth_token")}`) + + return basicAuth({ username, password })(c, next) +} + +export const LoggerMiddleware: MiddlewareHandler = async (c, next) => { + const skip = c.req.path === "/log" + if (!skip) { + log.info("request", { + method: c.req.method, + path: c.req.path, }) } + const timer = log.time("request", { + method: c.req.method, + path: c.req.path, + }) + await next() + if (!skip) timer.stop() +} + +export function CorsMiddleware(opts?: { cors?: string[] }): MiddlewareHandler { + return cors({ + maxAge: 86_400, + origin(input) { + if (!input) return + + if (input.startsWith("http://localhost:")) return input + if (input.startsWith("http://127.0.0.1:")) return input + if (input === "tauri://localhost" || input === "http://tauri.localhost" || input === "https://tauri.localhost") + return input + + if (/^https:\/\/([a-z0-9-]+\.)*opencode\.ai$/.test(input)) return input + if (opts?.cors?.includes(input)) return input + }, + }) +} + +const zipped = compress() +export const CompressionMiddleware: MiddlewareHandler = (c, next) => { + const path = c.req.path + const method = c.req.method + if (path === "/event" || path === "/global/event" || path === "/global/sync-event") return next() + if (method === "POST" && /\/session\/[^/]+\/(message|prompt_async)$/.test(path)) return next() + return zipped(c, next) } diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index c4f2a931b..02ec7356e 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -1,24 +1,14 @@ -import { Log } from "../util/log" -import { describeRoute, generateSpecs, validator, resolver, openAPIRouteHandler } from "hono-openapi" +import { generateSpecs } from "hono-openapi" import { Hono } from "hono" -import { compress } from "hono/compress" -import { createNodeWebSocket } from "@hono/node-ws" -import { cors } from "hono/cors" -import { basicAuth } from "hono/basic-auth" -import type { UpgradeWebSocket } from "hono/ws" -import z from "zod" -import { Auth } from "../auth" -import { Flag } from "../flag/flag" -import { ProviderID } from "../provider/schema" -import { WorkspaceRouterMiddleware } from "./router" -import { errors } from "./error" -import { GlobalRoutes } from "./routes/global" +import { adapter } from "#hono" import { MDNS } from "./mdns" import { lazy } from "@/util/lazy" -import { errorHandler } from "./middleware" +import { AuthMiddleware, CompressionMiddleware, CorsMiddleware, ErrorMiddleware, LoggerMiddleware } from "./middleware" import { InstanceRoutes } from "./instance" import { initProjectors } from "./projectors" -import { createAdaptorServer, type ServerType } from "@hono/node-server" +import { Log } from "@/util/log" +import { ControlPlaneRoutes } from "./control" +import { UIRoutes } from "./ui" // @ts-ignore This global is needed to prevent ai-sdk from logging warnings to stdout https://github.com/vercel/ai/blob/2dc67e0ef538307f21368db32d5a12345d98831b/packages/ai/src/logger/log-warnings.ts#L85 globalThis.AI_SDK_LOG_WARNINGS = false @@ -26,6 +16,8 @@ globalThis.AI_SDK_LOG_WARNINGS = false initProjectors() export namespace Server { + const log = Log.create({ service: "server" }) + export type Listener = { hostname: string port: number @@ -33,231 +25,31 @@ export namespace Server { stop: (close?: boolean) => Promise } - const log = Log.create({ service: "server" }) - const zipped = compress() - - const skipCompress = (path: string, method: string) => { - if (path === "/event" || path === "/global/event" || path === "/global/sync-event") return true - if (method === "POST" && /\/session\/[^/]+\/(message|prompt_async)$/.test(path)) return true - return false - } - export const Default = lazy(() => create({})) - export function ControlPlaneRoutes(upgrade: UpgradeWebSocket, app = new Hono(), opts?: { cors?: string[] }): Hono { - return app - .onError(errorHandler(log)) - .use((c, next) => { - // Allow CORS preflight requests to succeed without auth. - // Browser clients sending Authorization headers will preflight with OPTIONS. - if (c.req.method === "OPTIONS") return next() - const password = Flag.OPENCODE_SERVER_PASSWORD - if (!password) return next() - const username = Flag.OPENCODE_SERVER_USERNAME ?? "opencode" - - if (c.req.query("auth_token")) c.req.raw.headers.set("authorization", `Basic ${c.req.query("auth_token")}`) - - return basicAuth({ username, password })(c, next) - }) - .use(async (c, next) => { - const skip = c.req.path === "/log" - if (!skip) { - log.info("request", { - method: c.req.method, - path: c.req.path, - }) - } - const timer = log.time("request", { - method: c.req.method, - path: c.req.path, - }) - await next() - if (!skip) timer.stop() - }) - .use( - cors({ - maxAge: 86_400, - origin(input) { - if (!input) return - - if (input.startsWith("http://localhost:")) return input - if (input.startsWith("http://127.0.0.1:")) return input - if ( - input === "tauri://localhost" || - input === "http://tauri.localhost" || - input === "https://tauri.localhost" - ) - return input - - if (/^https:\/\/([a-z0-9-]+\.)*opencode\.ai$/.test(input)) return input - if (opts?.cors?.includes(input)) return input - }, - }), - ) - .use((c, next) => { - if (skipCompress(c.req.path, c.req.method)) return next() - return zipped(c, next) - }) - .route("/global", GlobalRoutes()) - .put( - "/auth/:providerID", - describeRoute({ - summary: "Set auth credentials", - description: "Set authentication credentials", - operationId: "auth.set", - responses: { - 200: { - description: "Successfully set authentication credentials", - content: { - "application/json": { - schema: resolver(z.boolean()), - }, - }, - }, - ...errors(400), - }, - }), - validator( - "param", - z.object({ - providerID: ProviderID.zod, - }), - ), - validator("json", Auth.Info.zod), - async (c) => { - const providerID = c.req.valid("param").providerID - const info = c.req.valid("json") - await Auth.set(providerID, info) - return c.json(true) - }, - ) - .delete( - "/auth/:providerID", - describeRoute({ - summary: "Remove auth credentials", - description: "Remove authentication credentials", - operationId: "auth.remove", - responses: { - 200: { - description: "Successfully removed authentication credentials", - content: { - "application/json": { - schema: resolver(z.boolean()), - }, - }, - }, - ...errors(400), - }, - }), - validator( - "param", - z.object({ - providerID: ProviderID.zod, - }), - ), - async (c) => { - const providerID = c.req.valid("param").providerID - await Auth.remove(providerID) - return c.json(true) - }, - ) - .get( - "/doc", - openAPIRouteHandler(app, { - documentation: { - info: { - title: "opencode", - version: "0.0.3", - description: "opencode api", - }, - openapi: "3.1.1", - }, - }), - ) - .use( - validator( - "query", - z.object({ - directory: z.string().optional(), - workspace: z.string().optional(), - }), - ), - ) - .post( - "/log", - describeRoute({ - summary: "Write log", - description: "Write a log entry to the server logs with specified level and metadata.", - operationId: "app.log", - responses: { - 200: { - description: "Log entry written successfully", - content: { - "application/json": { - schema: resolver(z.boolean()), - }, - }, - }, - ...errors(400), - }, - }), - validator( - "json", - z.object({ - service: z.string().meta({ description: "Service name for the log entry" }), - level: z.enum(["debug", "info", "error", "warn"]).meta({ description: "Log level" }), - message: z.string().meta({ description: "Log message" }), - extra: z - .record(z.string(), z.any()) - .optional() - .meta({ description: "Additional metadata for the log entry" }), - }), - ), - async (c) => { - const { service, level, message, extra } = c.req.valid("json") - const logger = Log.create({ service }) - - switch (level) { - case "debug": - logger.debug(message, extra) - break - case "info": - logger.info(message, extra) - break - case "error": - logger.error(message, extra) - break - case "warn": - logger.warn(message, extra) - break - } - - return c.json(true) - }, - ) - .use(WorkspaceRouterMiddleware(upgrade)) - } - function create(opts: { cors?: string[] }) { const app = new Hono() - const ws = createNodeWebSocket({ app }) + const runtime = adapter.create(app) return { - app: ControlPlaneRoutes(ws.upgradeWebSocket, app, opts), - ws, + app: app + .onError(ErrorMiddleware) + .use(AuthMiddleware) + .use(LoggerMiddleware) + .use(CompressionMiddleware) + .use(CorsMiddleware(opts)) + .route("/", ControlPlaneRoutes()) + .route("/", InstanceRoutes(runtime.upgradeWebSocket)) + .route("/", UIRoutes()), + runtime, } } - export function createApp(opts: { cors?: string[] }) { - return create(opts).app - } - export async function openapi() { // Build a fresh app with all routes registered directly so // hono-openapi can see describeRoute metadata (`.route()` wraps // handlers when the sub-app has a custom errorHandler, which // strips the metadata symbol). - const { app, ws } = create({}) - InstanceRoutes(ws.upgradeWebSocket, app) + const { app } = create({}) const result = await generateSpecs(app, { documentation: { info: { @@ -281,46 +73,21 @@ export namespace Server { cors?: string[] }): Promise { const built = create(opts) - const start = (port: number) => - new Promise((resolve, reject) => { - const server = createAdaptorServer({ fetch: built.app.fetch }) - built.ws.injectWebSocket(server) - const fail = (err: Error) => { - cleanup() - reject(err) - } - const ready = () => { - cleanup() - resolve(server) - } - const cleanup = () => { - server.off("error", fail) - server.off("listening", ready) - } - server.once("error", fail) - server.once("listening", ready) - server.listen(port, opts.hostname) - }) - - const server = opts.port === 0 ? await start(4096).catch(() => start(0)) : await start(opts.port) - const addr = server.address() - if (!addr || typeof addr === "string") { - throw new Error(`Failed to resolve server address for port ${opts.port}`) - } + const server = await built.runtime.listen(opts) const next = new URL("http://localhost") next.hostname = opts.hostname - next.port = String(addr.port) + next.port = String(server.port) url = next const mdns = opts.mdns && - addr.port && + server.port && opts.hostname !== "127.0.0.1" && opts.hostname !== "localhost" && opts.hostname !== "::1" if (mdns) { - MDNS.publish(addr.port, opts.mdnsDomain) + MDNS.publish(server.port, opts.mdnsDomain) } else if (opts.mdns) { log.warn("mDNS enabled but hostname is loopback; skipping mDNS publish") } @@ -328,27 +95,13 @@ export namespace Server { let closing: Promise | undefined return { hostname: opts.hostname, - port: addr.port, + port: server.port, url: next, stop(close?: boolean) { - closing ??= new Promise((resolve, reject) => { + closing ??= (async () => { if (mdns) MDNS.unpublish() - server.close((err) => { - if (err) { - reject(err) - return - } - resolve() - }) - if (close) { - if ("closeAllConnections" in server && typeof server.closeAllConnections === "function") { - server.closeAllConnections() - } - if ("closeIdleConnections" in server && typeof server.closeIdleConnections === "function") { - server.closeIdleConnections() - } - } - }) + await server.stop(close) + })() return closing }, } diff --git a/packages/opencode/src/server/ui/index.ts b/packages/opencode/src/server/ui/index.ts new file mode 100644 index 000000000..afe6e510f --- /dev/null +++ b/packages/opencode/src/server/ui/index.ts @@ -0,0 +1,55 @@ +import { Flag } from "@/flag/flag" +import { Hono } from "hono" +import { proxy } from "hono/proxy" +import { getMimeType } from "hono/utils/mime" +import { createHash } from "node:crypto" +import fs from "node:fs/promises" + +const embeddedUIPromise = Flag.OPENCODE_DISABLE_EMBEDDED_WEB_UI + ? Promise.resolve(null) + : // @ts-expect-error - generated file at build time + import("opencode-web-ui.gen.ts").then((module) => module.default as Record).catch(() => null) + +const DEFAULT_CSP = + "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:" + +const csp = (hash = "") => + `default-src 'self'; script-src 'self' 'wasm-unsafe-eval'${hash ? ` 'sha256-${hash}'` : ""}; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:` + +export const UIRoutes = (): Hono => + new Hono().all("/*", async (c) => { + const embeddedWebUI = await embeddedUIPromise + const path = c.req.path + + if (embeddedWebUI) { + const match = embeddedWebUI[path.replace(/^\//, "")] ?? embeddedWebUI["index.html"] ?? null + if (!match) return c.json({ error: "Not Found" }, 404) + + if (await fs.exists(match)) { + const mime = getMimeType(match) ?? "text/plain" + c.header("Content-Type", mime) + if (mime.startsWith("text/html")) { + c.header("Content-Security-Policy", DEFAULT_CSP) + } + return c.body(new Uint8Array(await fs.readFile(match))) + } else { + return c.json({ error: "Not Found" }, 404) + } + } else { + const response = await proxy(`https://app.opencode.ai${path}`, { + ...c.req, + headers: { + ...c.req.raw.headers, + host: "app.opencode.ai", + }, + }) + const match = response.headers.get("content-type")?.includes("text/html") + ? (await response.clone().text()).match( + /]*\bsrc\s*=)[^>]*\bid=(['"])oc-theme-preload-script\1[^>]*>([\s\S]*?)<\/script>/i, + ) + : undefined + const hash = match ? createHash("sha256").update(match[2]).digest("base64") : "" + response.headers.set("Content-Security-Policy", csp(hash)) + return response + } + }) diff --git a/packages/opencode/test/memory/abort-leak-webfetch.ts b/packages/opencode/test/memory/abort-leak-webfetch.ts new file mode 100644 index 000000000..1286d5f0b --- /dev/null +++ b/packages/opencode/test/memory/abort-leak-webfetch.ts @@ -0,0 +1,49 @@ +import { abortAfterAny } from "../../src/util/abort" + +const MB = 1024 * 1024 +const ITERATIONS = 50 + +const heap = () => { + Bun.gc(true) + return process.memoryUsage().heapUsed / MB +} + +const server = Bun.serve({ + port: 0, + fetch() { + return new Response("hello from local", { + headers: { + "content-type": "text/plain", + }, + }) + }, +}) + +const url = `http://127.0.0.1:${server.port}` + +async function run() { + const { signal, clearTimeout } = abortAfterAny(30000, new AbortController().signal) + try { + const response = await fetch(url, { signal }) + await response.text() + } finally { + clearTimeout() + } +} + +try { + await run() + Bun.sleepSync(100) + const baseline = heap() + + for (let i = 0; i < ITERATIONS; i++) { + await run() + } + + Bun.sleepSync(100) + const after = heap() + process.stdout.write(JSON.stringify({ baseline, after, growth: after - baseline })) +} finally { + server.stop(true) + process.exit(0) +} diff --git a/packages/opencode/test/memory/abort-leak.test.ts b/packages/opencode/test/memory/abort-leak.test.ts new file mode 100644 index 000000000..d30ad45e4 --- /dev/null +++ b/packages/opencode/test/memory/abort-leak.test.ts @@ -0,0 +1,127 @@ +import { describe, test, expect } from "bun:test" +import path from "path" + +const projectRoot = path.join(import.meta.dir, "../..") +const worker = path.join(import.meta.dir, "abort-leak-webfetch.ts") + +const MB = 1024 * 1024 +const ITERATIONS = 50 + +const getHeapMB = () => { + Bun.gc(true) + return process.memoryUsage().heapUsed / MB +} + +describe("memory: abort controller leak", () => { + test("webfetch does not leak memory over many invocations", async () => { + // Measure the abort-timed fetch path in a fresh process so shared tool + // runtime state does not dominate the heap signal. + const proc = Bun.spawn({ + cmd: [process.execPath, worker], + cwd: projectRoot, + stdout: "pipe", + stderr: "pipe", + env: process.env, + }) + + const [code, stdout, stderr] = await Promise.all([ + proc.exited, + new Response(proc.stdout).text(), + new Response(proc.stderr).text(), + ]) + + if (code !== 0) { + throw new Error(stderr.trim() || stdout.trim() || `worker exited with code ${code}`) + } + + const result = JSON.parse(stdout.trim()) as { + baseline: number + after: number + growth: number + } + + console.log(`Baseline: ${result.baseline.toFixed(2)} MB`) + console.log(`After ${ITERATIONS} fetches: ${result.after.toFixed(2)} MB`) + console.log(`Growth: ${result.growth.toFixed(2)} MB`) + + // Memory growth should be minimal - less than 1MB per 10 requests. + expect(result.growth).toBeLessThan(ITERATIONS / 10) + }, 60000) + + test("compare closure vs bind pattern directly", async () => { + const ITERATIONS = 500 + + // Test OLD pattern: arrow function closure + // Store closures in a map keyed by content to force retention + const closureMap = new Map void>() + const timers: Timer[] = [] + const controllers: AbortController[] = [] + + Bun.gc(true) + Bun.sleepSync(100) + const baseline = getHeapMB() + + for (let i = 0; i < ITERATIONS; i++) { + // Simulate large response body like webfetch would have + const content = `${i}:${"x".repeat(50 * 1024)}` // 50KB unique per iteration + const controller = new AbortController() + controllers.push(controller) + + // OLD pattern - closure captures `content` + const handler = () => { + // Actually use content so it can't be optimized away + if (content.length > 1000000000) controller.abort() + } + closureMap.set(content, handler) + const timeoutId = setTimeout(handler, 30000) + timers.push(timeoutId) + } + + Bun.gc(true) + Bun.sleepSync(100) + const after = getHeapMB() + const oldGrowth = after - baseline + + console.log(`OLD pattern (closure): ${oldGrowth.toFixed(2)} MB growth (${closureMap.size} closures)`) + + // Cleanup after measuring + timers.forEach(clearTimeout) + controllers.forEach((c) => c.abort()) + closureMap.clear() + + // Test NEW pattern: bind + Bun.gc(true) + Bun.sleepSync(100) + const baseline2 = getHeapMB() + const handlers2: (() => void)[] = [] + const timers2: Timer[] = [] + const controllers2: AbortController[] = [] + + for (let i = 0; i < ITERATIONS; i++) { + const _content = `${i}:${"x".repeat(50 * 1024)}` // 50KB - won't be captured + const controller = new AbortController() + controllers2.push(controller) + + // NEW pattern - bind doesn't capture surrounding scope + const handler = controller.abort.bind(controller) + handlers2.push(handler) + const timeoutId = setTimeout(handler, 30000) + timers2.push(timeoutId) + } + + Bun.gc(true) + Bun.sleepSync(100) + const after2 = getHeapMB() + const newGrowth = after2 - baseline2 + + // Cleanup after measuring + timers2.forEach(clearTimeout) + controllers2.forEach((c) => c.abort()) + handlers2.length = 0 + + console.log(`NEW pattern (bind): ${newGrowth.toFixed(2)} MB growth`) + console.log(`Improvement: ${(oldGrowth - newGrowth).toFixed(2)} MB saved`) + + expect(newGrowth).toBeLessThanOrEqual(oldGrowth) + }) +}) diff --git a/packages/opencode/test/plugin/loader-shared.test.ts b/packages/opencode/test/plugin/loader-shared.test.ts index c01a02ef4..32b6c601d 100644 --- a/packages/opencode/test/plugin/loader-shared.test.ts +++ b/packages/opencode/test/plugin/loader-shared.test.ts @@ -13,8 +13,6 @@ const { PluginLoader } = await import("../../src/plugin/loader") const { readPackageThemes } = await import("../../src/plugin/shared") const { Instance } = await import("../../src/project/instance") const { Npm } = await import("../../src/npm") -const { Bus } = await import("../../src/bus") -const { Session } = await import("../../src/session") afterAll(() => { if (disableDefault === undefined) { @@ -37,27 +35,6 @@ async function load(dir: string) { }) } -async function errs(dir: string) { - return Instance.provide({ - directory: dir, - fn: async () => { - const errors: string[] = [] - const off = Bus.subscribe(Session.Event.Error, (evt) => { - const error = evt.properties.error - if (!error || typeof error !== "object") return - if (!("data" in error)) return - if (!error.data || typeof error.data !== "object") return - if (!("message" in error.data)) return - if (typeof error.data.message !== "string") return - errors.push(error.data.message) - }) - await Plugin.list() - off() - return errors - }, - }) -} - describe("plugin.loader.shared", () => { test("loads a file:// plugin function export", async () => { await using tmp = await tmpdir({ @@ -184,14 +161,13 @@ describe("plugin.loader.shared", () => { }, }) - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors.some((x) => x.includes("must export id"))).toBe(true) }) test("rejects v1 plugin that exports server and tui together", async () => { @@ -223,14 +199,13 @@ describe("plugin.loader.shared", () => { }, }) - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors.some((x) => x.includes("either server() or tui(), not both"))).toBe(true) }) test("resolves npm plugin specs with explicit and default versions", async () => { @@ -383,8 +358,7 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) - expect(errors).toHaveLength(0) + await load(tmp.path) expect(await Bun.file(tmp.extra.mark).text()).toBe("called") } finally { install.mockRestore() @@ -436,8 +410,7 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) - expect(errors).toHaveLength(0) + await load(tmp.path) expect(await Bun.file(tmp.extra.mark).text()).toBe("called") } finally { install.mockRestore() @@ -482,14 +455,13 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors).toHaveLength(0) } finally { install.mockRestore() } @@ -546,13 +518,12 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors.some((x) => x.includes("outside plugin directory"))).toBe(true) } finally { install.mockRestore() } @@ -588,30 +559,49 @@ describe("plugin.loader.shared", () => { } }) - test("publishes session.error when install fails", async () => { + test("skips broken plugin when install fails", async () => { await using tmp = await tmpdir({ init: async (dir) => { - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: ["broken-plugin@9.9.9"] }, null, 2)) + const ok = path.join(dir, "ok.ts") + const mark = path.join(dir, "ok.txt") + await Bun.write( + ok, + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) + await Bun.write( + path.join(dir, "opencode.json"), + JSON.stringify({ plugin: ["broken-plugin@9.9.9", pathToFileURL(ok).href] }, null, 2), + ) + return { mark } }, }) const install = spyOn(Npm, "add").mockRejectedValue(new Error("boom")) try { - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes("Failed to install plugin broken-plugin@9.9.9") && x.includes("boom"))).toBe( - true, - ) + await load(tmp.path) + expect(install).toHaveBeenCalledWith("broken-plugin@9.9.9") + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") } finally { install.mockRestore() } }) - test("publishes session.error when plugin init throws", async () => { + test("continues loading plugins when plugin init throws", async () => { await using tmp = await tmpdir({ init: async (dir) => { const file = pathToFileURL(path.join(dir, "throws.ts")).href + const ok = pathToFileURL(path.join(dir, "ok.ts")).href + const mark = path.join(dir, "ok.txt") await Bun.write( path.join(dir, "throws.ts"), [ @@ -624,51 +614,91 @@ describe("plugin.loader.shared", () => { "", ].join("\n"), ) + await Bun.write( + path.join(dir, "ok.ts"), + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file] }, null, 2)) + await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file, ok] }, null, 2)) - return { file } + return { mark } }, }) - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes(`Failed to load plugin ${tmp.extra.file}: explode`))).toBe(true) + await load(tmp.path) + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") }) - test("publishes session.error when plugin module has invalid export", async () => { + test("continues loading plugins when plugin module has invalid export", async () => { await using tmp = await tmpdir({ init: async (dir) => { const file = pathToFileURL(path.join(dir, "invalid.ts")).href + const ok = pathToFileURL(path.join(dir, "ok.ts")).href + const mark = path.join(dir, "ok.txt") await Bun.write( path.join(dir, "invalid.ts"), ["export default {", ' id: "demo.invalid",', " nope: true,", "}", ""].join("\n"), ) + await Bun.write( + path.join(dir, "ok.ts"), + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file] }, null, 2)) + await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file, ok] }, null, 2)) - return { file } + return { mark } }, }) - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes(`Failed to load plugin ${tmp.extra.file}`))).toBe(true) + await load(tmp.path) + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") }) - test("publishes session.error when plugin import fails", async () => { + test("continues loading plugins when plugin import fails", async () => { await using tmp = await tmpdir({ init: async (dir) => { const missing = pathToFileURL(path.join(dir, "missing-plugin.ts")).href - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [missing] }, null, 2)) + const ok = pathToFileURL(path.join(dir, "ok.ts")).href + const mark = path.join(dir, "ok.txt") + await Bun.write( + path.join(dir, "ok.ts"), + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) + await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [missing, ok] }, null, 2)) - return { missing } + return { mark } }, }) - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes(`Failed to load plugin ${tmp.extra.missing}`))).toBe(true) + await load(tmp.path) + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") }) test("loads object plugin via plugin.server", async () => { diff --git a/packages/opencode/test/server/session-messages.test.ts b/packages/opencode/test/server/session-messages.test.ts index 7ba95f3b1..fac336837 100644 --- a/packages/opencode/test/server/session-messages.test.ts +++ b/packages/opencode/test/server/session-messages.test.ts @@ -147,7 +147,7 @@ describe("session messages endpoint", () => { describe("session.prompt_async error handling", () => { test("prompt_async route has error handler for detached prompt call", async () => { - const src = await Bun.file(new URL("../../src/server/routes/session.ts", import.meta.url)).text() + const src = await Bun.file(new URL("../../src/server/instance/session.ts", import.meta.url)).text() const start = src.indexOf('"/:sessionID/prompt_async"') const end = src.indexOf('"/:sessionID/command"', start) expect(start).toBeGreaterThan(-1) From cb1e5d9e41b451dbf44ee565d61c6bd426f9175a Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 20:56:22 +0000 Subject: [PATCH 128/151] chore: generate --- packages/sdk/js/src/v2/gen/types.gen.ts | 52 ++++----- packages/sdk/openapi.json | 148 ++++++++++++------------ 2 files changed, 100 insertions(+), 100 deletions(-) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 7ca6ea05c..de45b1599 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -316,29 +316,6 @@ export type EventCommandExecuted = { } } -export type EventWorkspaceReady = { - type: "workspace.ready" - properties: { - name: string - } -} - -export type EventWorkspaceFailed = { - type: "workspace.failed" - properties: { - message: string - } -} - -export type EventWorkspaceStatus = { - type: "workspace.status" - properties: { - workspaceID: string - status: "connected" | "connecting" | "disconnected" | "error" - error?: string - } -} - export type QuestionOption = { /** * Display text (1-5 words, concise) @@ -523,6 +500,29 @@ export type EventPtyDeleted = { } } +export type EventWorkspaceReady = { + type: "workspace.ready" + properties: { + name: string + } +} + +export type EventWorkspaceFailed = { + type: "workspace.failed" + properties: { + message: string + } +} + +export type EventWorkspaceStatus = { + type: "workspace.status" + properties: { + workspaceID: string + status: "connected" | "connecting" | "disconnected" | "error" + error?: string + } +} + export type OutputFormatText = { type: "text" } @@ -995,9 +995,6 @@ export type Event = | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventCommandExecuted - | EventWorkspaceReady - | EventWorkspaceFailed - | EventWorkspaceStatus | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected @@ -1011,6 +1008,9 @@ export type Event = | EventPtyUpdated | EventPtyExited | EventPtyDeleted + | EventWorkspaceReady + | EventWorkspaceFailed + | EventWorkspaceStatus | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 7bc6392b9..8bcae7d03 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7986,71 +7986,6 @@ }, "required": ["type", "properties"] }, - "Event.workspace.ready": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.ready" - }, - "properties": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": ["name"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.failed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.failed" - }, - "properties": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": ["message"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.status": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.status" - }, - "properties": { - "type": "object", - "properties": { - "workspaceID": { - "type": "string", - "pattern": "^wrk.*" - }, - "status": { - "type": "string", - "enum": ["connected", "connecting", "disconnected", "error"] - }, - "error": { - "type": "string" - } - }, - "required": ["workspaceID", "status"] - } - }, - "required": ["type", "properties"] - }, "QuestionOption": { "type": "object", "properties": { @@ -8505,6 +8440,71 @@ }, "required": ["type", "properties"] }, + "Event.workspace.ready": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.ready" + }, + "properties": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"] + } + }, + "required": ["type", "properties"] + }, + "Event.workspace.failed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.failed" + }, + "properties": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": ["message"] + } + }, + "required": ["type", "properties"] + }, + "Event.workspace.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.status" + }, + "properties": { + "type": "object", + "properties": { + "workspaceID": { + "type": "string", + "pattern": "^wrk.*" + }, + "status": { + "type": "string", + "enum": ["connected", "connecting", "disconnected", "error"] + }, + "error": { + "type": "string" + } + }, + "required": ["workspaceID", "status"] + } + }, + "required": ["type", "properties"] + }, "OutputFormatText": { "type": "object", "properties": { @@ -9937,15 +9937,6 @@ { "$ref": "#/components/schemas/Event.command.executed" }, - { - "$ref": "#/components/schemas/Event.workspace.ready" - }, - { - "$ref": "#/components/schemas/Event.workspace.failed" - }, - { - "$ref": "#/components/schemas/Event.workspace.status" - }, { "$ref": "#/components/schemas/Event.question.asked" }, @@ -9985,6 +9976,15 @@ { "$ref": "#/components/schemas/Event.pty.deleted" }, + { + "$ref": "#/components/schemas/Event.workspace.ready" + }, + { + "$ref": "#/components/schemas/Event.workspace.failed" + }, + { + "$ref": "#/components/schemas/Event.workspace.status" + }, { "$ref": "#/components/schemas/Event.message.updated" }, From d62ec7776ea90097dd292a5660c1db602fe0aa3e Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Sun, 12 Apr 2026 00:14:30 +0200 Subject: [PATCH 129/151] feat: allow session permission updates (#22070) --- packages/opencode/src/server/instance/session.ts | 8 ++++++++ packages/opencode/src/session/index.ts | 5 +++++ packages/sdk/js/src/v2/gen/sdk.gen.ts | 2 ++ packages/sdk/js/src/v2/gen/types.gen.ts | 1 + 4 files changed, 16 insertions(+) diff --git a/packages/opencode/src/server/instance/session.ts b/packages/opencode/src/server/instance/session.ts index a2a15d59e..016fb3ee1 100644 --- a/packages/opencode/src/server/instance/session.ts +++ b/packages/opencode/src/server/instance/session.ts @@ -273,6 +273,7 @@ export const SessionRoutes = lazy(() => "json", z.object({ title: z.string().optional(), + permission: Permission.Ruleset.optional(), time: z .object({ archived: z.number().optional(), @@ -283,10 +284,17 @@ export const SessionRoutes = lazy(() => async (c) => { const sessionID = c.req.valid("param").sessionID const updates = c.req.valid("json") + const current = await Session.get(sessionID) if (updates.title !== undefined) { await Session.setTitle({ sessionID, title: updates.title }) } + if (updates.permission !== undefined) { + await Session.setPermission({ + sessionID, + permission: Permission.merge(current.permission ?? [], updates.permission), + }) + } if (updates.time?.archived !== undefined) { await Session.setArchived({ sessionID, time: updates.time.archived }) } diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index d7bf99637..70deb95a4 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -708,6 +708,11 @@ export namespace Session { runPromise((svc) => svc.setArchived(input)), ) + export const setPermission = fn( + z.object({ sessionID: SessionID.zod, permission: Permission.Ruleset }), + (input) => runPromise((svc) => svc.setPermission(input)), + ) + export const setRevert = fn( z.object({ sessionID: SessionID.zod, revert: Info.shape.revert, summary: Info.shape.summary }), (input) => diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts index d06a504d6..7fba60fce 100644 --- a/packages/sdk/js/src/v2/gen/sdk.gen.ts +++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts @@ -1725,6 +1725,7 @@ export class Session2 extends HeyApiClient { directory?: string workspace?: string title?: string + permission?: PermissionRuleset time?: { archived?: number } @@ -1740,6 +1741,7 @@ export class Session2 extends HeyApiClient { { in: "query", key: "directory" }, { in: "query", key: "workspace" }, { in: "body", key: "title" }, + { in: "body", key: "permission" }, { in: "body", key: "time" }, ], }, diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index de45b1599..f2b32a159 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -3266,6 +3266,7 @@ export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses] export type SessionUpdateData = { body?: { title?: string + permission?: PermissionRuleset time?: { archived?: number } From 4c4eef46f1c404a4ad2b205ae954bf4a17ef33a5 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sat, 11 Apr 2026 22:15:53 +0000 Subject: [PATCH 130/151] chore: generate --- packages/opencode/src/session/index.ts | 5 ++--- packages/sdk/openapi.json | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 70deb95a4..3d4903588 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -708,9 +708,8 @@ export namespace Session { runPromise((svc) => svc.setArchived(input)), ) - export const setPermission = fn( - z.object({ sessionID: SessionID.zod, permission: Permission.Ruleset }), - (input) => runPromise((svc) => svc.setPermission(input)), + export const setPermission = fn(z.object({ sessionID: SessionID.zod, permission: Permission.Ruleset }), (input) => + runPromise((svc) => svc.setPermission(input)), ) export const setRevert = fn( diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 8bcae7d03..5e5058fde 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -2550,6 +2550,9 @@ "title": { "type": "string" }, + "permission": { + "$ref": "#/components/schemas/PermissionRuleset" + }, "time": { "type": "object", "properties": { From 1a509d62a0e2d21368d465e666228c26415fb5bd Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 20:01:52 -0400 Subject: [PATCH 131/151] refactor(session): destroy SessionRunState facade (#22064) --- packages/opencode/specs/effect-migration.md | 45 ++++++++++++++++ .../opencode/src/server/instance/session.ts | 17 +++++-- packages/opencode/src/session/run-state.ts | 6 --- .../test/server/session-actions.test.ts | 51 +------------------ 4 files changed, 59 insertions(+), 60 deletions(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index 1990f6a57..cde2d3bef 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -217,6 +217,7 @@ Fully migrated (single namespace, InstanceState where needed, flattened facade): - [x] `SessionSummary` — `session/summary.ts` - [x] `SessionRevert` — `session/revert.ts` - [x] `Instruction` — `session/instruction.ts` +- [x] `SystemPrompt` — `session/system.ts` - [x] `Provider` — `provider/provider.ts` - [x] `Storage` — `storage/storage.ts` - [x] `ShareNext` — `share/share-next.ts` @@ -340,3 +341,47 @@ For each service, the migration is roughly: - `ShareNext` — migrated 2026-04-11. Swapped remaining async callers to `AppRuntime.runPromise(ShareNext.Service.use(...))`, removed the `makeRuntime(...)` facade, and kept instance bootstrap on the shared app runtime. - `SessionTodo` — migrated 2026-04-10. Already matched the target service shape in `session/todo.ts`: single namespace, traced Effect methods, and no `makeRuntime(...)` facade remained; checklist updated to reflect the completed migration. - `Storage` — migrated 2026-04-10. One production caller (`Session.diff`) and all storage.test.ts tests converted to effectful style. Facades and `makeRuntime` removed. +- `SessionRunState` — migrated 2026-04-11. Single caller in `server/routes/session.ts` converted; facade removed. +- `Account` — migrated 2026-04-11. Callers in `server/routes/experimental.ts` and `cli/cmd/account.ts` converted; facade removed. +- `Instruction` — migrated 2026-04-11. Test-only callers converted; facade removed. +- `FileTime` — migrated 2026-04-11. Test-only callers converted; facade removed. +- `FileWatcher` — migrated 2026-04-11. Callers in `project/bootstrap.ts` and test converted; facade removed. +- `Question` — migrated 2026-04-11. Callers in `server/routes/question.ts` and test converted; facade removed. +- `Truncate` — migrated 2026-04-11. Caller in `tool/tool.ts` and test converted; facade removed. + +## Route handler effectification + +Route handlers should wrap their entire body in a single `AppRuntime.runPromise(Effect.gen(...))` call, yielding services from context rather than calling facades one-by-one. This eliminates multiple `runPromise` round-trips and lets handlers compose naturally. + +```ts +// Before — one facade call per service +async (c) => { + await SessionRunState.assertNotBusy(id) + await Session.removeMessage({ sessionID: id, messageID }) + return c.json(true) +} + +// After — one Effect.gen, yield services from context +async (c) => { + await AppRuntime.runPromise( + Effect.gen(function* () { + const state = yield* SessionRunState.Service + const session = yield* Session.Service + yield* state.assertNotBusy(id) + yield* session.removeMessage({ sessionID: id, messageID }) + }), + ) + return c.json(true) +} +``` + +When migrating, always use `{ concurrency: "unbounded" }` with `Effect.all` — route handlers should run independent service calls in parallel, not sequentially. + +Route files to convert (each handler that calls facades should be wrapped): + +- [ ] `server/routes/session.ts` — heaviest; uses Session, SessionPrompt, SessionRevert, SessionCompaction, SessionShare, SessionSummary, SessionRunState, Agent, Permission, Bus +- [ ] `server/routes/global.ts` — uses Config, Project, Provider, Vcs, Snapshot, Agent +- [ ] `server/routes/provider.ts` — uses Provider, Auth, Config +- [ ] `server/routes/question.ts` — uses Question +- [ ] `server/routes/pty.ts` — uses Pty +- [ ] `server/routes/experimental.ts` — uses Account, ToolRegistry, Agent, MCP, Config diff --git a/packages/opencode/src/server/instance/session.ts b/packages/opencode/src/server/instance/session.ts index 016fb3ee1..b28db3a89 100644 --- a/packages/opencode/src/server/instance/session.ts +++ b/packages/opencode/src/server/instance/session.ts @@ -13,6 +13,7 @@ import { SessionShare } from "@/share/session" import { SessionStatus } from "@/session/status" import { SessionSummary } from "@/session/summary" import { Todo } from "../../session/todo" +import { Effect } from "effect" import { AppRuntime } from "../../effect/app-runtime" import { Agent } from "../../agent/agent" import { Snapshot } from "@/snapshot" @@ -724,11 +725,17 @@ export const SessionRoutes = lazy(() => ), async (c) => { const params = c.req.valid("param") - await SessionRunState.assertNotBusy(params.sessionID) - await Session.removeMessage({ - sessionID: params.sessionID, - messageID: params.messageID, - }) + await AppRuntime.runPromise( + Effect.gen(function* () { + const state = yield* SessionRunState.Service + const session = yield* Session.Service + yield* state.assertNotBusy(params.sessionID) + yield* session.removeMessage({ + sessionID: params.sessionID, + messageID: params.messageID, + }) + }), + ) return c.json(true) }, ) diff --git a/packages/opencode/src/session/run-state.ts b/packages/opencode/src/session/run-state.ts index 2c570f520..f67c726ec 100644 --- a/packages/opencode/src/session/run-state.ts +++ b/packages/opencode/src/session/run-state.ts @@ -1,6 +1,5 @@ import { InstanceState } from "@/effect/instance-state" import { Runner } from "@/effect/runner" -import { makeRuntime } from "@/effect/run-service" import { Effect, Layer, Scope, Context } from "effect" import { Session } from "." import { MessageV2 } from "./message-v2" @@ -106,9 +105,4 @@ export namespace SessionRunState { ) export const defaultLayer = layer.pipe(Layer.provide(SessionStatus.defaultLayer)) - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function assertNotBusy(sessionID: SessionID) { - return runPromise((svc) => svc.assertNotBusy(sessionID)) - } } diff --git a/packages/opencode/test/server/session-actions.test.ts b/packages/opencode/test/server/session-actions.test.ts index 4ab485965..29032c69c 100644 --- a/packages/opencode/test/server/session-actions.test.ts +++ b/packages/opencode/test/server/session-actions.test.ts @@ -1,11 +1,9 @@ import { afterEach, describe, expect, mock, spyOn, test } from "bun:test" +import { Effect } from "effect" import { Instance } from "../../src/project/instance" import { Server } from "../../src/server/server" import { Session } from "../../src/session" -import { ModelID, ProviderID } from "../../src/provider/schema" -import { MessageID, PartID, type SessionID } from "../../src/session/schema" import { SessionPrompt } from "../../src/session/prompt" -import { SessionRunState } from "../../src/session/run-state" import { Log } from "../../src/util/log" import { tmpdir } from "../fixture/fixture" @@ -16,25 +14,6 @@ afterEach(async () => { await Instance.disposeAll() }) -async function user(sessionID: SessionID, text: string) { - const msg = await Session.updateMessage({ - id: MessageID.ascending(), - role: "user", - sessionID, - agent: "build", - model: { providerID: ProviderID.make("test"), modelID: ModelID.make("test") }, - time: { created: Date.now() }, - }) - await Session.updatePart({ - id: PartID.ascending(), - sessionID, - messageID: msg.id, - type: "text", - text, - }) - return msg -} - describe("session action routes", () => { test("abort route calls SessionPrompt.cancel", async () => { await using tmp = await tmpdir({ git: true }) @@ -45,9 +24,7 @@ describe("session action routes", () => { const cancel = spyOn(SessionPrompt, "cancel").mockResolvedValue() const app = Server.Default().app - const res = await app.request(`/session/${session.id}/abort`, { - method: "POST", - }) + const res = await app.request(`/session/${session.id}/abort`, { method: "POST" }) expect(res.status).toBe(200) expect(await res.json()).toBe(true) @@ -57,28 +34,4 @@ describe("session action routes", () => { }, }) }) - - test("delete message route returns 400 when session is busy", async () => { - await using tmp = await tmpdir({ git: true }) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const session = await Session.create({}) - const msg = await user(session.id, "hello") - const busy = spyOn(SessionRunState, "assertNotBusy").mockRejectedValue(new Session.BusyError(session.id)) - const remove = spyOn(Session, "removeMessage").mockResolvedValue(msg.id) - const app = Server.Default().app - - const res = await app.request(`/session/${session.id}/message/${msg.id}`, { - method: "DELETE", - }) - - expect(res.status).toBe(400) - expect(busy).toHaveBeenCalledWith(session.id) - expect(remove).not.toHaveBeenCalled() - - await Session.remove(session.id) - }, - }) - }) }) From 1eacc3c33936916cba93079692149a78e8507882 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sun, 12 Apr 2026 00:03:01 +0000 Subject: [PATCH 132/151] chore: generate --- packages/opencode/specs/effect-migration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index cde2d3bef..31fcac19b 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -355,14 +355,14 @@ Route handlers should wrap their entire body in a single `AppRuntime.runPromise( ```ts // Before — one facade call per service -async (c) => { +;async (c) => { await SessionRunState.assertNotBusy(id) await Session.removeMessage({ sessionID: id, messageID }) return c.json(true) } // After — one Effect.gen, yield services from context -async (c) => { +;async (c) => { await AppRuntime.runPromise( Effect.gen(function* () { const state = yield* SessionRunState.Service From eea4253d674a4700dba575d349dde11e424db219 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 20:04:09 -0400 Subject: [PATCH 133/151] refactor(session): destroy Instruction facade (#22089) --- packages/opencode/src/session/instruction.ts | 15 -- .../opencode/test/session/instruction.test.ts | 186 +++++++++++------- 2 files changed, 117 insertions(+), 84 deletions(-) diff --git a/packages/opencode/src/session/instruction.ts b/packages/opencode/src/session/instruction.ts index 9b01c9524..04f2610df 100644 --- a/packages/opencode/src/session/instruction.ts +++ b/packages/opencode/src/session/instruction.ts @@ -4,7 +4,6 @@ import { Effect, Layer, Context } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http" import { Config } from "@/config/config" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { Flag } from "@/flag/flag" import { AppFileSystem } from "@/filesystem" import { withTransientReadRetry } from "@/util/effect-http-client" @@ -238,21 +237,7 @@ export namespace Instruction { Layer.provide(FetchHttpClient.layer), ) - const { runPromise } = makeRuntime(Service, defaultLayer) - - export function clear(messageID: MessageID) { - return runPromise((svc) => svc.clear(messageID)) - } - - export async function systemPaths() { - return runPromise((svc) => svc.systemPaths()) - } - export function loaded(messages: MessageV2.WithParts[]) { return extract(messages) } - - export async function resolve(messages: MessageV2.WithParts[], filepath: string, messageID: MessageID) { - return runPromise((svc) => svc.resolve(messages, filepath, messageID)) - } } diff --git a/packages/opencode/test/session/instruction.test.ts b/packages/opencode/test/session/instruction.test.ts index a8c25c6f0..4ba3b78e4 100644 --- a/packages/opencode/test/session/instruction.test.ts +++ b/packages/opencode/test/session/instruction.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, test } from "bun:test" import path from "path" +import { Effect } from "effect" import { ModelID, ProviderID } from "../../src/provider/schema" import { Instruction } from "../../src/session/instruction" import type { MessageV2 } from "../../src/session/message-v2" @@ -8,6 +9,9 @@ import { MessageID, PartID, SessionID } from "../../src/session/schema" import { Global } from "../../src/global" import { tmpdir } from "../fixture/fixture" +const run = (effect: Effect.Effect) => + Effect.runPromise(effect.pipe(Effect.provide(Instruction.defaultLayer))) + function loaded(filepath: string): MessageV2.WithParts[] { const sessionID = SessionID.make("session-loaded-1") const messageID = MessageID.make("message-loaded-1") @@ -57,17 +61,22 @@ describe("Instruction.resolve", () => { }) await Instance.provide({ directory: tmp.path, - fn: async () => { - const system = await Instruction.systemPaths() - expect(system.has(path.join(tmp.path, "AGENTS.md"))).toBe(true) + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const system = yield* svc.systemPaths() + expect(system.has(path.join(tmp.path, "AGENTS.md"))).toBe(true) - const results = await Instruction.resolve( - [], - path.join(tmp.path, "src", "file.ts"), - MessageID.make("message-test-1"), - ) - expect(results).toEqual([]) - }, + const results = yield* svc.resolve( + [], + path.join(tmp.path, "src", "file.ts"), + MessageID.make("message-test-1"), + ) + expect(results).toEqual([]) + }), + ), + ), }) }) @@ -80,18 +89,23 @@ describe("Instruction.resolve", () => { }) await Instance.provide({ directory: tmp.path, - fn: async () => { - const system = await Instruction.systemPaths() - expect(system.has(path.join(tmp.path, "subdir", "AGENTS.md"))).toBe(false) + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const system = yield* svc.systemPaths() + expect(system.has(path.join(tmp.path, "subdir", "AGENTS.md"))).toBe(false) - const results = await Instruction.resolve( - [], - path.join(tmp.path, "subdir", "nested", "file.ts"), - MessageID.make("message-test-2"), - ) - expect(results.length).toBe(1) - expect(results[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) - }, + const results = yield* svc.resolve( + [], + path.join(tmp.path, "subdir", "nested", "file.ts"), + MessageID.make("message-test-2"), + ) + expect(results.length).toBe(1) + expect(results[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) + }), + ), + ), }) }) @@ -104,14 +118,19 @@ describe("Instruction.resolve", () => { }) await Instance.provide({ directory: tmp.path, - fn: async () => { - const filepath = path.join(tmp.path, "subdir", "AGENTS.md") - const system = await Instruction.systemPaths() - expect(system.has(filepath)).toBe(false) + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const filepath = path.join(tmp.path, "subdir", "AGENTS.md") + const system = yield* svc.systemPaths() + expect(system.has(filepath)).toBe(false) - const results = await Instruction.resolve([], filepath, MessageID.make("message-test-3")) - expect(results).toEqual([]) - }, + const results = yield* svc.resolve([], filepath, MessageID.make("message-test-3")) + expect(results).toEqual([]) + }), + ), + ), }) }) @@ -124,17 +143,22 @@ describe("Instruction.resolve", () => { }) await Instance.provide({ directory: tmp.path, - fn: async () => { - const filepath = path.join(tmp.path, "subdir", "nested", "file.ts") - const id = MessageID.make("message-claim-1") + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const filepath = path.join(tmp.path, "subdir", "nested", "file.ts") + const id = MessageID.make("message-claim-1") - const first = await Instruction.resolve([], filepath, id) - const second = await Instruction.resolve([], filepath, id) + const first = yield* svc.resolve([], filepath, id) + const second = yield* svc.resolve([], filepath, id) - expect(first).toHaveLength(1) - expect(first[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) - expect(second).toEqual([]) - }, + expect(first).toHaveLength(1) + expect(first[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) + expect(second).toEqual([]) + }), + ), + ), }) }) @@ -147,18 +171,23 @@ describe("Instruction.resolve", () => { }) await Instance.provide({ directory: tmp.path, - fn: async () => { - const filepath = path.join(tmp.path, "subdir", "nested", "file.ts") - const id = MessageID.make("message-claim-2") + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const filepath = path.join(tmp.path, "subdir", "nested", "file.ts") + const id = MessageID.make("message-claim-2") - const first = await Instruction.resolve([], filepath, id) - await Instruction.clear(id) - const second = await Instruction.resolve([], filepath, id) + const first = yield* svc.resolve([], filepath, id) + yield* svc.clear(id) + const second = yield* svc.resolve([], filepath, id) - expect(first).toHaveLength(1) - expect(second).toHaveLength(1) - expect(second[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) - }, + expect(first).toHaveLength(1) + expect(second).toHaveLength(1) + expect(second[0].filepath).toBe(path.join(tmp.path, "subdir", "AGENTS.md")) + }), + ), + ), }) }) @@ -171,15 +200,19 @@ describe("Instruction.resolve", () => { }) await Instance.provide({ directory: tmp.path, - fn: async () => { - const agents = path.join(tmp.path, "subdir", "AGENTS.md") - const filepath = path.join(tmp.path, "subdir", "nested", "file.ts") - const id = MessageID.make("message-claim-3") + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const agents = path.join(tmp.path, "subdir", "AGENTS.md") + const filepath = path.join(tmp.path, "subdir", "nested", "file.ts") + const id = MessageID.make("message-claim-3") - const results = await Instruction.resolve(loaded(agents), filepath, id) - - expect(results).toEqual([]) - }, + const results = yield* svc.resolve(loaded(agents), filepath, id) + expect(results).toEqual([]) + }), + ), + ), }) }) @@ -221,11 +254,16 @@ describe("Instruction.systemPaths OPENCODE_CONFIG_DIR", () => { try { await Instance.provide({ directory: projectTmp.path, - fn: async () => { - const paths = await Instruction.systemPaths() - expect(paths.has(path.join(profileTmp.path, "AGENTS.md"))).toBe(true) - expect(paths.has(path.join(globalTmp.path, "AGENTS.md"))).toBe(false) - }, + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const paths = yield* svc.systemPaths() + expect(paths.has(path.join(profileTmp.path, "AGENTS.md"))).toBe(true) + expect(paths.has(path.join(globalTmp.path, "AGENTS.md"))).toBe(false) + }), + ), + ), }) } finally { ;(Global.Path as { config: string }).config = originalGlobalConfig @@ -248,11 +286,16 @@ describe("Instruction.systemPaths OPENCODE_CONFIG_DIR", () => { try { await Instance.provide({ directory: projectTmp.path, - fn: async () => { - const paths = await Instruction.systemPaths() - expect(paths.has(path.join(profileTmp.path, "AGENTS.md"))).toBe(false) - expect(paths.has(path.join(globalTmp.path, "AGENTS.md"))).toBe(true) - }, + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const paths = yield* svc.systemPaths() + expect(paths.has(path.join(profileTmp.path, "AGENTS.md"))).toBe(false) + expect(paths.has(path.join(globalTmp.path, "AGENTS.md"))).toBe(true) + }), + ), + ), }) } finally { ;(Global.Path as { config: string }).config = originalGlobalConfig @@ -274,10 +317,15 @@ describe("Instruction.systemPaths OPENCODE_CONFIG_DIR", () => { try { await Instance.provide({ directory: projectTmp.path, - fn: async () => { - const paths = await Instruction.systemPaths() - expect(paths.has(path.join(globalTmp.path, "AGENTS.md"))).toBe(true) - }, + fn: () => + run( + Instruction.Service.use((svc) => + Effect.gen(function* () { + const paths = yield* svc.systemPaths() + expect(paths.has(path.join(globalTmp.path, "AGENTS.md"))).toBe(true) + }), + ), + ), }) } finally { ;(Global.Path as { config: string }).config = originalGlobalConfig From 82a4292934c4e3db54f55bbbbd94d2464f2ffc47 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 20:08:55 -0400 Subject: [PATCH 134/151] refactor(file): destroy FileTime facade (#22090) --- packages/opencode/src/file/time.ts | 19 - packages/opencode/test/AGENTS.md | 52 ++ packages/opencode/test/file/time.test.ts | 705 +++++++++++------------ 3 files changed, 393 insertions(+), 383 deletions(-) diff --git a/packages/opencode/src/file/time.ts b/packages/opencode/src/file/time.ts index 05a70f80e..e5055b671 100644 --- a/packages/opencode/src/file/time.ts +++ b/packages/opencode/src/file/time.ts @@ -1,6 +1,5 @@ import { DateTime, Effect, Layer, Option, Semaphore, Context } from "effect" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@/filesystem" import { Flag } from "@/flag/flag" import type { SessionID } from "@/session/schema" @@ -112,22 +111,4 @@ export namespace FileTime { ).pipe(Layer.orDie) export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export function read(sessionID: SessionID, file: string) { - return runPromise((s) => s.read(sessionID, file)) - } - - export function get(sessionID: SessionID, file: string) { - return runPromise((s) => s.get(sessionID, file)) - } - - export async function assert(sessionID: SessionID, filepath: string) { - return runPromise((s) => s.assert(sessionID, filepath)) - } - - export async function withLock(filepath: string, fn: () => Promise): Promise { - return runPromise((s) => s.withLock(filepath, () => Effect.promise(fn))) - } } diff --git a/packages/opencode/test/AGENTS.md b/packages/opencode/test/AGENTS.md index 209cf72da..00564a17b 100644 --- a/packages/opencode/test/AGENTS.md +++ b/packages/opencode/test/AGENTS.md @@ -79,3 +79,55 @@ await using tmp = await tmpdir({ - Directories are created in the system temp folder with prefix `opencode-test-` - Use `await using` for automatic cleanup when the variable goes out of scope - Paths are sanitized to strip null bytes (defensive fix for CI environments) + +## Testing With Effects + +Use `testEffect(...)` from `test/lib/effect.ts` for tests that exercise Effect services or Effect-based workflows. + +### Core Pattern + +```typescript +import { describe, expect } from "bun:test" +import { Effect, Layer } from "effect" +import { provideTmpdirInstance } from "../fixture/fixture" +import { testEffect } from "../lib/effect" + +const it = testEffect(Layer.mergeAll(MyService.defaultLayer)) + +describe("my service", () => { + it.live("does the thing", () => + provideTmpdirInstance(() => + Effect.gen(function* () { + const svc = yield* MyService.Service + const out = yield* svc.run() + expect(out).toEqual("ok") + }), + ), + ) +}) +``` + +### `it.effect` vs `it.live` + +- Use `it.effect(...)` when the test should run with `TestClock` and `TestConsole`. +- Use `it.live(...)` when the test depends on real time, filesystem mtimes, child processes, git, locks, or other live OS behavior. +- Most integration-style tests in this package use `it.live(...)`. + +### Effect Fixtures + +Prefer the Effect-aware helpers from `fixture/fixture.ts` instead of building a manual runtime in each test. + +- `tmpdirScoped(options?)` creates a scoped temp directory and cleans it up when the Effect scope closes. +- `provideInstance(dir)(effect)` is the low-level helper. It does not create a directory; it just runs an Effect with `Instance.current` bound to `dir`. +- `provideTmpdirInstance((dir) => effect, options?)` is the convenience helper. It creates a temp directory, binds it as the active instance, and disposes the instance on cleanup. +- `provideTmpdirServer((input) => effect, options?)` does the same, but also provides the test LLM server. + +Use `provideTmpdirInstance(...)` by default when a test only needs one temp instance. Use `tmpdirScoped()` plus `provideInstance(...)` when a test needs multiple directories, custom setup before binding, or needs to switch instance context within one test. + +### Style + +- Define `const it = testEffect(...)` near the top of the file. +- Keep the test body inside `Effect.gen(function* () { ... })`. +- Yield services directly with `yield* MyService.Service` or `yield* MyTool`. +- Avoid custom `ManagedRuntime`, `attach(...)`, or ad hoc `run(...)` wrappers when `testEffect(...)` already provides the runtime. +- When a test needs instance-local state, prefer `provideTmpdirInstance(...)` or `provideInstance(...)` over manual `Instance.provide(...)` inside Promise-style tests. diff --git a/packages/opencode/test/file/time.test.ts b/packages/opencode/test/file/time.test.ts index ab7659c59..7f65d05ea 100644 --- a/packages/opencode/test/file/time.test.ts +++ b/packages/opencode/test/file/time.test.ts @@ -1,445 +1,422 @@ -import { describe, test, expect, afterEach } from "bun:test" -import path from "path" +import { afterEach, describe, expect } from "bun:test" import fs from "fs/promises" +import path from "path" +import { Cause, Deferred, Effect, Exit, Fiber, Layer } from "effect" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { FileTime } from "../../src/file/time" import { Instance } from "../../src/project/instance" import { SessionID } from "../../src/session/schema" import { Filesystem } from "../../src/util/filesystem" -import { tmpdir } from "../fixture/fixture" +import { provideInstance, provideTmpdirInstance, tmpdirScoped } from "../fixture/fixture" +import { testEffect } from "../lib/effect" afterEach(async () => { await Instance.disposeAll() }) -async function touch(file: string, time: number) { - const date = new Date(time) - await fs.utimes(file, date, date) -} +const it = testEffect(Layer.mergeAll(FileTime.defaultLayer, CrossSpawnSpawner.defaultLayer)) -function gate() { - let open!: () => void - const wait = new Promise((resolve) => { - open = resolve +const id = SessionID.make("ses_00000000000000000000000001") + +const put = (file: string, text: string) => Effect.promise(() => fs.writeFile(file, text, "utf-8")) + +const touch = (file: string, time: number) => + Effect.promise(() => { + const date = new Date(time) + return fs.utimes(file, date, date) }) - return { open, wait } -} + +const read = (id: SessionID, file: string) => FileTime.Service.use((svc) => svc.read(id, file)) + +const get = (id: SessionID, file: string) => FileTime.Service.use((svc) => svc.get(id, file)) + +const check = (id: SessionID, file: string) => FileTime.Service.use((svc) => svc.assert(id, file)) + +const lock = (file: string, fn: () => Effect.Effect) => FileTime.Service.use((svc) => svc.withLock(file, fn)) + +const fail = Effect.fn("FileTimeTest.fail")(function* (self: Effect.Effect) { + const exit = yield* self.pipe(Effect.exit) + if (Exit.isFailure(exit)) { + const err = Cause.squash(exit.cause) + return err instanceof Error ? err : new Error(String(err)) + } + throw new Error("expected file time effect to fail") +}) describe("file/time", () => { - const sessionID = SessionID.make("ses_00000000000000000000000001") - describe("read() and get()", () => { - test("stores read timestamp", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") + it.live("stores read timestamp", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const before = await FileTime.get(sessionID, filepath) + const before = yield* get(id, file) expect(before).toBeUndefined() - await FileTime.read(sessionID, filepath) + yield* read(id, file) - const after = await FileTime.get(sessionID, filepath) + const after = yield* get(id, file) expect(after).toBeInstanceOf(Date) expect(after!.getTime()).toBeGreaterThan(0) - }, - }) - }) + }), + ), + ) - test("tracks separate timestamps per session", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") + it.live("tracks separate timestamps per session", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(SessionID.make("ses_00000000000000000000000002"), filepath) - await FileTime.read(SessionID.make("ses_00000000000000000000000003"), filepath) + const one = SessionID.make("ses_00000000000000000000000002") + const two = SessionID.make("ses_00000000000000000000000003") + yield* read(one, file) + yield* read(two, file) - const time1 = await FileTime.get(SessionID.make("ses_00000000000000000000000002"), filepath) - const time2 = await FileTime.get(SessionID.make("ses_00000000000000000000000003"), filepath) + const first = yield* get(one, file) + const second = yield* get(two, file) - expect(time1).toBeDefined() - expect(time2).toBeDefined() - }, - }) - }) + expect(first).toBeDefined() + expect(second).toBeDefined() + }), + ), + ) - test("updates timestamp on subsequent reads", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") + it.live("updates timestamp on subsequent reads", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) - const first = await FileTime.get(sessionID, filepath) + yield* read(id, file) + const first = yield* get(id, file) - await FileTime.read(sessionID, filepath) - const second = await FileTime.get(sessionID, filepath) + yield* read(id, file) + const second = yield* get(id, file) expect(second!.getTime()).toBeGreaterThanOrEqual(first!.getTime()) - }, - }) - }) + }), + ), + ) - test("isolates reads by directory", async () => { - await using one = await tmpdir() - await using two = await tmpdir() - await using shared = await tmpdir() - const filepath = path.join(shared.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") + it.live("isolates reads by directory", () => + Effect.gen(function* () { + const one = yield* tmpdirScoped() + const two = yield* tmpdirScoped() + const shared = yield* tmpdirScoped() + const file = path.join(shared, "file.txt") + yield* put(file, "content") - await Instance.provide({ - directory: one.path, - fn: async () => { - await FileTime.read(sessionID, filepath) - }, - }) - - await Instance.provide({ - directory: two.path, - fn: async () => { - expect(await FileTime.get(sessionID, filepath)).toBeUndefined() - }, - }) - }) + yield* provideInstance(one)(read(id, file)) + const result = yield* provideInstance(two)(get(id, file)) + expect(result).toBeUndefined() + }), + ) }) describe("assert()", () => { - test("passes when file has not been modified", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - await touch(filepath, 1_000) + it.live("passes when file has not been modified", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") + yield* touch(file, 1_000) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) - await FileTime.assert(sessionID, filepath) - }, - }) - }) + yield* read(id, file) + yield* check(id, file) + }), + ), + ) - test("throws when file was not read first", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") + it.live("throws when file was not read first", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await expect(FileTime.assert(sessionID, filepath)).rejects.toThrow("You must read file") - }, - }) - }) + const err = yield* fail(check(id, file)) + expect(err.message).toContain("You must read file") + }), + ), + ) - test("throws when file was modified after read", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - await touch(filepath, 1_000) + it.live("throws when file was modified after read", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") + yield* touch(file, 1_000) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) - await fs.writeFile(filepath, "modified content", "utf-8") - await touch(filepath, 2_000) - await expect(FileTime.assert(sessionID, filepath)).rejects.toThrow("modified since it was last read") - }, - }) - }) + yield* read(id, file) + yield* put(file, "modified content") + yield* touch(file, 2_000) - test("includes timestamps in error message", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - await touch(filepath, 1_000) + const err = yield* fail(check(id, file)) + expect(err.message).toContain("modified since it was last read") + }), + ), + ) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) - await fs.writeFile(filepath, "modified", "utf-8") - await touch(filepath, 2_000) + it.live("includes timestamps in error message", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") + yield* touch(file, 1_000) - let error: Error | undefined - try { - await FileTime.assert(sessionID, filepath) - } catch (e) { - error = e as Error - } - expect(error).toBeDefined() - expect(error!.message).toContain("Last modification:") - expect(error!.message).toContain("Last read:") - }, - }) - }) + yield* read(id, file) + yield* put(file, "modified") + yield* touch(file, 2_000) + + const err = yield* fail(check(id, file)) + expect(err.message).toContain("Last modification:") + expect(err.message).toContain("Last read:") + }), + ), + ) }) describe("withLock()", () => { - test("executes function within lock", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") + it.live("executes function within lock", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + let hit = false - await Instance.provide({ - directory: tmp.path, - fn: async () => { - let executed = false - await FileTime.withLock(filepath, async () => { - executed = true - return "result" - }) - expect(executed).toBe(true) - }, - }) - }) - - test("returns function result", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const result = await FileTime.withLock(filepath, async () => { - return "success" - }) - expect(result).toBe("success") - }, - }) - }) - - test("serializes concurrent operations on same file", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - const order: number[] = [] - const hold = gate() - const ready = gate() - - const op1 = FileTime.withLock(filepath, async () => { - order.push(1) - ready.open() - await hold.wait - order.push(2) - }) - - await ready.wait - - const op2 = FileTime.withLock(filepath, async () => { - order.push(3) - order.push(4) - }) - - hold.open() - - await Promise.all([op1, op2]) - expect(order).toEqual([1, 2, 3, 4]) - }, - }) - }) - - test("allows concurrent operations on different files", async () => { - await using tmp = await tmpdir() - const filepath1 = path.join(tmp.path, "file1.txt") - const filepath2 = path.join(tmp.path, "file2.txt") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - let started1 = false - let started2 = false - const hold = gate() - const ready = gate() - - const op1 = FileTime.withLock(filepath1, async () => { - started1 = true - ready.open() - await hold.wait - expect(started2).toBe(true) - }) - - await ready.wait - - const op2 = FileTime.withLock(filepath2, async () => { - started2 = true - hold.open() - }) - - await Promise.all([op1, op2]) - expect(started1).toBe(true) - expect(started2).toBe(true) - }, - }) - }) - - test("releases lock even if function throws", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await expect( - FileTime.withLock(filepath, async () => { - throw new Error("Test error") + yield* lock(file, () => + Effect.sync(() => { + hit = true + return "result" }), - ).rejects.toThrow("Test error") + ) - let executed = false - await FileTime.withLock(filepath, async () => { - executed = true - }) - expect(executed).toBe(true) - }, - }) - }) + expect(hit).toBe(true) + }), + ), + ) + + it.live("returns function result", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + const result = yield* lock(file, () => Effect.succeed("success")) + expect(result).toBe("success") + }), + ), + ) + + it.live("serializes concurrent operations on same file", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + const order: number[] = [] + const hold = yield* Deferred.make() + const ready = yield* Deferred.make() + + const one = yield* lock(file, () => + Effect.gen(function* () { + order.push(1) + yield* Deferred.succeed(ready, void 0) + yield* Deferred.await(hold) + order.push(2) + }), + ).pipe(Effect.forkScoped) + + yield* Deferred.await(ready) + + const two = yield* lock(file, () => + Effect.sync(() => { + order.push(3) + order.push(4) + }), + ).pipe(Effect.forkScoped) + + yield* Deferred.succeed(hold, void 0) + yield* Fiber.join(one) + yield* Fiber.join(two) + + expect(order).toEqual([1, 2, 3, 4]) + }), + ), + ) + + it.live("allows concurrent operations on different files", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const onefile = path.join(dir, "file1.txt") + const twofile = path.join(dir, "file2.txt") + let one = false + let two = false + const hold = yield* Deferred.make() + const ready = yield* Deferred.make() + + const a = yield* lock(onefile, () => + Effect.gen(function* () { + one = true + yield* Deferred.succeed(ready, void 0) + yield* Deferred.await(hold) + expect(two).toBe(true) + }), + ).pipe(Effect.forkScoped) + + yield* Deferred.await(ready) + + const b = yield* lock(twofile, () => + Effect.sync(() => { + two = true + }), + ).pipe(Effect.forkScoped) + + yield* Fiber.join(b) + yield* Deferred.succeed(hold, void 0) + yield* Fiber.join(a) + + expect(one).toBe(true) + expect(two).toBe(true) + }), + ), + ) + + it.live("releases lock even if function throws", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + const err = yield* fail(lock(file, () => Effect.die(new Error("Test error")))) + expect(err.message).toContain("Test error") + + let hit = false + yield* lock(file, () => + Effect.sync(() => { + hit = true + }), + ) + expect(hit).toBe(true) + }), + ), + ) }) describe("path normalization", () => { - test("read with forward slashes, assert with backslashes", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - await touch(filepath, 1_000) + it.live("read with forward slashes, assert with backslashes", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") + yield* touch(file, 1_000) - const forwardSlash = filepath.replaceAll("\\", "/") + const forward = file.replaceAll("\\", "/") + yield* read(id, forward) + yield* check(id, file) + }), + ), + ) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, forwardSlash) - // assert with the native backslash path should still work - await FileTime.assert(sessionID, filepath) - }, - }) - }) + it.live("read with backslashes, assert with forward slashes", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") + yield* touch(file, 1_000) - test("read with backslashes, assert with forward slashes", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - await touch(filepath, 1_000) + const forward = file.replaceAll("\\", "/") + yield* read(id, file) + yield* check(id, forward) + }), + ), + ) - const forwardSlash = filepath.replaceAll("\\", "/") + it.live("get returns timestamp regardless of slash direction", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) - // assert with forward slashes should still work - await FileTime.assert(sessionID, forwardSlash) - }, - }) - }) + const forward = file.replaceAll("\\", "/") + yield* read(id, forward) - test("get returns timestamp regardless of slash direction", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - - const forwardSlash = filepath.replaceAll("\\", "/") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, forwardSlash) - const result = await FileTime.get(sessionID, filepath) + const result = yield* get(id, file) expect(result).toBeInstanceOf(Date) - }, - }) - }) + }), + ), + ) - test("withLock serializes regardless of slash direction", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - - const forwardSlash = filepath.replaceAll("\\", "/") - - await Instance.provide({ - directory: tmp.path, - fn: async () => { + it.live("withLock serializes regardless of slash direction", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + const forward = file.replaceAll("\\", "/") const order: number[] = [] - const hold = gate() - const ready = gate() + const hold = yield* Deferred.make() + const ready = yield* Deferred.make() - const op1 = FileTime.withLock(filepath, async () => { - order.push(1) - ready.open() - await hold.wait - order.push(2) - }) + const one = yield* lock(file, () => + Effect.gen(function* () { + order.push(1) + yield* Deferred.succeed(ready, void 0) + yield* Deferred.await(hold) + order.push(2) + }), + ).pipe(Effect.forkScoped) - await ready.wait + yield* Deferred.await(ready) - // Use forward-slash variant -- should still serialize against op1 - const op2 = FileTime.withLock(forwardSlash, async () => { - order.push(3) - order.push(4) - }) + const two = yield* lock(forward, () => + Effect.sync(() => { + order.push(3) + order.push(4) + }), + ).pipe(Effect.forkScoped) - hold.open() + yield* Deferred.succeed(hold, void 0) + yield* Fiber.join(one) + yield* Fiber.join(two) - await Promise.all([op1, op2]) expect(order).toEqual([1, 2, 3, 4]) - }, - }) - }) + }), + ), + ) }) describe("stat() Filesystem.stat pattern", () => { - test("reads file modification time via Filesystem.stat()", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "content", "utf-8") - await touch(filepath, 1_000) + it.live("reads file modification time via Filesystem.stat()", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "content") + yield* touch(file, 1_000) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) + yield* read(id, file) - const stats = Filesystem.stat(filepath) - expect(stats?.mtime).toBeInstanceOf(Date) - expect(stats!.mtime.getTime()).toBeGreaterThan(0) + const stat = Filesystem.stat(file) + expect(stat?.mtime).toBeInstanceOf(Date) + expect(stat!.mtime.getTime()).toBeGreaterThan(0) - await FileTime.assert(sessionID, filepath) - }, - }) - }) + yield* check(id, file) + }), + ), + ) - test("detects modification via stat mtime", async () => { - await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "file.txt") - await fs.writeFile(filepath, "original", "utf-8") - await touch(filepath, 1_000) + it.live("detects modification via stat mtime", () => + provideTmpdirInstance((dir) => + Effect.gen(function* () { + const file = path.join(dir, "file.txt") + yield* put(file, "original") + yield* touch(file, 1_000) - await Instance.provide({ - directory: tmp.path, - fn: async () => { - await FileTime.read(sessionID, filepath) + yield* read(id, file) - const originalStat = Filesystem.stat(filepath) + const first = Filesystem.stat(file) - await fs.writeFile(filepath, "modified", "utf-8") - await touch(filepath, 2_000) + yield* put(file, "modified") + yield* touch(file, 2_000) - const newStat = Filesystem.stat(filepath) - expect(newStat!.mtime.getTime()).toBeGreaterThan(originalStat!.mtime.getTime()) + const second = Filesystem.stat(file) + expect(second!.mtime.getTime()).toBeGreaterThan(first!.mtime.getTime()) - await expect(FileTime.assert(sessionID, filepath)).rejects.toThrow() - }, - }) - }) + yield* fail(check(id, file)) + }), + ), + ) }) }) From 003010bdb63210f9f21485b9abc54b35b38035ce Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 20:57:01 -0400 Subject: [PATCH 135/151] refactor(question): destroy Question facade (#22092) --- packages/opencode/src/question/index.ts | 23 ---- .../opencode/src/server/instance/question.ts | 17 ++- .../opencode/test/question/question.test.ts | 118 ++++++++++-------- 3 files changed, 77 insertions(+), 81 deletions(-) diff --git a/packages/opencode/src/question/index.ts b/packages/opencode/src/question/index.ts index ca83bb7b2..178bc7943 100644 --- a/packages/opencode/src/question/index.ts +++ b/packages/opencode/src/question/index.ts @@ -2,7 +2,6 @@ import { Deferred, Effect, Layer, Schema, Context } from "effect" import { Bus } from "@/bus" import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { SessionID, MessageID } from "@/session/schema" import { Log } from "@/util/log" import z from "zod" @@ -199,26 +198,4 @@ export namespace Question { ) export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function ask(input: { - sessionID: SessionID - questions: Info[] - tool?: { messageID: MessageID; callID: string } - }): Promise { - return runPromise((s) => s.ask(input)) - } - - export async function reply(input: { requestID: QuestionID; answers: Answer[] }) { - return runPromise((s) => s.reply(input)) - } - - export async function reject(requestID: QuestionID) { - return runPromise((s) => s.reject(requestID)) - } - - export async function list() { - return runPromise((s) => s.list()) - } } diff --git a/packages/opencode/src/server/instance/question.ts b/packages/opencode/src/server/instance/question.ts index 3fff895fa..501ae2181 100644 --- a/packages/opencode/src/server/instance/question.ts +++ b/packages/opencode/src/server/instance/question.ts @@ -3,6 +3,7 @@ import { describeRoute, validator } from "hono-openapi" import { resolver } from "hono-openapi" import { QuestionID } from "@/question/schema" import { Question } from "../../question" +import { AppRuntime } from "@/effect/app-runtime" import z from "zod" import { errors } from "../error" import { lazy } from "../../util/lazy" @@ -27,7 +28,7 @@ export const QuestionRoutes = lazy(() => }, }), async (c) => { - const questions = await Question.list() + const questions = await AppRuntime.runPromise(Question.Service.use((svc) => svc.list())) return c.json(questions) }, ) @@ -59,10 +60,14 @@ export const QuestionRoutes = lazy(() => async (c) => { const params = c.req.valid("param") const json = c.req.valid("json") - await Question.reply({ - requestID: params.requestID, - answers: json.answers, - }) + await AppRuntime.runPromise( + Question.Service.use((svc) => + svc.reply({ + requestID: params.requestID, + answers: json.answers, + }), + ), + ) return c.json(true) }, ) @@ -92,7 +97,7 @@ export const QuestionRoutes = lazy(() => ), async (c) => { const params = c.req.valid("param") - await Question.reject(params.requestID) + await AppRuntime.runPromise(Question.Service.use((svc) => svc.reject(params.requestID))) return c.json(true) }, ), diff --git a/packages/opencode/test/question/question.test.ts b/packages/opencode/test/question/question.test.ts index adfeda395..8ee361e57 100644 --- a/packages/opencode/test/question/question.test.ts +++ b/packages/opencode/test/question/question.test.ts @@ -4,6 +4,20 @@ import { Instance } from "../../src/project/instance" import { QuestionID } from "../../src/question/schema" import { tmpdir } from "../fixture/fixture" import { SessionID } from "../../src/session/schema" +import { AppRuntime } from "../../src/effect/app-runtime" + +const ask = (input: { + sessionID: SessionID + questions: Question.Info[] + tool?: { messageID: any; callID: string } +}) => AppRuntime.runPromise(Question.Service.use((svc) => svc.ask(input))) + +const list = () => AppRuntime.runPromise(Question.Service.use((svc) => svc.list())) + +const reply = (input: { requestID: QuestionID; answers: Question.Answer[] }) => + AppRuntime.runPromise(Question.Service.use((svc) => svc.reply(input))) + +const reject = (id: QuestionID) => AppRuntime.runPromise(Question.Service.use((svc) => svc.reject(id))) afterEach(async () => { await Instance.disposeAll() @@ -11,9 +25,9 @@ afterEach(async () => { /** Reject all pending questions so dangling Deferred fibers don't hang the test. */ async function rejectAll() { - const pending = await Question.list() + const pending = await list() for (const req of pending) { - await Question.reject(req.id) + await reject(req.id) } } @@ -22,7 +36,7 @@ test("ask - returns pending promise", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const promise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions: [ { @@ -58,16 +72,16 @@ test("ask - adds to pending list", async () => { }, ] - const askPromise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions, }) - const pending = await Question.list() + const pending = await list() expect(pending.length).toBe(1) expect(pending[0].questions).toEqual(questions) await rejectAll() - await askPromise.catch(() => {}) + await promise.catch(() => {}) }, }) }) @@ -90,20 +104,20 @@ test("reply - resolves the pending ask with answers", async () => { }, ] - const askPromise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions, }) - const pending = await Question.list() + const pending = await list() const requestID = pending[0].id - await Question.reply({ + await reply({ requestID, answers: [["Option 1"]], }) - const answers = await askPromise + const answers = await promise expect(answers).toEqual([["Option 1"]]) }, }) @@ -114,7 +128,7 @@ test("reply - removes from pending list", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const askPromise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions: [ { @@ -128,17 +142,17 @@ test("reply - removes from pending list", async () => { ], }) - const pending = await Question.list() + const pending = await list() expect(pending.length).toBe(1) - await Question.reply({ + await reply({ requestID: pending[0].id, answers: [["Option 1"]], }) - await askPromise + await promise - const pendingAfter = await Question.list() - expect(pendingAfter.length).toBe(0) + const after = await list() + expect(after.length).toBe(0) }, }) }) @@ -148,7 +162,7 @@ test("reply - does nothing for unknown requestID", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await Question.reply({ + await reply({ requestID: QuestionID.make("que_unknown"), answers: [["Option 1"]], }) @@ -164,7 +178,7 @@ test("reject - throws RejectedError", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const askPromise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions: [ { @@ -178,10 +192,10 @@ test("reject - throws RejectedError", async () => { ], }) - const pending = await Question.list() - await Question.reject(pending[0].id) + const pending = await list() + await reject(pending[0].id) - await expect(askPromise).rejects.toBeInstanceOf(Question.RejectedError) + await expect(promise).rejects.toBeInstanceOf(Question.RejectedError) }, }) }) @@ -191,7 +205,7 @@ test("reject - removes from pending list", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const askPromise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions: [ { @@ -205,14 +219,14 @@ test("reject - removes from pending list", async () => { ], }) - const pending = await Question.list() + const pending = await list() expect(pending.length).toBe(1) - await Question.reject(pending[0].id) - askPromise.catch(() => {}) // Ignore rejection + await reject(pending[0].id) + promise.catch(() => {}) // Ignore rejection - const pendingAfter = await Question.list() - expect(pendingAfter.length).toBe(0) + const after = await list() + expect(after.length).toBe(0) }, }) }) @@ -222,7 +236,7 @@ test("reject - does nothing for unknown requestID", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await Question.reject(QuestionID.make("que_unknown")) + await reject(QuestionID.make("que_unknown")) // Should not throw }, }) @@ -254,19 +268,19 @@ test("ask - handles multiple questions", async () => { }, ] - const askPromise = Question.ask({ + const promise = ask({ sessionID: SessionID.make("ses_test"), questions, }) - const pending = await Question.list() + const pending = await list() - await Question.reply({ + await reply({ requestID: pending[0].id, answers: [["Build"], ["Dev"]], }) - const answers = await askPromise + const answers = await promise expect(answers).toEqual([["Build"], ["Dev"]]) }, }) @@ -279,7 +293,7 @@ test("list - returns all pending requests", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const p1 = Question.ask({ + const p1 = ask({ sessionID: SessionID.make("ses_test1"), questions: [ { @@ -290,7 +304,7 @@ test("list - returns all pending requests", async () => { ], }) - const p2 = Question.ask({ + const p2 = ask({ sessionID: SessionID.make("ses_test2"), questions: [ { @@ -301,7 +315,7 @@ test("list - returns all pending requests", async () => { ], }) - const pending = await Question.list() + const pending = await list() expect(pending.length).toBe(2) await rejectAll() p1.catch(() => {}) @@ -315,7 +329,7 @@ test("list - returns empty when no pending", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const pending = await Question.list() + const pending = await list() expect(pending.length).toBe(0) }, }) @@ -328,7 +342,7 @@ test("questions stay isolated by directory", async () => { const p1 = Instance.provide({ directory: one.path, fn: () => - Question.ask({ + ask({ sessionID: SessionID.make("ses_one"), questions: [ { @@ -343,7 +357,7 @@ test("questions stay isolated by directory", async () => { const p2 = Instance.provide({ directory: two.path, fn: () => - Question.ask({ + ask({ sessionID: SessionID.make("ses_two"), questions: [ { @@ -357,11 +371,11 @@ test("questions stay isolated by directory", async () => { const onePending = await Instance.provide({ directory: one.path, - fn: () => Question.list(), + fn: () => list(), }) const twoPending = await Instance.provide({ directory: two.path, - fn: () => Question.list(), + fn: () => list(), }) expect(onePending.length).toBe(1) @@ -371,11 +385,11 @@ test("questions stay isolated by directory", async () => { await Instance.provide({ directory: one.path, - fn: () => Question.reject(onePending[0].id), + fn: () => reject(onePending[0].id), }) await Instance.provide({ directory: two.path, - fn: () => Question.reject(twoPending[0].id), + fn: () => reject(twoPending[0].id), }) await p1.catch(() => {}) @@ -385,10 +399,10 @@ test("questions stay isolated by directory", async () => { test("pending question rejects on instance dispose", async () => { await using tmp = await tmpdir({ git: true }) - const ask = Instance.provide({ + const pending = Instance.provide({ directory: tmp.path, fn: () => { - return Question.ask({ + return ask({ sessionID: SessionID.make("ses_dispose"), questions: [ { @@ -400,7 +414,7 @@ test("pending question rejects on instance dispose", async () => { }) }, }) - const result = ask.then( + const result = pending.then( () => "resolved" as const, (err) => err, ) @@ -408,8 +422,8 @@ test("pending question rejects on instance dispose", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const pending = await Question.list() - expect(pending).toHaveLength(1) + const items = await list() + expect(items).toHaveLength(1) await Instance.dispose() }, }) @@ -420,10 +434,10 @@ test("pending question rejects on instance dispose", async () => { test("pending question rejects on instance reload", async () => { await using tmp = await tmpdir({ git: true }) - const ask = Instance.provide({ + const pending = Instance.provide({ directory: tmp.path, fn: () => { - return Question.ask({ + return ask({ sessionID: SessionID.make("ses_reload"), questions: [ { @@ -435,7 +449,7 @@ test("pending question rejects on instance reload", async () => { }) }, }) - const result = ask.then( + const result = pending.then( () => "resolved" as const, (err) => err, ) @@ -443,8 +457,8 @@ test("pending question rejects on instance reload", async () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const pending = await Question.list() - expect(pending).toHaveLength(1) + const items = await list() + expect(items).toHaveLength(1) await Instance.reload({ directory: tmp.path }) }, }) From 17b290088485bd8c1ccdfbf13e8e9c2f3b2c3301 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sun, 12 Apr 2026 00:58:05 +0000 Subject: [PATCH 136/151] chore: generate --- .../opencode/test/question/question.test.ts | 7 +- packages/sdk/js/src/v2/gen/types.gen.ts | 48 +++++----- packages/sdk/openapi.json | 94 +++++++++---------- 3 files changed, 73 insertions(+), 76 deletions(-) diff --git a/packages/opencode/test/question/question.test.ts b/packages/opencode/test/question/question.test.ts index 8ee361e57..7c101ce28 100644 --- a/packages/opencode/test/question/question.test.ts +++ b/packages/opencode/test/question/question.test.ts @@ -6,11 +6,8 @@ import { tmpdir } from "../fixture/fixture" import { SessionID } from "../../src/session/schema" import { AppRuntime } from "../../src/effect/app-runtime" -const ask = (input: { - sessionID: SessionID - questions: Question.Info[] - tool?: { messageID: any; callID: string } -}) => AppRuntime.runPromise(Question.Service.use((svc) => svc.ask(input))) +const ask = (input: { sessionID: SessionID; questions: Question.Info[]; tool?: { messageID: any; callID: string } }) => + AppRuntime.runPromise(Question.Service.use((svc) => svc.ask(input))) const list = () => AppRuntime.runPromise(Question.Service.use((svc) => svc.list())) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index f2b32a159..4aab9f439 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -387,6 +387,29 @@ export type EventQuestionRejected = { } } +export type Todo = { + /** + * Brief description of the task + */ + content: string + /** + * Current status of the task: pending, in_progress, completed, cancelled + */ + status: string + /** + * Priority level of the task: high, medium, low + */ + priority: string +} + +export type EventTodoUpdated = { + type: "todo.updated" + properties: { + sessionID: string + todos: Array + } +} + export type SessionStatus = | { type: "idle" @@ -423,29 +446,6 @@ export type EventSessionCompacted = { } } -export type Todo = { - /** - * Brief description of the task - */ - content: string - /** - * Current status of the task: pending, in_progress, completed, cancelled - */ - status: string - /** - * Priority level of the task: high, medium, low - */ - priority: string -} - -export type EventTodoUpdated = { - type: "todo.updated" - properties: { - sessionID: string - todos: Array - } -} - export type EventWorktreeReady = { type: "worktree.ready" properties: { @@ -998,10 +998,10 @@ export type Event = | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected + | EventTodoUpdated | EventSessionStatus | EventSessionIdle | EventSessionCompacted - | EventTodoUpdated | EventWorktreeReady | EventWorktreeFailed | EventPtyCreated diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 5e5058fde..e8d6e6a08 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -8139,6 +8139,50 @@ }, "required": ["type", "properties"] }, + "Todo": { + "type": "object", + "properties": { + "content": { + "description": "Brief description of the task", + "type": "string" + }, + "status": { + "description": "Current status of the task: pending, in_progress, completed, cancelled", + "type": "string" + }, + "priority": { + "description": "Priority level of the task: high, medium, low", + "type": "string" + } + }, + "required": ["content", "status", "priority"] + }, + "Event.todo.updated": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "todo.updated" + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses.*" + }, + "todos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Todo" + } + } + }, + "required": ["sessionID", "todos"] + } + }, + "required": ["type", "properties"] + }, "SessionStatus": { "anyOf": [ { @@ -8245,50 +8289,6 @@ }, "required": ["type", "properties"] }, - "Todo": { - "type": "object", - "properties": { - "content": { - "description": "Brief description of the task", - "type": "string" - }, - "status": { - "description": "Current status of the task: pending, in_progress, completed, cancelled", - "type": "string" - }, - "priority": { - "description": "Priority level of the task: high, medium, low", - "type": "string" - } - }, - "required": ["content", "status", "priority"] - }, - "Event.todo.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "todo.updated" - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses.*" - }, - "todos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Todo" - } - } - }, - "required": ["sessionID", "todos"] - } - }, - "required": ["type", "properties"] - }, "Event.worktree.ready": { "type": "object", "properties": { @@ -9949,6 +9949,9 @@ { "$ref": "#/components/schemas/Event.question.rejected" }, + { + "$ref": "#/components/schemas/Event.todo.updated" + }, { "$ref": "#/components/schemas/Event.session.status" }, @@ -9958,9 +9961,6 @@ { "$ref": "#/components/schemas/Event.session.compacted" }, - { - "$ref": "#/components/schemas/Event.todo.updated" - }, { "$ref": "#/components/schemas/Event.worktree.ready" }, From 824c12c01a9da6b49f16ab8128f29c32595bfdac Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 21:19:12 -0400 Subject: [PATCH 137/151] refactor(file): destroy FileWatcher facade (#22091) --- packages/opencode/src/effect/bootstrap-runtime.ts | 3 ++- packages/opencode/src/file/watcher.ts | 7 ------- packages/opencode/src/project/bootstrap.ts | 4 ++-- packages/opencode/test/project/vcs.test.ts | 3 ++- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/opencode/src/effect/bootstrap-runtime.ts b/packages/opencode/src/effect/bootstrap-runtime.ts index 648f2484e..78df313e8 100644 --- a/packages/opencode/src/effect/bootstrap-runtime.ts +++ b/packages/opencode/src/effect/bootstrap-runtime.ts @@ -1,9 +1,10 @@ import { Layer, ManagedRuntime } from "effect" import { memoMap } from "./run-service" +import { FileWatcher } from "@/file/watcher" import { Format } from "@/format" import { ShareNext } from "@/share/share-next" -export const BootstrapLayer = Layer.mergeAll(Format.defaultLayer, ShareNext.defaultLayer) +export const BootstrapLayer = Layer.mergeAll(Format.defaultLayer, ShareNext.defaultLayer, FileWatcher.defaultLayer) export const BootstrapRuntime = ManagedRuntime.make(BootstrapLayer, { memoMap }) diff --git a/packages/opencode/src/file/watcher.ts b/packages/opencode/src/file/watcher.ts index 609543fb0..8737045c1 100644 --- a/packages/opencode/src/file/watcher.ts +++ b/packages/opencode/src/file/watcher.ts @@ -8,7 +8,6 @@ import z from "zod" import { Bus } from "@/bus" import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { Flag } from "@/flag/flag" import { Git } from "@/git" import { Instance } from "@/project/instance" @@ -161,10 +160,4 @@ export namespace FileWatcher { ) export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer), Layer.provide(Git.defaultLayer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export function init() { - return runPromise((svc) => svc.init()) - } } diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index 9f6f7fa6f..b7d739fcd 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -2,7 +2,6 @@ import { Plugin } from "../plugin" import { Format } from "../format" import { LSP } from "../lsp" import { File } from "../file" -import { FileWatcher } from "../file/watcher" import { Snapshot } from "../snapshot" import { Project } from "./project" import { Vcs } from "./vcs" @@ -11,6 +10,7 @@ import { Command } from "../command" import { Instance } from "./instance" import { Log } from "@/util/log" import { BootstrapRuntime } from "@/effect/bootstrap-runtime" +import { FileWatcher } from "@/file/watcher" import { ShareNext } from "@/share/share-next" export async function InstanceBootstrap() { @@ -20,7 +20,7 @@ export async function InstanceBootstrap() { void BootstrapRuntime.runPromise(Format.Service.use((svc) => svc.init())) await LSP.init() File.init() - FileWatcher.init() + void BootstrapRuntime.runPromise(FileWatcher.Service.use((svc) => svc.init())) Vcs.init() Snapshot.init() diff --git a/packages/opencode/test/project/vcs.test.ts b/packages/opencode/test/project/vcs.test.ts index a327f65fa..1610902af 100644 --- a/packages/opencode/test/project/vcs.test.ts +++ b/packages/opencode/test/project/vcs.test.ts @@ -3,6 +3,7 @@ import { afterEach, describe, expect, test } from "bun:test" import fs from "fs/promises" import path from "path" import { tmpdir } from "../fixture/fixture" +import { AppRuntime } from "../../src/effect/app-runtime" import { FileWatcher } from "../../src/file/watcher" import { Instance } from "../../src/project/instance" import { GlobalBus } from "../../src/bus/global" @@ -19,7 +20,7 @@ async function withVcs(directory: string, body: () => Promise) { return Instance.provide({ directory, fn: async () => { - FileWatcher.init() + void AppRuntime.runPromise(FileWatcher.Service.use((svc) => svc.init())) Vcs.init() await Bun.sleep(500) await body() From 319b7655b7f6d7b32f1d6a2de4de78617195dcc9 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 21:20:12 -0400 Subject: [PATCH 138/151] refactor(tool): destroy Truncate facade, effectify Tool.define (#22093) --- packages/opencode/src/tool/tool.ts | 20 +- packages/opencode/src/tool/truncate.ts | 7 - .../opencode/test/tool/apply_patch.test.ts | 4 +- packages/opencode/test/tool/bash.test.ts | 9 +- packages/opencode/test/tool/edit.test.ts | 4 +- packages/opencode/test/tool/grep.test.ts | 4 +- packages/opencode/test/tool/question.test.ts | 4 +- packages/opencode/test/tool/read.test.ts | 2 + packages/opencode/test/tool/skill.test.ts | 4 +- packages/opencode/test/tool/task.test.ts | 2 + .../opencode/test/tool/tool-define.test.ts | 12 +- .../opencode/test/tool/truncation.test.ts | 211 ++++++++++-------- packages/opencode/test/tool/webfetch.test.ts | 24 +- packages/opencode/test/tool/write.test.ts | 4 + 14 files changed, 186 insertions(+), 125 deletions(-) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 3009f4cd2..49dd2b060 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -70,7 +70,12 @@ export namespace Tool { ? Def : never - function wrap(id: string, init: Init) { + function wrap( + id: string, + init: Init, + truncate: Truncate.Interface, + agents: Agent.Interface, + ) { return () => Effect.gen(function* () { const toolInfo = init instanceof Function ? { ...(yield* init()) } : { ...init } @@ -93,8 +98,8 @@ export namespace Tool { if (result.metadata.truncated !== undefined) { return result } - const agent = yield* Effect.promise(() => Agent.get(ctx.agent)) - const truncated = yield* Effect.promise(() => Truncate.output(result.output, {}, agent)) + const agent = yield* agents.get(ctx.agent) + const truncated = yield* truncate.output(result.output, {}, agent) return { ...result, output: truncated.content, @@ -112,9 +117,14 @@ export namespace Tool { export function define( id: ID, init: Effect.Effect, never, R>, - ): Effect.Effect, never, R> & { id: ID } { + ): Effect.Effect, never, R | Truncate.Service | Agent.Service> & { id: ID } { return Object.assign( - Effect.map(init, (init) => ({ id, init: wrap(id, init) })), + Effect.gen(function* () { + const resolved = yield* init + const truncate = yield* Truncate.Service + const agents = yield* Agent.Service + return { id, init: wrap(id, resolved, truncate, agents) } + }), { id }, ) } diff --git a/packages/opencode/src/tool/truncate.ts b/packages/opencode/src/tool/truncate.ts index 716929cc6..fa9e0bcab 100644 --- a/packages/opencode/src/tool/truncate.ts +++ b/packages/opencode/src/tool/truncate.ts @@ -2,7 +2,6 @@ import { NodePath } from "@effect/platform-node" import { Cause, Duration, Effect, Layer, Schedule, Context } from "effect" import path from "path" import type { Agent } from "../agent/agent" -import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@/filesystem" import { evaluate } from "@/permission/evaluate" import { Identifier } from "../id/id" @@ -135,10 +134,4 @@ export namespace Truncate { ) export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer), Layer.provide(NodePath.layer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function output(text: string, options: Options = {}, agent?: Agent.Info): Promise { - return runPromise((s) => s.output(text, options, agent)) - } } diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index 4efa12f2f..d65b1126c 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -7,12 +7,14 @@ import { Instance } from "../../src/project/instance" import { LSP } from "../../src/lsp" import { AppFileSystem } from "../../src/filesystem" import { Format } from "../../src/format" +import { Agent } from "../../src/agent/agent" import { Bus } from "../../src/bus" +import { Truncate } from "../../src/tool/truncate" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" const runtime = ManagedRuntime.make( - Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), + Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer, Truncate.defaultLayer, Agent.defaultLayer), ) const baseCtx = { diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index e9a6ae38c..839c066c6 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -8,6 +8,7 @@ import { Instance } from "../../src/project/instance" import { Filesystem } from "../../src/util/filesystem" import { tmpdir } from "../fixture/fixture" import type { Permission } from "../../src/permission" +import { Agent } from "../../src/agent/agent" import { Truncate } from "../../src/tool/truncate" import { SessionID, MessageID } from "../../src/session/schema" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" @@ -15,7 +16,13 @@ import { AppFileSystem } from "../../src/filesystem" import { Plugin } from "../../src/plugin" const runtime = ManagedRuntime.make( - Layer.mergeAll(CrossSpawnSpawner.defaultLayer, AppFileSystem.defaultLayer, Plugin.defaultLayer), + Layer.mergeAll( + CrossSpawnSpawner.defaultLayer, + AppFileSystem.defaultLayer, + Plugin.defaultLayer, + Truncate.defaultLayer, + Agent.defaultLayer, + ), ) function initBash() { diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 0695b54ba..c19c22d2c 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -9,8 +9,10 @@ import { FileTime } from "../../src/file/time" import { LSP } from "../../src/lsp" import { AppFileSystem } from "../../src/filesystem" import { Format } from "../../src/format" +import { Agent } from "../../src/agent/agent" import { Bus } from "../../src/bus" import { BusEvent } from "../../src/bus/bus-event" +import { Truncate } from "../../src/tool/truncate" import { SessionID, MessageID } from "../../src/session/schema" const ctx = { @@ -34,7 +36,7 @@ async function touch(file: string, time: number) { } const runtime = ManagedRuntime.make( - Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), + Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer, Truncate.defaultLayer, Agent.defaultLayer), ) afterAll(async () => { diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index 4078c9ce6..926b26003 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -6,8 +6,10 @@ import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" +import { Truncate } from "../../src/tool/truncate" +import { Agent } from "../../src/agent/agent" -const runtime = ManagedRuntime.make(Layer.mergeAll(CrossSpawnSpawner.defaultLayer)) +const runtime = ManagedRuntime.make(Layer.mergeAll(CrossSpawnSpawner.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer)) function initGrep() { return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => info.init()))) diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index f651f019e..4b9455236 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -4,7 +4,9 @@ import { Tool } from "../../src/tool/tool" import { QuestionTool } from "../../src/tool/question" import { Question } from "../../src/question" import { SessionID, MessageID } from "../../src/session/schema" +import { Agent } from "../../src/agent/agent" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" +import { Truncate } from "../../src/tool/truncate" import { provideTmpdirInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" @@ -19,7 +21,7 @@ const ctx = { ask: () => Effect.void, } -const it = testEffect(Layer.mergeAll(Question.defaultLayer, CrossSpawnSpawner.defaultLayer)) +const it = testEffect(Layer.mergeAll(Question.defaultLayer, CrossSpawnSpawner.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer)) const pending = Effect.fn("QuestionToolTest.pending")(function* (question: Question.Interface) { for (;;) { diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index c41cefda3..2064193d5 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -11,6 +11,7 @@ import { Instance } from "../../src/project/instance" import { SessionID, MessageID } from "../../src/session/schema" import { Instruction } from "../../src/session/instruction" import { ReadTool } from "../../src/tool/read" +import { Truncate } from "../../src/tool/truncate" import { Tool } from "../../src/tool/tool" import { Filesystem } from "../../src/util/filesystem" import { provideInstance, tmpdirScoped } from "../fixture/fixture" @@ -41,6 +42,7 @@ const it = testEffect( FileTime.defaultLayer, Instruction.defaultLayer, LSP.defaultLayer, + Truncate.defaultLayer, ), ) diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index 47a8321ef..85af7f378 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -1,6 +1,8 @@ import { Effect, Layer, ManagedRuntime } from "effect" +import { Agent } from "../../src/agent/agent" import { Skill } from "../../src/skill" import { Ripgrep } from "../../src/file/ripgrep" +import { Truncate } from "../../src/tool/truncate" import { afterEach, describe, expect, test } from "bun:test" import path from "path" import { pathToFileURL } from "url" @@ -150,7 +152,7 @@ Use this skill. await Instance.provide({ directory: tmp.path, fn: async () => { - const runtime = ManagedRuntime.make(Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer)) + const runtime = ManagedRuntime.make(Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer)) const info = await runtime.runPromise(SkillTool) const tool = await runtime.runPromise(info.init()) const requests: Array> = [] diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index e2ae52bf0..436c46490 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -10,6 +10,7 @@ import type { SessionPrompt } from "../../src/session/prompt" import { MessageID, PartID } from "../../src/session/schema" import { ModelID, ProviderID } from "../../src/provider/schema" import { TaskTool, type TaskPromptOps } from "../../src/tool/task" +import { Truncate } from "../../src/tool/truncate" import { ToolRegistry } from "../../src/tool/registry" import { provideTmpdirInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" @@ -29,6 +30,7 @@ const it = testEffect( Config.defaultLayer, CrossSpawnSpawner.defaultLayer, Session.defaultLayer, + Truncate.defaultLayer, ToolRegistry.defaultLayer, ), ) diff --git a/packages/opencode/test/tool/tool-define.test.ts b/packages/opencode/test/tool/tool-define.test.ts index 425c83ffd..b8003e475 100644 --- a/packages/opencode/test/tool/tool-define.test.ts +++ b/packages/opencode/test/tool/tool-define.test.ts @@ -1,7 +1,11 @@ import { describe, test, expect } from "bun:test" -import { Effect } from "effect" +import { Effect, Layer, ManagedRuntime } from "effect" import z from "zod" +import { Agent } from "../../src/agent/agent" import { Tool } from "../../src/tool/tool" +import { Truncate } from "../../src/tool/truncate" + +const runtime = ManagedRuntime.make(Layer.mergeAll(Truncate.defaultLayer, Agent.defaultLayer)) const params = z.object({ input: z.string() }) @@ -21,7 +25,7 @@ describe("Tool.define", () => { const original = makeTool("test") const originalExecute = original.execute - const info = await Effect.runPromise(Tool.define("test-tool", Effect.succeed(original))) + const info = await runtime.runPromise(Tool.define("test-tool", Effect.succeed(original))) await Effect.runPromise(info.init()) await Effect.runPromise(info.init()) @@ -31,7 +35,7 @@ describe("Tool.define", () => { }) test("effect-defined tool returns fresh objects and is unaffected", async () => { - const info = await Effect.runPromise( + const info = await runtime.runPromise( Tool.define( "test-fn-tool", Effect.succeed(() => Effect.succeed(makeTool("test"))), @@ -45,7 +49,7 @@ describe("Tool.define", () => { }) test("object-defined tool returns distinct objects per init() call", async () => { - const info = await Effect.runPromise(Tool.define("test-copy", Effect.succeed(makeTool("test")))) + const info = await runtime.runPromise(Tool.define("test-copy", Effect.succeed(makeTool("test")))) const first = await Effect.runPromise(info.init()) const second = await Effect.runPromise(info.init()) diff --git a/packages/opencode/test/tool/truncation.test.ts b/packages/opencode/test/tool/truncation.test.ts index 9ec5b7840..493cd9d7e 100644 --- a/packages/opencode/test/tool/truncation.test.ts +++ b/packages/opencode/test/tool/truncation.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from "bun:test" import { NodeFileSystem } from "@effect/platform-node" import { Effect, FileSystem, Layer } from "effect" -import { Truncate, Truncate as TruncateSvc } from "../../src/tool/truncate" +import { Truncate } from "../../src/tool/truncate" import { Identifier } from "../../src/id/id" import { Process } from "../../src/util/process" import { Filesystem } from "../../src/util/filesystem" @@ -12,120 +12,155 @@ import { writeFileStringScoped } from "../lib/filesystem" const FIXTURES_DIR = path.join(import.meta.dir, "fixtures") const ROOT = path.resolve(import.meta.dir, "..", "..") +const it = testEffect(Layer.mergeAll(Truncate.defaultLayer, NodeFileSystem.layer)) + describe("Truncate", () => { describe("output", () => { - test("truncates large json file by bytes", async () => { - const content = await Filesystem.readText(path.join(FIXTURES_DIR, "models-api.json")) - const result = await Truncate.output(content) + it.live("truncates large json file by bytes", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const content = yield* Effect.promise(() => Filesystem.readText(path.join(FIXTURES_DIR, "models-api.json"))) + const result = yield* svc.output(content) - expect(result.truncated).toBe(true) - expect(result.content).toContain("truncated...") - if (result.truncated) expect(result.outputPath).toBeDefined() - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("truncated...") + if (result.truncated) expect(result.outputPath).toBeDefined() + }), + ) - test("returns content unchanged when under limits", async () => { - const content = "line1\nline2\nline3" - const result = await Truncate.output(content) + it.live("returns content unchanged when under limits", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const content = "line1\nline2\nline3" + const result = yield* svc.output(content) - expect(result.truncated).toBe(false) - expect(result.content).toBe(content) - }) + expect(result.truncated).toBe(false) + expect(result.content).toBe(content) + }), + ) - test("truncates by line count", async () => { - const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") - const result = await Truncate.output(lines, { maxLines: 10 }) + it.live("truncates by line count", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") + const result = yield* svc.output(lines, { maxLines: 10 }) - expect(result.truncated).toBe(true) - expect(result.content).toContain("...90 lines truncated...") - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("...90 lines truncated...") + }), + ) - test("truncates by byte count", async () => { - const content = "a".repeat(1000) - const result = await Truncate.output(content, { maxBytes: 100 }) + it.live("truncates by byte count", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const content = "a".repeat(1000) + const result = yield* svc.output(content, { maxBytes: 100 }) - expect(result.truncated).toBe(true) - expect(result.content).toContain("truncated...") - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("truncated...") + }), + ) - test("truncates from head by default", async () => { - const lines = Array.from({ length: 10 }, (_, i) => `line${i}`).join("\n") - const result = await Truncate.output(lines, { maxLines: 3 }) + it.live("truncates from head by default", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const lines = Array.from({ length: 10 }, (_, i) => `line${i}`).join("\n") + const result = yield* svc.output(lines, { maxLines: 3 }) - expect(result.truncated).toBe(true) - expect(result.content).toContain("line0") - expect(result.content).toContain("line1") - expect(result.content).toContain("line2") - expect(result.content).not.toContain("line9") - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("line0") + expect(result.content).toContain("line1") + expect(result.content).toContain("line2") + expect(result.content).not.toContain("line9") + }), + ) - test("truncates from tail when direction is tail", async () => { - const lines = Array.from({ length: 10 }, (_, i) => `line${i}`).join("\n") - const result = await Truncate.output(lines, { maxLines: 3, direction: "tail" }) + it.live("truncates from tail when direction is tail", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const lines = Array.from({ length: 10 }, (_, i) => `line${i}`).join("\n") + const result = yield* svc.output(lines, { maxLines: 3, direction: "tail" }) - expect(result.truncated).toBe(true) - expect(result.content).toContain("line7") - expect(result.content).toContain("line8") - expect(result.content).toContain("line9") - expect(result.content).not.toContain("line0") - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("line7") + expect(result.content).toContain("line8") + expect(result.content).toContain("line9") + expect(result.content).not.toContain("line0") + }), + ) test("uses default MAX_LINES and MAX_BYTES", () => { expect(Truncate.MAX_LINES).toBe(2000) expect(Truncate.MAX_BYTES).toBe(50 * 1024) }) - test("large single-line file truncates with byte message", async () => { - const content = await Filesystem.readText(path.join(FIXTURES_DIR, "models-api.json")) - const result = await Truncate.output(content) + it.live("large single-line file truncates with byte message", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const content = yield* Effect.promise(() => Filesystem.readText(path.join(FIXTURES_DIR, "models-api.json"))) + const result = yield* svc.output(content) - expect(result.truncated).toBe(true) - expect(result.content).toContain("bytes truncated...") - expect(Buffer.byteLength(content, "utf-8")).toBeGreaterThan(Truncate.MAX_BYTES) - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("bytes truncated...") + expect(Buffer.byteLength(content, "utf-8")).toBeGreaterThan(Truncate.MAX_BYTES) + }), + ) - test("writes full output to file when truncated", async () => { - const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") - const result = await Truncate.output(lines, { maxLines: 10 }) + it.live("writes full output to file when truncated", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") + const result = yield* svc.output(lines, { maxLines: 10 }) - expect(result.truncated).toBe(true) - expect(result.content).toContain("The tool call succeeded but the output was truncated") - expect(result.content).toContain("Grep") - if (!result.truncated) throw new Error("expected truncated") - expect(result.outputPath).toBeDefined() - expect(result.outputPath).toContain("tool_") + expect(result.truncated).toBe(true) + expect(result.content).toContain("The tool call succeeded but the output was truncated") + expect(result.content).toContain("Grep") + if (!result.truncated) throw new Error("expected truncated") + expect(result.outputPath).toBeDefined() + expect(result.outputPath).toContain("tool_") - const written = await Filesystem.readText(result.outputPath!) - expect(written).toBe(lines) - }) + const written = yield* Effect.promise(() => Filesystem.readText(result.outputPath!)) + expect(written).toBe(lines) + }), + ) - test("suggests Task tool when agent has task permission", async () => { - const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") - const agent = { permission: [{ permission: "task", pattern: "*", action: "allow" as const }] } - const result = await Truncate.output(lines, { maxLines: 10 }, agent as any) + it.live("suggests Task tool when agent has task permission", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") + const agent = { permission: [{ permission: "task", pattern: "*", action: "allow" as const }] } + const result = yield* svc.output(lines, { maxLines: 10 }, agent as any) - expect(result.truncated).toBe(true) - expect(result.content).toContain("Grep") - expect(result.content).toContain("Task tool") - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("Grep") + expect(result.content).toContain("Task tool") + }), + ) - test("omits Task tool hint when agent lacks task permission", async () => { - const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") - const agent = { permission: [{ permission: "task", pattern: "*", action: "deny" as const }] } - const result = await Truncate.output(lines, { maxLines: 10 }, agent as any) + it.live("omits Task tool hint when agent lacks task permission", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const lines = Array.from({ length: 100 }, (_, i) => `line${i}`).join("\n") + const agent = { permission: [{ permission: "task", pattern: "*", action: "deny" as const }] } + const result = yield* svc.output(lines, { maxLines: 10 }, agent as any) - expect(result.truncated).toBe(true) - expect(result.content).toContain("Grep") - expect(result.content).not.toContain("Task tool") - }) + expect(result.truncated).toBe(true) + expect(result.content).toContain("Grep") + expect(result.content).not.toContain("Task tool") + }), + ) - test("does not write file when not truncated", async () => { - const content = "short content" - const result = await Truncate.output(content) + it.live("does not write file when not truncated", () => + Effect.gen(function* () { + const svc = yield* Truncate.Service + const content = "short content" + const result = yield* svc.output(content) - expect(result.truncated).toBe(false) - if (result.truncated) throw new Error("expected not truncated") - expect("outputPath" in result).toBe(false) - }) + expect(result.truncated).toBe(false) + if (result.truncated) throw new Error("expected not truncated") + expect("outputPath" in result).toBe(false) + }), + ) test("loads truncate effect in a fresh process", async () => { const out = await Process.run([process.execPath, "run", path.join(ROOT, "src", "tool", "truncate.ts")], { @@ -138,10 +173,10 @@ describe("Truncate", () => { describe("cleanup", () => { const DAY_MS = 24 * 60 * 60 * 1000 - const it = testEffect(Layer.mergeAll(TruncateSvc.defaultLayer, NodeFileSystem.layer)) it.live("deletes files older than 7 days and preserves recent files", () => Effect.gen(function* () { + const svc = yield* Truncate.Service const fs = yield* FileSystem.FileSystem yield* fs.makeDirectory(Truncate.DIR, { recursive: true }) @@ -151,7 +186,7 @@ describe("Truncate", () => { yield* writeFileStringScoped(old, "old content") yield* writeFileStringScoped(recent, "recent content") - yield* TruncateSvc.Service.use((s) => s.cleanup()) + yield* svc.cleanup() expect(yield* fs.exists(old)).toBe(false) expect(yield* fs.exists(recent)).toBe(true) diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index c6b2fd331..7d2ff1dca 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -1,7 +1,9 @@ import { describe, expect, test } from "bun:test" import path from "path" -import { Effect } from "effect" +import { Effect, Layer } from "effect" import { FetchHttpClient } from "effect/unstable/http" +import { Agent } from "../../src/agent/agent" +import { Truncate } from "../../src/tool/truncate" import { Instance } from "../../src/project/instance" import { WebFetchTool } from "../../src/tool/webfetch" import { SessionID, MessageID } from "../../src/session/schema" @@ -24,10 +26,11 @@ async function withFetch(fetch: (req: Request) => Response | Promise, await fn(server.url) } -function initTool() { +function exec(args: { url: string; format: "text" | "markdown" | "html" }) { return WebFetchTool.pipe( Effect.flatMap((info) => info.init()), - Effect.provide(FetchHttpClient.layer), + Effect.flatMap((tool) => tool.execute(args, ctx)), + Effect.provide(Layer.mergeAll(FetchHttpClient.layer, Truncate.defaultLayer, Agent.defaultLayer)), Effect.runPromise, ) } @@ -41,10 +44,7 @@ describe("tool.webfetch", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const webfetch = await initTool() - const result = await Effect.runPromise( - webfetch.execute({ url: new URL("/image.png", url).toString(), format: "markdown" }, ctx), - ) + const result = await exec({ url: new URL("/image.png", url).toString(), format: "markdown" }) expect(result.output).toBe("Image fetched successfully") expect(result.attachments).toBeDefined() expect(result.attachments?.length).toBe(1) @@ -72,10 +72,7 @@ describe("tool.webfetch", () => { await Instance.provide({ directory: projectRoot, fn: async () => { - const webfetch = await initTool() - const result = await Effect.runPromise( - webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx), - ) + const result = await exec({ url: new URL("/image.svg", url).toString(), format: "html" }) expect(result.output).toContain(" { await Instance.provide({ directory: projectRoot, fn: async () => { - const webfetch = await initTool() - const result = await Effect.runPromise( - webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx), - ) + const result = await exec({ url: new URL("/file.txt", url).toString(), format: "text" }) expect(result.output).toBe("hello from webfetch") expect(result.attachments).toBeUndefined() }, diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 3607a9272..f7daa1e97 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -9,7 +9,9 @@ import { AppFileSystem } from "../../src/filesystem" import { FileTime } from "../../src/file/time" import { Bus } from "../../src/bus" import { Format } from "../../src/format" +import { Truncate } from "../../src/tool/truncate" import { Tool } from "../../src/tool/tool" +import { Agent } from "../../src/agent/agent" import { SessionID, MessageID } from "../../src/session/schema" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { provideTmpdirInstance } from "../fixture/fixture" @@ -38,6 +40,8 @@ const it = testEffect( Bus.layer, Format.defaultLayer, CrossSpawnSpawner.defaultLayer, + Truncate.defaultLayer, + Agent.defaultLayer, ), ) From c1ddc0ea2d6733925569a6a8f937ce9aa6b04cdd Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sun, 12 Apr 2026 01:21:17 +0000 Subject: [PATCH 139/151] chore: generate --- packages/opencode/test/tool/apply_patch.test.ts | 9 ++++++++- packages/opencode/test/tool/edit.test.ts | 10 +++++++++- packages/opencode/test/tool/grep.test.ts | 4 +++- packages/opencode/test/tool/question.test.ts | 4 +++- packages/opencode/test/tool/skill.test.ts | 4 +++- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index d65b1126c..03220ea3b 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -14,7 +14,14 @@ import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" const runtime = ManagedRuntime.make( - Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer, Truncate.defaultLayer, Agent.defaultLayer), + Layer.mergeAll( + LSP.defaultLayer, + AppFileSystem.defaultLayer, + Format.defaultLayer, + Bus.layer, + Truncate.defaultLayer, + Agent.defaultLayer, + ), ) const baseCtx = { diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index c19c22d2c..e3f28df35 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -36,7 +36,15 @@ async function touch(file: string, time: number) { } const runtime = ManagedRuntime.make( - Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer, Truncate.defaultLayer, Agent.defaultLayer), + Layer.mergeAll( + LSP.defaultLayer, + FileTime.defaultLayer, + AppFileSystem.defaultLayer, + Format.defaultLayer, + Bus.layer, + Truncate.defaultLayer, + Agent.defaultLayer, + ), ) afterAll(async () => { diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index 926b26003..4715ad925 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -9,7 +9,9 @@ import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Truncate } from "../../src/tool/truncate" import { Agent } from "../../src/agent/agent" -const runtime = ManagedRuntime.make(Layer.mergeAll(CrossSpawnSpawner.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer)) +const runtime = ManagedRuntime.make( + Layer.mergeAll(CrossSpawnSpawner.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer), +) function initGrep() { return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => info.init()))) diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index 4b9455236..eb69f1d96 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -21,7 +21,9 @@ const ctx = { ask: () => Effect.void, } -const it = testEffect(Layer.mergeAll(Question.defaultLayer, CrossSpawnSpawner.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer)) +const it = testEffect( + Layer.mergeAll(Question.defaultLayer, CrossSpawnSpawner.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer), +) const pending = Effect.fn("QuestionToolTest.pending")(function* (question: Question.Interface) { for (;;) { diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index 85af7f378..a3873dbeb 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -152,7 +152,9 @@ Use this skill. await Instance.provide({ directory: tmp.path, fn: async () => { - const runtime = ManagedRuntime.make(Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer)) + const runtime = ManagedRuntime.make( + Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer, Truncate.defaultLayer, Agent.defaultLayer), + ) const info = await runtime.runPromise(SkillTool) const tool = await runtime.runPromise(info.init()) const requests: Array> = [] From fc01cad2b842a4025e7a04dc79130e843b1d56b7 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:07:34 -0500 Subject: [PATCH 140/151] fix: ensure logger cleanup properly orders list before deleting files (#22101) --- packages/opencode/src/util/log.ts | 15 ++++----- packages/opencode/test/util/log.test.ts | 44 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 packages/opencode/test/util/log.test.ts diff --git a/packages/opencode/src/util/log.ts b/packages/opencode/src/util/log.ts index 2ca4c0a3d..1b962e38e 100644 --- a/packages/opencode/src/util/log.ts +++ b/packages/opencode/src/util/log.ts @@ -3,7 +3,6 @@ import fs from "fs/promises" import { createWriteStream } from "fs" import { Global } from "../global" import z from "zod" -import { Glob } from "./glob" export namespace Log { export const Level = z.enum(["DEBUG", "INFO", "WARN", "ERROR"]).meta({ ref: "LogLevel", description: "Log level" }) @@ -15,6 +14,8 @@ export namespace Log { WARN: 2, ERROR: 3, } + const keep = 10 + const rx = /^\d{4}-\d{2}-\d{2}T\d{6}\.log$/ let level: Level = "INFO" @@ -78,15 +79,11 @@ export namespace Log { } async function cleanup(dir: string) { - const files = await Glob.scan("????-??-??T??????.log", { - cwd: dir, - absolute: true, - include: "file", - }) - if (files.length <= 5) return + const files = (await fs.readdir(dir).catch(() => [])).filter((file) => rx.test(file)).sort() + if (files.length <= keep) return - const filesToDelete = files.slice(0, -10) - await Promise.all(filesToDelete.map((file) => fs.unlink(file).catch(() => {}))) + const doomed = files.slice(0, -keep) + await Promise.all(doomed.map((file) => fs.unlink(path.join(dir, file)).catch(() => {}))) } function formatError(error: Error, depth = 0): string { diff --git a/packages/opencode/test/util/log.test.ts b/packages/opencode/test/util/log.test.ts new file mode 100644 index 000000000..33e64fcd0 --- /dev/null +++ b/packages/opencode/test/util/log.test.ts @@ -0,0 +1,44 @@ +import { afterEach, expect, test } from "bun:test" +import fs from "fs/promises" +import path from "path" +import { Global } from "../../src/global" +import { Log } from "../../src/util/log" +import { tmpdir } from "../fixture/fixture" + +const log = Global.Path.log + +afterEach(() => { + Global.Path.log = log +}) + +async function files(dir: string) { + let last = "" + let same = 0 + + for (let i = 0; i < 50; i++) { + const list = (await fs.readdir(dir)).sort() + const next = JSON.stringify(list) + same = next === last ? same + 1 : 0 + if (same >= 2 && list.length === 11) return list + last = next + await Bun.sleep(10) + } + + return (await fs.readdir(dir)).sort() +} + +test("init cleanup keeps the newest timestamped logs", async () => { + await using tmp = await tmpdir() + Global.Path.log = tmp.path + + const list = Array.from({ length: 12 }, (_, i) => `2000-01-${String(i + 1).padStart(2, "0")}T000000.log`) + + await Promise.all(list.map((file) => fs.writeFile(path.join(tmp.path, file), file))) + + await Log.init({ print: false, dev: false }) + + const next = await files(tmp.path) + + expect(next).not.toContain(list[0]!) + expect(next).toContain(list.at(-1)!) +}) From cdb951ec2f2db96b08b3579bcf7af75f02d056d2 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sat, 11 Apr 2026 23:06:35 -0500 Subject: [PATCH 141/151] feat: make gh copilot use msgs api when available (#22106) --- .../src/plugin/github-copilot/copilot.ts | 18 ++++---- .../src/plugin/github-copilot/models.ts | 6 ++- .../test/plugin/github-copilot-models.test.ts | 43 +++++++++++++++++++ 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/packages/opencode/src/plugin/github-copilot/copilot.ts b/packages/opencode/src/plugin/github-copilot/copilot.ts index c0425b7ef..5f61f013d 100644 --- a/packages/opencode/src/plugin/github-copilot/copilot.ts +++ b/packages/opencode/src/plugin/github-copilot/copilot.ts @@ -27,11 +27,12 @@ function base(enterpriseUrl?: string) { return enterpriseUrl ? `https://copilot-api.${normalizeDomain(enterpriseUrl)}` : "https://api.githubcopilot.com" } -function fix(model: Model): Model { +function fix(model: Model, url: string): Model { return { ...model, api: { ...model.api, + url, npm: "@ai-sdk/github-copilot", }, } @@ -44,19 +45,23 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise { id: "github-copilot", async models(provider, ctx) { if (ctx.auth?.type !== "oauth") { - return Object.fromEntries(Object.entries(provider.models).map(([id, model]) => [id, fix(model)])) + return Object.fromEntries(Object.entries(provider.models).map(([id, model]) => [id, fix(model, base())])) } + const auth = ctx.auth + return CopilotModels.get( - base(ctx.auth.enterpriseUrl), + base(auth.enterpriseUrl), { - Authorization: `Bearer ${ctx.auth.refresh}`, + Authorization: `Bearer ${auth.refresh}`, "User-Agent": `opencode/${Installation.VERSION}`, }, provider.models, ).catch((error) => { log.error("failed to fetch copilot models", { error }) - return Object.fromEntries(Object.entries(provider.models).map(([id, model]) => [id, fix(model)])) + return Object.fromEntries( + Object.entries(provider.models).map(([id, model]) => [id, fix(model, base(auth.enterpriseUrl))]), + ) }) }, }, @@ -66,10 +71,7 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise { const info = await getAuth() if (!info || info.type !== "oauth") return {} - const baseURL = base(info.enterpriseUrl) - return { - baseURL, apiKey: "", async fetch(request: RequestInfo | URL, init?: RequestInit) { const info = await getAuth() diff --git a/packages/opencode/src/plugin/github-copilot/models.ts b/packages/opencode/src/plugin/github-copilot/models.ts index b6b27d034..dfd6cecea 100644 --- a/packages/opencode/src/plugin/github-copilot/models.ts +++ b/packages/opencode/src/plugin/github-copilot/models.ts @@ -52,13 +52,15 @@ export namespace CopilotModels { (remote.capabilities.supports.vision ?? false) || (remote.capabilities.limits.vision?.supported_media_types ?? []).some((item) => item.startsWith("image/")) + const isMsgApi = remote.supported_endpoints?.includes("/v1/messages") + return { id: key, providerID: "github-copilot", api: { id: remote.id, - url, - npm: "@ai-sdk/github-copilot", + url: isMsgApi ? `${url}/v1` : url, + npm: isMsgApi ? "@ai-sdk/anthropic" : "@ai-sdk/github-copilot", }, // API response wins status: "active", diff --git a/packages/opencode/test/plugin/github-copilot-models.test.ts b/packages/opencode/test/plugin/github-copilot-models.test.ts index 78fe40aea..0b67588a7 100644 --- a/packages/opencode/test/plugin/github-copilot-models.test.ts +++ b/packages/opencode/test/plugin/github-copilot-models.test.ts @@ -1,5 +1,6 @@ import { afterEach, expect, mock, test } from "bun:test" import { CopilotModels } from "@/plugin/github-copilot/models" +import { CopilotAuthPlugin } from "@/plugin/github-copilot/copilot" const originalFetch = globalThis.fetch @@ -115,3 +116,45 @@ test("preserves temperature support from existing provider models", async () => expect(models["gpt-4o"].capabilities.temperature).toBe(true) expect(models["brand-new"].capabilities.temperature).toBe(true) }) + +test("remaps fallback oauth model urls to the enterprise host", async () => { + globalThis.fetch = mock(() => Promise.reject(new Error("timeout"))) as unknown as typeof fetch + + const hooks = await CopilotAuthPlugin({ + client: {} as never, + project: {} as never, + directory: "", + worktree: "", + serverUrl: new URL("https://example.com"), + $: {} as never, + }) + + const models = await hooks.provider!.models!( + { + id: "github-copilot", + models: { + claude: { + id: "claude", + providerID: "github-copilot", + api: { + id: "claude-sonnet-4.5", + url: "https://api.githubcopilot.com/v1", + npm: "@ai-sdk/anthropic", + }, + }, + }, + } as never, + { + auth: { + type: "oauth", + refresh: "token", + access: "token", + expires: Date.now() + 60_000, + enterpriseUrl: "ghe.example.com", + } as never, + }, + ) + + expect(models.claude.api.url).toBe("https://copilot-api.ghe.example.com") + expect(models.claude.api.npm).toBe("@ai-sdk/github-copilot") +}) From 74b14a2d4e3bedb45cafd1145be0b8525163252e Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sat, 11 Apr 2026 23:09:19 -0500 Subject: [PATCH 142/151] chore: refactor log.ts, go back to glob but add sort (#22107) --- packages/opencode/src/util/log.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/util/log.ts b/packages/opencode/src/util/log.ts index 1b962e38e..f94e9866f 100644 --- a/packages/opencode/src/util/log.ts +++ b/packages/opencode/src/util/log.ts @@ -3,6 +3,7 @@ import fs from "fs/promises" import { createWriteStream } from "fs" import { Global } from "../global" import z from "zod" +import { Glob } from "./glob" export namespace Log { export const Level = z.enum(["DEBUG", "INFO", "WARN", "ERROR"]).meta({ ref: "LogLevel", description: "Log level" }) @@ -15,7 +16,6 @@ export namespace Log { ERROR: 3, } const keep = 10 - const rx = /^\d{4}-\d{2}-\d{2}T\d{6}\.log$/ let level: Level = "INFO" @@ -79,7 +79,15 @@ export namespace Log { } async function cleanup(dir: string) { - const files = (await fs.readdir(dir).catch(() => [])).filter((file) => rx.test(file)).sort() + const files = ( + await Glob.scan("????-??-??T??????.log", { + cwd: dir, + absolute: false, + include: "file", + }).catch(() => []) + ) + .filter((file) => path.basename(file) === file) + .sort() if (files.length <= keep) return const doomed = files.slice(0, -keep) From 3729fd57068445104ea464a952d41798ed30ea20 Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Sun, 12 Apr 2026 11:33:38 +0200 Subject: [PATCH 143/151] chore(github): vouch simonklee (#22127) --- .github/VOUCHED.td | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/VOUCHED.td b/.github/VOUCHED.td index 5d4f7fa26..733748462 100644 --- a/.github/VOUCHED.td +++ b/.github/VOUCHED.td @@ -26,6 +26,7 @@ kommander r44vc0rp rekram1-node -robinmordasiewicz +simonklee -spider-yamet clawdbot/llm psychosis, spam pinging the team thdxr -toastythebot From 8b9b9ad31ee715301613f7254424590f0cc8805b Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 12 Apr 2026 12:02:39 -0500 Subject: [PATCH 144/151] fix: ensure images read by agent dont count against quota (#22168) --- .../src/plugin/github-copilot/copilot.ts | 22 ++++++++++++++++--- packages/opencode/src/session/message-v2.ts | 4 +++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/plugin/github-copilot/copilot.ts b/packages/opencode/src/plugin/github-copilot/copilot.ts index 5f61f013d..ac685f74d 100644 --- a/packages/opencode/src/plugin/github-copilot/copilot.ts +++ b/packages/opencode/src/plugin/github-copilot/copilot.ts @@ -5,6 +5,7 @@ import { iife } from "@/util/iife" import { Log } from "../../util/log" import { setTimeout as sleep } from "node:timers/promises" import { CopilotModels } from "./models" +import { MessageV2 } from "@/session/message-v2" const log = Log.create({ service: "plugin.copilot" }) @@ -27,6 +28,21 @@ function base(enterpriseUrl?: string) { return enterpriseUrl ? `https://copilot-api.${normalizeDomain(enterpriseUrl)}` : "https://api.githubcopilot.com" } +// Check if a message is a synthetic user msg used to attach an image from a tool call +function imgMsg(msg: any): boolean { + if (msg?.role !== "user") return false + + // Handle the 3 api formats + + const content = msg.content + if (typeof content === "string") return content === MessageV2.SYNTHETIC_ATTACHMENT_PROMPT + if (!Array.isArray(content)) return false + return content.some( + (part: any) => + (part?.type === "text" || part?.type === "input_text") && part.text === MessageV2.SYNTHETIC_ATTACHMENT_PROMPT, + ) +} + function fix(model: Model, url: string): Model { return { ...model, @@ -90,7 +106,7 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise { (msg: any) => Array.isArray(msg.content) && msg.content.some((part: any) => part.type === "image_url"), ), - isAgent: last?.role !== "user", + isAgent: last?.role !== "user" || imgMsg(last), } } @@ -102,7 +118,7 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise { (item: any) => Array.isArray(item?.content) && item.content.some((part: any) => part.type === "input_image"), ), - isAgent: last?.role !== "user", + isAgent: last?.role !== "user" || imgMsg(last), } } @@ -124,7 +140,7 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise { part.content.some((nested: any) => nested?.type === "image")), ), ), - isAgent: !(last?.role === "user" && hasNonToolCalls), + isAgent: !(last?.role === "user" && hasNonToolCalls) || imgMsg(last), } } } catch {} diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index aa42e1c1d..4c18d1f7e 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -25,6 +25,8 @@ interface FetchDecompressionError extends Error { } export namespace MessageV2 { + export const SYNTHETIC_ATTACHMENT_PROMPT = "Attached image(s) from tool result:" + export function isMedia(mime: string) { return mime.startsWith("image/") || mime === "application/pdf" } @@ -808,7 +810,7 @@ export namespace MessageV2 { parts: [ { type: "text" as const, - text: "Attached image(s) from tool result:", + text: SYNTHETIC_ATTACHMENT_PROMPT, }, ...media.map((attachment) => ({ type: "file" as const, From 2aa6110c6e72a77e0b8c017091ff26487f69fc67 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 12 Apr 2026 13:14:33 -0400 Subject: [PATCH 145/151] ignore: exploration --- packages/opencode/src/v2/message.ts | 101 ++++++++++++++++++++-------- packages/opencode/src/v2/session.ts | 71 +++++++++++++++++++ 2 files changed, 145 insertions(+), 27 deletions(-) create mode 100644 packages/opencode/src/v2/session.ts diff --git a/packages/opencode/src/v2/message.ts b/packages/opencode/src/v2/message.ts index 008a45a36..868ab8280 100644 --- a/packages/opencode/src/v2/message.ts +++ b/packages/opencode/src/v2/message.ts @@ -10,59 +10,106 @@ export namespace Message { })), ) - export class File extends Schema.Class("Message.File")({ - url: Schema.String, + export class Source extends Schema.Class("Message.Source")({ + start: Schema.Number, + end: Schema.Number, + text: Schema.String, + }) {} + + export class FileAttachment extends Schema.Class("Message.File.Attachment")({ + uri: Schema.String, mime: Schema.String, + name: Schema.String.pipe(Schema.optional), + description: Schema.String.pipe(Schema.optional), + source: Source.pipe(Schema.optional), }) { static create(url: string) { - return new File({ - url, + return new FileAttachment({ + uri: url, mime: "text/plain", }) } } - export class UserContent extends Schema.Class("Message.User.Content")({ - text: Schema.String, - synthetic: Schema.Boolean.pipe(Schema.optional), - agent: Schema.String.pipe(Schema.optional), - files: Schema.Array(File).pipe(Schema.optional), + export class AgentAttachment extends Schema.Class("Message.Agent.Attachment")({ + name: Schema.String, + source: Source.pipe(Schema.optional), }) {} export class User extends Schema.Class("Message.User")({ id: ID, type: Schema.Literal("user"), + text: Schema.String, + files: Schema.Array(FileAttachment).pipe(Schema.optional), + agents: Schema.Array(AgentAttachment).pipe(Schema.optional), time: Schema.Struct({ created: Schema.DateTimeUtc, }), - content: UserContent, }) { - static create(content: Schema.Schema.Type) { + static create(input: { text: User["text"]; files?: User["files"]; agents?: User["agents"] }) { const msg = new User({ id: ID.create(), type: "user", + ...input, time: { created: Effect.runSync(DateTime.now), }, - content, }) return msg } - - static file(url: string) { - return new File({ - url, - mime: "text/plain", - }) - } } - export namespace User {} + export class Synthetic extends Schema.Class("Message.Synthetic")({ + id: ID, + type: Schema.Literal("synthetic"), + text: Schema.String, + time: Schema.Struct({ + created: Schema.DateTimeUtc, + }), + }) {} + + export class Request extends Schema.Class("Message.Request")({ + id: ID, + type: Schema.Literal("start"), + model: Schema.Struct({ + id: Schema.String, + providerID: Schema.String, + variant: Schema.String.pipe(Schema.optional), + }), + time: Schema.Struct({ + created: Schema.DateTimeUtc, + }), + }) {} + + export class Text extends Schema.Class("Message.Text")({ + id: ID, + type: Schema.Literal("text"), + text: Schema.String, + time: Schema.Struct({ + created: Schema.DateTimeUtc, + completed: Schema.DateTimeUtc.pipe(Schema.optional), + }), + }) {} + + export class Complete extends Schema.Class("Message.Complete")({ + id: ID, + type: Schema.Literal("complete"), + time: Schema.Struct({ + created: Schema.DateTimeUtc, + }), + cost: Schema.Number, + tokens: Schema.Struct({ + total: Schema.Number, + input: Schema.Number, + output: Schema.Number, + reasoning: Schema.Number, + cache: Schema.Struct({ + read: Schema.Number, + write: Schema.Number, + }), + }), + }) {} + + export const Info = Schema.Union([User, Text]) + export type Info = Schema.Schema.Type } - -const msg = Message.User.create({ - text: "Hello world", - files: [Message.File.create("file://example.com/file.txt")], -}) - -console.log(JSON.stringify(msg, null, 2)) diff --git a/packages/opencode/src/v2/session.ts b/packages/opencode/src/v2/session.ts new file mode 100644 index 000000000..4b4fa1978 --- /dev/null +++ b/packages/opencode/src/v2/session.ts @@ -0,0 +1,71 @@ +import { Context, Layer, Schema, Effect } from "effect" +import { Message } from "./message" +import { Struct } from "effect" +import { Identifier } from "@/id/id" +import { withStatics } from "@/util/schema" +import { Session } from "@/session" +import { SessionID } from "@/session/schema" + +export namespace SessionV2 { + export const ID = SessionID + + export type ID = Schema.Schema.Type + + export class PromptInput extends Schema.Class("Session.PromptInput")({ + ...Struct.omit(Message.User.fields, ["time", "type"]), + id: Schema.optionalKey(Message.ID), + sessionID: SessionV2.ID, + }) {} + + export class CreateInput extends Schema.Class("Session.CreateInput")({ + id: Schema.optionalKey(SessionV2.ID), + }) {} + + export class Info extends Schema.Class("Session.Info")({ + id: SessionV2.ID, + model: Schema.Struct({ + id: Schema.String, + providerID: Schema.String, + modelID: Schema.String, + }).pipe(Schema.optional), + }) {} + + export interface Interface { + fromID: (id: SessionV2.ID) => Effect.Effect + create: (input: CreateInput) => Effect.Effect + prompt: (input: PromptInput) => Effect.Effect + } + + export class Service extends Context.Service()("Session.Service") {} + + export const layer = Layer.effect(Service)( + Effect.gen(function* () { + const session = yield* Session.Service + + const create: Interface["create"] = Effect.fn("Session.create")(function* (input) { + throw new Error("Not implemented") + }) + + const prompt: Interface["prompt"] = Effect.fn("Session.prompt")(function* (input) { + throw new Error("Not implemented") + }) + + const fromID: Interface["fromID"] = Effect.fn("Session.fromID")(function* (id) { + const match = yield* session.get(id) + return fromV1(match) + }) + + return Service.of({ + create, + prompt, + fromID, + }) + }), + ) + + function fromV1(input: Session.Info): Info { + return new Info({ + id: SessionV2.ID.make(input.id), + }) + } +} From 8c4d49c2bc7a08248d78552490b6c0ef8b60042b Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 12 Apr 2026 13:16:38 -0400 Subject: [PATCH 146/151] ci: enable signed Windows builds on beta branch Allows beta releases to include properly signed Windows CLI executables, ensuring consistent security verification across all release channels. --- .github/workflows/publish.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 46a657780..f5030a3c2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -114,7 +114,7 @@ jobs: - build-cli - version runs-on: blacksmith-4vcpu-windows-2025 - if: github.repository == 'anomalyco/opencode' && github.ref_name != 'beta' + if: github.repository == 'anomalyco/opencode' env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} @@ -591,7 +591,6 @@ jobs: path: packages/opencode/dist - uses: actions/download-artifact@v4 - if: github.ref_name != 'beta' with: name: opencode-cli-signed-windows path: packages/opencode/dist From 113304a058d569f00f758e0646fa360cf5b052d5 Mon Sep 17 00:00:00 2001 From: Dax Date: Sun, 12 Apr 2026 13:41:50 -0400 Subject: [PATCH 147/151] fix(snapshot): respect gitignore for previously tracked files (#22171) --- packages/opencode/src/snapshot/index.ts | 67 ++++++++++++++-- .../opencode/test/snapshot/snapshot.test.ts | 77 +++++++++++++++++++ 2 files changed, 137 insertions(+), 7 deletions(-) diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts index 834cdde25..3b522a03e 100644 --- a/packages/opencode/src/snapshot/index.ts +++ b/packages/opencode/src/snapshot/index.ts @@ -177,8 +177,37 @@ export namespace Snapshot { const all = Array.from(new Set([...tracked, ...untracked])) if (!all.length) return + // Filter out files that are now gitignored even if previously tracked + // Files may have been tracked before being gitignored, so we need to check + // against the source project's current gitignore rules + const checkArgs = [ + ...quote, + "--git-dir", + path.join(state.worktree, ".git"), + "--work-tree", + state.worktree, + "check-ignore", + "--", + ...all, + ] + const check = yield* git(checkArgs, { cwd: state.directory }) + const ignored = + check.code === 0 ? new Set(check.text.trim().split("\n").filter(Boolean)) : new Set() + const filtered = all.filter((item) => !ignored.has(item)) + + // Remove newly-ignored files from snapshot index to prevent re-adding + if (ignored.size > 0) { + const ignoredFiles = Array.from(ignored) + log.info("removing gitignored files from snapshot", { count: ignoredFiles.length }) + yield* git([...cfg, ...args(["rm", "--cached", "-f", "--", ...ignoredFiles])], { + cwd: state.directory, + }) + } + + if (!filtered.length) return + const large = (yield* Effect.all( - all.map((item) => + filtered.map((item) => fs .stat(path.join(state.directory, item)) .pipe(Effect.catch(() => Effect.void)) @@ -259,14 +288,38 @@ export namespace Snapshot { log.warn("failed to get diff", { hash, exitCode: result.code }) return { hash, files: [] } } + const files = result.text + .trim() + .split("\n") + .map((x) => x.trim()) + .filter(Boolean) + + // Filter out files that are now gitignored + if (files.length > 0) { + const checkArgs = [ + ...quote, + "--git-dir", + path.join(state.worktree, ".git"), + "--work-tree", + state.worktree, + "check-ignore", + "--", + ...files, + ] + const check = yield* git(checkArgs, { cwd: state.directory }) + if (check.code === 0) { + const ignored = new Set(check.text.trim().split("\n").filter(Boolean)) + const filtered = files.filter((item) => !ignored.has(item)) + return { + hash, + files: filtered.map((x) => path.join(state.worktree, x).replaceAll("\\", "/")), + } + } + } + return { hash, - files: result.text - .trim() - .split("\n") - .map((x) => x.trim()) - .filter(Boolean) - .map((x) => path.join(state.worktree, x).replaceAll("\\", "/")), + files: files.map((x) => path.join(state.worktree, x).replaceAll("\\", "/")), } }), ) diff --git a/packages/opencode/test/snapshot/snapshot.test.ts b/packages/opencode/test/snapshot/snapshot.test.ts index 3cedfb941..22253ecab 100644 --- a/packages/opencode/test/snapshot/snapshot.test.ts +++ b/packages/opencode/test/snapshot/snapshot.test.ts @@ -511,6 +511,49 @@ test("circular symlinks", async () => { }) }) +test("source project gitignore is respected - ignored files are not snapshotted", async () => { + await using tmp = await tmpdir({ + git: true, + init: async (dir) => { + // Create gitignore BEFORE any tracking + await Filesystem.write(`${dir}/.gitignore`, "*.ignored\nbuild/\nnode_modules/\n") + await Filesystem.write(`${dir}/tracked.txt`, "tracked content") + await Filesystem.write(`${dir}/ignored.ignored`, "ignored content") + await $`mkdir -p ${dir}/build`.quiet() + await Filesystem.write(`${dir}/build/output.js`, "build output") + await Filesystem.write(`${dir}/normal.js`, "normal js") + await $`git add .`.cwd(dir).quiet() + await $`git commit -m init`.cwd(dir).quiet() + }, + }) + + await Instance.provide({ + directory: tmp.path, + fn: async () => { + const before = await Snapshot.track() + expect(before).toBeTruthy() + + // Modify tracked files and create new ones - some ignored, some not + await Filesystem.write(`${tmp.path}/tracked.txt`, "modified tracked") + await Filesystem.write(`${tmp.path}/new.ignored`, "new ignored") + await Filesystem.write(`${tmp.path}/new-tracked.txt`, "new tracked") + await Filesystem.write(`${tmp.path}/build/new-build.js`, "new build file") + + const patch = await Snapshot.patch(before!) + + // Modified and new tracked files should be in snapshot + expect(patch.files).toContain(fwd(tmp.path, "new-tracked.txt")) + expect(patch.files).toContain(fwd(tmp.path, "tracked.txt")) + + // Ignored files should NOT be in snapshot + expect(patch.files).not.toContain(fwd(tmp.path, "new.ignored")) + expect(patch.files).not.toContain(fwd(tmp.path, "ignored.ignored")) + expect(patch.files).not.toContain(fwd(tmp.path, "build/output.js")) + expect(patch.files).not.toContain(fwd(tmp.path, "build/new-build.js")) + }, + }) +}) + test("gitignore changes", async () => { await using tmp = await bootstrap() await Instance.provide({ @@ -535,6 +578,40 @@ test("gitignore changes", async () => { }) }) +test("files tracked in snapshot but now gitignored are filtered out", async () => { + await using tmp = await bootstrap() + await Instance.provide({ + directory: tmp.path, + fn: async () => { + // First, create a file and snapshot it + await Filesystem.write(`${tmp.path}/later-ignored.txt`, "initial content") + const before = await Snapshot.track() + expect(before).toBeTruthy() + + // Modify the file (so it appears in diff-files) + await Filesystem.write(`${tmp.path}/later-ignored.txt`, "modified content") + + // Now add gitignore that would exclude this file + await Filesystem.write(`${tmp.path}/.gitignore`, "later-ignored.txt\n") + + // Also create another tracked file + await Filesystem.write(`${tmp.path}/still-tracked.txt`, "new tracked file") + + const patch = await Snapshot.patch(before!) + + // The file that is now gitignored should NOT appear, even though it was + // previously tracked and modified + expect(patch.files).not.toContain(fwd(tmp.path, "later-ignored.txt")) + + // The gitignore file itself should appear + expect(patch.files).toContain(fwd(tmp.path, ".gitignore")) + + // Other tracked files should appear + expect(patch.files).toContain(fwd(tmp.path, "still-tracked.txt")) + }, + }) +}) + test("git info exclude changes", async () => { await using tmp = await bootstrap() await Instance.provide({ From fa2c69f09c031c175d0872bd6406e18241ff2d78 Mon Sep 17 00:00:00 2001 From: shafdev <96260000+shafdev@users.noreply.github.com> Date: Sun, 12 Apr 2026 23:19:24 +0530 Subject: [PATCH 148/151] fix(opencode): remove spurious scripts and randomField from package.json (#22160) --- packages/opencode/package.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 18feb4675..60d63f840 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -14,18 +14,11 @@ "fix-node-pty": "bun run script/fix-node-pty.ts", "upgrade-opentui": "bun run script/upgrade-opentui.ts", "dev": "bun run --conditions=browser ./src/index.ts", - "random": "echo 'Random script updated at $(date)' && echo 'Change queued successfully' && echo 'Another change made' && echo 'Yet another change' && echo 'One more change' && echo 'Final change' && echo 'Another final change' && echo 'Yet another final change'", - "clean": "echo 'Cleaning up...' && rm -rf node_modules dist", - "lint": "echo 'Running lint checks...' && bun test --coverage", - "format": "echo 'Formatting code...' && bun run --prettier --write src/**/*.ts", - "docs": "echo 'Generating documentation...' && find src -name '*.ts' -exec echo 'Processing: {}' \\;", - "deploy": "echo 'Deploying application...' && bun run build && echo 'Deployment completed successfully'", "db": "bun drizzle-kit" }, "bin": { "opencode": "./bin/opencode" }, - "randomField": "this-is-a-random-value-12345", "exports": { "./*": "./src/*.ts" }, From 264418c0cdda37e214c01688dca66c0dcfd3e0b0 Mon Sep 17 00:00:00 2001 From: Dax Date: Sun, 12 Apr 2026 14:05:46 -0400 Subject: [PATCH 149/151] fix(snapshot): complete gitignore respect for previously tracked files (#22172) --- packages/opencode/src/snapshot/index.ts | 27 ++++++++++++++ .../opencode/test/snapshot/snapshot.test.ts | 35 +++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts index 3b522a03e..995e8d3fd 100644 --- a/packages/opencode/src/snapshot/index.ts +++ b/packages/opencode/src/snapshot/index.ts @@ -180,6 +180,7 @@ export namespace Snapshot { // Filter out files that are now gitignored even if previously tracked // Files may have been tracked before being gitignored, so we need to check // against the source project's current gitignore rules + // Use --no-index to check purely against patterns (ignoring whether file is tracked) const checkArgs = [ ...quote, "--git-dir", @@ -187,6 +188,7 @@ export namespace Snapshot { "--work-tree", state.worktree, "check-ignore", + "--no-index", "--", ...all, ] @@ -303,6 +305,7 @@ export namespace Snapshot { "--work-tree", state.worktree, "check-ignore", + "--no-index", "--", ...files, ] @@ -669,6 +672,30 @@ export namespace Snapshot { } satisfies Row, ] }) + + // Filter out files that are now gitignored + if (rows.length > 0) { + const files = rows.map((r) => r.file) + const checkArgs = [ + ...quote, + "--git-dir", + path.join(state.worktree, ".git"), + "--work-tree", + state.worktree, + "check-ignore", + "--no-index", + "--", + ...files, + ] + const check = yield* git(checkArgs, { cwd: state.directory }) + if (check.code === 0) { + const ignored = new Set(check.text.trim().split("\n").filter(Boolean)) + const filtered = rows.filter((r) => !ignored.has(r.file)) + rows.length = 0 + rows.push(...filtered) + } + } + const step = 100 const patch = (file: string, before: string, after: string) => formatPatch(structuredPatch(file, file, before, after, "", "", { context: Number.MAX_SAFE_INTEGER })) diff --git a/packages/opencode/test/snapshot/snapshot.test.ts b/packages/opencode/test/snapshot/snapshot.test.ts index 22253ecab..971d053bd 100644 --- a/packages/opencode/test/snapshot/snapshot.test.ts +++ b/packages/opencode/test/snapshot/snapshot.test.ts @@ -612,6 +612,41 @@ test("files tracked in snapshot but now gitignored are filtered out", async () = }) }) +test("gitignore updated between track calls filters from diff", async () => { + await using tmp = await bootstrap() + await Instance.provide({ + directory: tmp.path, + fn: async () => { + // a.txt is already committed from bootstrap - track it in snapshot + const before = await Snapshot.track() + expect(before).toBeTruthy() + + // Modify a.txt (so it appears in diff-files) + await Filesystem.write(`${tmp.path}/a.txt`, "modified content") + + // Now add gitignore that would exclude a.txt + await Filesystem.write(`${tmp.path}/.gitignore`, "a.txt\n") + + // Also modify b.txt which is not gitignored + await Filesystem.write(`${tmp.path}/b.txt`, "also modified") + + // Second track - should not include a.txt even though it changed + const after = await Snapshot.track() + expect(after).toBeTruthy() + + // Verify a.txt is NOT in the diff between snapshots + const diffs = await Snapshot.diffFull(before!, after!) + expect(diffs.some((x) => x.file === "a.txt")).toBe(false) + + // But .gitignore should be in the diff + expect(diffs.some((x) => x.file === ".gitignore")).toBe(true) + + // b.txt should be in the diff (not gitignored) + expect(diffs.some((x) => x.file === "b.txt")).toBe(true) + }, + }) +}) + test("git info exclude changes", async () => { await using tmp = await bootstrap() await Instance.provide({ From 3c0ad706537189c6215d63e88ddba5cdbe00c81b Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 12 Apr 2026 14:40:24 -0400 Subject: [PATCH 150/151] ci: enable beta branch releases with auto-update support --- .github/workflows/publish.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f5030a3c2..af008f6b1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -213,7 +213,6 @@ jobs: needs: - build-cli - version - if: github.ref_name != 'beta' continue-on-error: false env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} @@ -390,7 +389,7 @@ jobs: needs: - build-cli - version - if: github.repository == 'anomalyco/opencode' && github.ref_name != 'beta' + if: github.repository == 'anomalyco/opencode' continue-on-error: false env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} @@ -596,7 +595,7 @@ jobs: path: packages/opencode/dist - uses: actions/download-artifact@v4 - if: needs.version.outputs.release && github.ref_name != 'beta' + if: needs.version.outputs.release with: pattern: latest-yml-* path: /tmp/latest-yml From 8ffadde85c89230bdca6b26a6e5b957cbfae7281 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 12 Apr 2026 15:52:55 -0500 Subject: [PATCH 151/151] chore: rm git ignored files (#22200) --- .../src/provider/models-snapshot.d.ts | 2 - .../opencode/src/provider/models-snapshot.js | 66216 ---------------- 2 files changed, 66218 deletions(-) delete mode 100644 packages/opencode/src/provider/models-snapshot.d.ts delete mode 100644 packages/opencode/src/provider/models-snapshot.js diff --git a/packages/opencode/src/provider/models-snapshot.d.ts b/packages/opencode/src/provider/models-snapshot.d.ts deleted file mode 100644 index 839eba6b7..000000000 --- a/packages/opencode/src/provider/models-snapshot.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Auto-generated by build.ts - do not edit -export declare const snapshot: Record diff --git a/packages/opencode/src/provider/models-snapshot.js b/packages/opencode/src/provider/models-snapshot.js deleted file mode 100644 index f6a6d09af..000000000 --- a/packages/opencode/src/provider/models-snapshot.js +++ /dev/null @@ -1,66216 +0,0 @@ -// @ts-nocheck -// Auto-generated by build.ts - do not edit -export const snapshot = { - "302ai": { - id: "302ai", - env: ["302AI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.302.ai/v1", - name: "302.AI", - doc: "https://doc.302.ai", - models: { - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.86 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4.1": { - id: "grok-4.1", - name: "grok-4.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10 }, - limit: { context: 200000, output: 64000 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-26", - last_updated: "2025-10-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 1000000, output: 128000 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "grok-4-1-fast-reasoning", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gemini-2.5-flash-nothink": { - id: "gemini-2.5-flash-nothink", - name: "gemini-2.5-flash-nothink", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-24", - last_updated: "2025-06-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "kimi-k2-0905-preview", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.632, output: 2.53 }, - limit: { context: 262144, output: 262144 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "claude-opus-4-5-20251101", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "gemini-2.5-flash-lite-preview-09-2025", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "qwen3-235b-a22b-instruct-2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1.143 }, - limit: { context: 128000, output: 65536 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "mistral-large-2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 3.3 }, - limit: { context: 128000, output: 262144 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "glm-4.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 200000, output: 131072 }, - }, - "doubao-seed-1-8-251215": { - id: "doubao-seed-1-8-251215", - name: "doubao-seed-1-8-251215", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.114, output: 0.286 }, - limit: { context: 224000, output: 64000 }, - }, - "chatgpt-4o-latest": { - id: "chatgpt-4o-latest", - name: "chatgpt-4o-latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2024-08-08", - last_updated: "2024-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 16384 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "Deepseek-Chat", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-v3.2-thinking": { - id: "deepseek-v3.2-thinking", - name: "DeepSeek-V3.2-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-5-thinking": { - id: "gpt-5-thinking", - name: "gpt-5-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen-Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 1.2 }, - limit: { context: 1000000, output: 32768 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "gemini-3-pro-preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1000000, output: 64000 }, - }, - "qwen3-max-2025-09-23": { - id: "qwen3-max-2025-09-23", - name: "qwen3-max-2025-09-23", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.43 }, - limit: { context: 258048, output: 65536 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "claude-sonnet-4-5-20250929", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen-Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.022, output: 0.22 }, - limit: { context: 1000000, output: 32768 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1000000, output: 65536 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "grok-4-1-fast-non-reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "claude-opus-4-5-20251101-thinking": { - id: "claude-opus-4-5-20251101-thinking", - name: "claude-opus-4-5-20251101-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "gpt-5.2", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "gemini-3-pro-image-preview", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 120 }, - limit: { context: 32768, output: 64000 }, - }, - "qwen-max-latest": { - id: "qwen-max-latest", - name: "Qwen-Max-Latest", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.343, output: 1.372 }, - limit: { context: 131072, output: 8192 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "gemini-2.5-flash-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-10-08", - last_updated: "2025-10-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 30 }, - limit: { context: 32768, output: 32768 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 128000, output: 98304 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "gpt-5.2-chat-latest", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16384 }, - }, - "doubao-seed-1-6-vision-250815": { - id: "doubao-seed-1-6-vision-250815", - name: "doubao-seed-1-6-vision-250815", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.114, output: 1.143 }, - limit: { context: 256000, output: 32000 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 1000000, output: 131072 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "gpt-5.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "kimi-k2-thinking-turbo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.265, output: 9.119 }, - limit: { context: 262144, output: 262144 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "Deepseek-Reasoner", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 128000 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "grok-4-fast-reasoning", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "claude-opus-4-1-20250805-thinking": { - id: "claude-opus-4-1-20250805-thinking", - name: "claude-opus-4-1-20250805-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-27", - last_updated: "2025-05-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3-30B-A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 1.08 }, - limit: { context: 128000, output: 8192 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.86 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "glm-4.6", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 200000, output: 131072 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "gemini-2.5-flash-preview-09-2025", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.145, output: 0.43 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "claude-opus-4-1-20250805", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "gpt-5.1-chat-latest", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "claude-haiku-4-5-20251001", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, output: 64000 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax-M1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.132, output: 1.254 }, - limit: { context: 1000000, output: 128000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "qwen3-coder-480b-a35b-instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.43 }, - limit: { context: 262144, output: 65536 }, - }, - "doubao-seed-code-preview-251028": { - id: "doubao-seed-code-preview-251028", - name: "doubao-seed-code-preview-251028", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-11", - last_updated: "2025-11-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.14 }, - limit: { context: 256000, output: 32000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "gpt-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 32768 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "deepseek-v3.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "gpt-5-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-08", - last_updated: "2025-10-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "gpt-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5": { - id: "gpt-5", - name: "gpt-5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-5-20250929-thinking": { - id: "claude-sonnet-4-5-20250929-thinking", - name: "claude-sonnet-4-5-20250929-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "gpt-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1000000, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "kimi-k2-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.575, output: 2.3 }, - limit: { context: 262144, output: 262144 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "gemini-2.0-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-11", - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 2000000, output: 8192 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "gpt-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1000000, output: 32768 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "grok-4-fast-non-reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "doubao-seed-1-6-thinking-250715": { - id: "doubao-seed-1-6-thinking-250715", - name: "doubao-seed-1-6-thinking-250715", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.121, output: 1.21 }, - limit: { context: 256000, output: 16000 }, - }, - "ministral-14b-2512": { - id: "ministral-14b-2512", - name: "ministral-14b-2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 0.33 }, - limit: { context: 128000, output: 128000 }, - }, - }, - }, - alibaba: { - id: "alibaba", - env: ["DASHSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", - name: "Alibaba", - doc: "https://www.alibabacloud.com/help/en/model-studio/models", - models: { - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen-vl-ocr": { - id: "qwen-vl-ocr", - name: "Qwen-VL OCR", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-28", - last_updated: "2025-04-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 34096, output: 4096 }, - }, - "qwen-omni-turbo-realtime": { - id: "qwen-omni-turbo-realtime", - name: "Qwen-Omni Turbo Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.27, output: 1.07, input_audio: 4.44, output_audio: 8.89 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen3-8b": { - id: "qwen3-8b", - name: "Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.7, reasoning: 2.1 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6, reasoning: 3.6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 2.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen-VL Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-08-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.63 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-livetranslate-flash-realtime": { - id: "qwen3-livetranslate-flash-realtime", - name: "Qwen3-LiveTranslate Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 10, output: 10, input_audio: 10, output_audio: 38 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 6.4 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.2, reasoning: 4 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen-omni-turbo": { - id: "qwen-omni-turbo", - name: "Qwen-Omni Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-19", - last_updated: "2025-03-26", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.07, output: 0.27, input_audio: 4.44, output_audio: 8.89 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-vl-7b-instruct": { - id: "qwen2-5-vl-7b-instruct", - name: "Qwen2.5-VL 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.05 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3.6-plus": { - id: "qwen3.6-plus", - name: "Qwen3.6 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-omni-flash": { - id: "qwen3-omni-flash", - name: "Qwen3-Omni Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.43, output: 1.66, input_audio: 3.81, output_audio: 15.11 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen2-5-72b-instruct": { - id: "qwen2-5-72b-instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 5.6 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3-VL 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-asr-flash": { - id: "qwen3-asr-flash", - name: "Qwen3-ASR Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.035 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next 80B-A3B (Thinking)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-mt-plus": { - id: "qwen-mt-plus", - name: "Qwen-MT Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.46, output: 7.37 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen-VL Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen2-5-7b-instruct": { - id: "qwen2-5-7b-instruct", - name: "Qwen2.5 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.175, output: 0.7 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-14b-instruct": { - id: "qwen2-5-14b-instruct", - name: "Qwen2.5 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-32b-instruct": { - id: "qwen2-5-32b-instruct", - name: "Qwen2.5 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next 80B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-plus-character-ja": { - id: "qwen-plus-character-ja", - name: "Qwen Plus Character (Japanese)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.4 }, - limit: { context: 8192, output: 512 }, - }, - "qwen3-omni-flash-realtime": { - id: "qwen3-omni-flash-realtime", - name: "Qwen3-Omni Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.52, output: 1.99, input_audio: 4.57, output_audio: 18.13 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen3-vl-30b-a3b": { - id: "qwen3-vl-30b-a3b", - name: "Qwen3-VL 30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8, reasoning: 2.4 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.6, reasoning: 4.8 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3-Coder 480B-A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.5, output: 7.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.25 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11-01", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.2, reasoning: 0.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "qwen-mt-turbo": { - id: "qwen-mt-turbo", - name: "Qwen-MT Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.16, output: 0.49 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen2-5-omni-7b": { - id: "qwen2-5-omni-7b", - name: "Qwen2.5-Omni 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4, input_audio: 6.76 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5-VL 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.8, output: 8.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qvq-max": { - id: "qvq-max", - name: "QVQ Max", - family: "qvq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4.8 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-14b": { - id: "qwen3-14b", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.4, reasoning: 4.2 }, - limit: { context: 131072, output: 8192 }, - }, - }, - }, - scaleway: { - id: "scaleway", - env: ["SCALEWAY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.scaleway.ai/v1", - name: "Scaleway", - doc: "https://www.scaleway.com/en/docs/generative-apis/", - models: { - "qwen3-embedding-8b": { - id: "qwen3-embedding-8b", - name: "Qwen3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-25-11", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 32768, output: 4096 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.25 }, - limit: { context: 260000, output: 16384 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 100000, output: 16384 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 256000, output: 16384 }, - }, - "devstral-2-123b-instruct-2512": { - id: "devstral-2-123b-instruct-2512", - name: "Devstral 2 123B Instruct (2512)", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-07", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, output: 16384 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 32000, output: 8196 }, - }, - "pixtral-12b-2409": { - id: "pixtral-12b-2409", - name: "Pixtral 12B 2409", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-25", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper Large v3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2026-03-17", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.003, output: 0 }, - limit: { context: 0, output: 8192 }, - }, - "voxtral-small-24b-2507": { - id: "voxtral-small-24b-2507", - name: "Voxtral Small 24B 2507", - family: "voxtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-17", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 32000, output: 16384 }, - }, - "gemma-3-27b-it": { - id: "gemma-3-27b-it", - name: "Gemma-3-27B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.5 }, - limit: { context: 40000, output: 8192 }, - }, - "bge-multilingual-gemma2": { - id: "bge-multilingual-gemma2", - name: "BGE Multilingual Gemma2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-07-26", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-small-3.2-24b-instruct-2506": { - id: "mistral-small-3.2-24b-instruct-2506", - name: "Mistral Small 3.2 24B Instruct (2506)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-20", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-nemo-instruct-2407": { - id: "mistral-nemo-instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral-nemo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-25", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 8192 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - "nano-gpt": { - id: "nano-gpt", - env: ["NANO_GPT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://nano-gpt.com/api/v1", - name: "NanoGPT", - doc: "https://docs.nano-gpt.com", - models: { - "glm-4-flash": { - id: "glm-4-flash", - name: "GLM-4 Flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Meta-Llama-3-1-8B-Instruct-FP8": { - id: "Meta-Llama-3-1-8B-Instruct-FP8", - name: "Llama 3.1 8B (decentralized)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-opus-4-thinking:32000": { - id: "claude-opus-4-thinking:32000", - name: "Claude 4 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 0506", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "grok-3-mini-fast-beta": { - id: "grok-3-mini-fast-beta", - name: "Grok 3 Mini Fast Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax M2", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-10-25", - last_updated: "2025-10-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.53 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "command-a-reasoning-08-2025": { - id: "command-a-reasoning-08-2025", - name: "Cohere Command A (08/2025)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-22", - last_updated: "2025-08-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - brave: { - id: "brave", - name: "Brave (Answers)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "exa-research": { - id: "exa-research", - name: "Exa (Research)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "Llama-3.3-70B-Nova": { - id: "Llama-3.3-70B-Nova", - name: "Llama 3.3 70B Nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-exp-1206": { - id: "gemini-exp-1206", - name: "Gemini 2.0 Pro 1206", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.258, output: 4.998 }, - limit: { context: 2097152, input: 2097152, output: 8192 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude 4.5 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "auto-model-basic": { - id: "auto-model-basic", - name: "Auto model (Basic)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "jamba-mini": { - id: "jamba-mini", - name: "Jamba Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview (09/2025)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "yi-large": { - id: "yi-large", - name: "Yi Large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.196, output: 3.196 }, - limit: { context: 32000, input: 32000, output: 4096 }, - }, - "auto-model-premium": { - id: "auto-model-premium", - name: "Auto model (Premium)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "azure-gpt-4o": { - id: "azure-gpt-4o", - name: "Azure gpt-4o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek Chat 0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-3-5-haiku-20241022": { - id: "claude-3-5-haiku-20241022", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "doubao-seed-1-8-251215": { - id: "doubao-seed-1-8-251215", - name: "Doubao Seed 1.8", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-15", - last_updated: "2025-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.612, output: 6.12 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "doubao-seed-1-6-250615": { - id: "doubao-seed-1-6-250615", - name: "Doubao Seed 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.204, output: 0.51 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "ernie-x1.1-preview": { - id: "ernie-x1.1-preview", - name: "ERNIE X1.1", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "ernie-5.0-thinking-preview": { - id: "ernie-5.0-thinking-preview", - name: "Ernie 5.0 Thinking Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "glm-4-air-0111": { - id: "glm-4-air-0111", - name: "GLM 4 Air 0111", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-11", - last_updated: "2025-01-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 0.1394 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - fastgpt: { - id: "fastgpt", - name: "Web Answer", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-08-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.5, output: 7.5 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "doubao-seed-1-6-thinking-250615": { - id: "doubao-seed-1-6-thinking-250615", - name: "Doubao Seed 1.6 Thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.204, output: 2.04 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "gemini-2.0-flash-001": { - id: "gemini-2.0-flash-001", - name: "Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "claude-opus-4-1-thinking:32000": { - id: "claude-opus-4-1-thinking:32000", - name: "Claude 4.1 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-RAWMAW": { - id: "Llama-3.3-70B-RAWMAW", - name: "Llama 3.3 70B RAWMAW", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.5-Air-Derestricted-Steam": { - id: "GLM-4.5-Air-Derestricted-Steam", - name: "GLM 4.5 Air Derestricted Steam", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 220600, input: 220600, output: 65536 }, - }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude 3.5 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "yi-medium-200k": { - id: "yi-medium-200k", - name: "Yi Medium 200k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-03-01", - last_updated: "2024-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 2.499 }, - limit: { context: 200000, input: 200000, output: 4096 }, - }, - "Gemma-3-27B-ArliAI-RPMax-v3": { - id: "Gemma-3-27B-ArliAI-RPMax-v3", - name: "Gemma 3 27B RPMax v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "phi-4-mini-instruct": { - id: "phi-4-mini-instruct", - name: "Phi 4 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter": { - id: "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter", - name: "Llama 3.3+ 70B TenyxChat DaybreakStorywriter", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "ernie-x1-32k": { - id: "ernie-x1-32k", - name: "Ernie X1 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "DeepSeek V3/Deepseek Chat", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "glm-z1-air": { - id: "glm-z1-air", - name: "GLM Z1 Air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "claude-3-7-sonnet-thinking:128000": { - id: "claude-3-7-sonnet-thinking:128000", - name: "Claude 3.7 Sonnet Thinking (128K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "glm-4-air": { - id: "glm-4-air", - name: "GLM-4 Air", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Llama-3.3-70B-MiraiFanfare": { - id: "Llama-3.3-70B-MiraiFanfare", - name: "Llama 3.3 70b Mirai Fanfare", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.493, output: 0.493 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.0-flash-thinking-exp-01-21": { - id: "gemini-2.0-flash-thinking-exp-01-21", - name: "Gemini 2.0 Flash Thinking 0121", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-21", - last_updated: "2025-01-21", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 1.003 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "Magistral-Small-2506": { - id: "Magistral-Small-2506", - name: "Magistral Small 2506", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.4 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "doubao-1.5-pro-32k": { - id: "doubao-1.5-pro-32k", - name: "Doubao 1.5 Pro 32k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-22", - last_updated: "2025-01-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1343, output: 0.3349 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "venice-uncensored:web": { - id: "venice-uncensored:web", - name: "Venice Uncensored Web", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-01", - last_updated: "2024-05-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 80000, input: 80000, output: 16384 }, - }, - "glm-4": { - id: "glm-4", - name: "GLM-4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-01-16", - last_updated: "2024-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 14.994 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen 2.5 Max", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-04-03", - last_updated: "2024-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5997, output: 6.392 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "qwen3-vl-235b-a22b-instruct-original": { - id: "qwen3-vl-235b-a22b-instruct-original", - name: "Qwen3 VL 235B A22B Instruct Original", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "jamba-large-1.6": { - id: "jamba-large-1.6", - name: "Jamba Large 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3995, output: 1.2002 }, - limit: { context: 995904, input: 995904, output: 32768 }, - }, - "qwen25-vl-72b-instruct": { - id: "qwen25-vl-72b-instruct", - name: "Qwen25 VL 72b", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.69989, output: 0.69989 }, - limit: { context: 32000, input: 32000, output: 32768 }, - }, - "claude-sonnet-4-thinking:64000": { - id: "claude-sonnet-4-thinking:64000", - name: "Claude 4 Sonnet Thinking (64K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1": { - id: "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1", - name: "Llama 3.3+ 70B New Dawn v1.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Iceblink-ReExtract", - name: "GLM 4.5 Air Derestricted Iceblink ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 98304 }, - }, - "universal-summarizer": { - id: "universal-summarizer", - name: "Universal Summarizer", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-05-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 30 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "claude-sonnet-4-thinking:32768": { - id: "claude-sonnet-4-thinking:32768", - name: "Claude 4 Sonnet Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "sarvan-medium": { - id: "sarvan-medium", - name: "Sarvam Medium", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-3-7-sonnet-thinking:8192": { - id: "claude-3-7-sonnet-thinking:8192", - name: "Claude 3.7 Sonnet Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash 0520", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048000, input: 1048000, output: 65536 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract", - name: "GLM 4.5 Air Derestricted Iceblink v2 ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 65536 }, - }, - "Llama-3.3-70B-Fallen-v1": { - id: "Llama-3.3-70B-Fallen-v1", - name: "Llama 3.3 70B Fallen v1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "qwen3-vl-235b-a22b-thinking": { - id: "qwen3-vl-235b-a22b-thinking", - name: "Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 6 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "claude-3-7-sonnet-thinking:32768": { - id: "claude-3-7-sonnet-thinking:32768", - name: "Claude 3.7 Sonnet Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "claude-3-7-sonnet-thinking:1024": { - id: "claude-3-7-sonnet-thinking:1024", - name: "Claude 3.7 Sonnet Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Vulpecula-R1": { - id: "Llama-3.3-70B-Vulpecula-R1", - name: "Llama 3.3 70B Vulpecula R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-sonnet-4-thinking:8192": { - id: "claude-sonnet-4-thinking:8192", - name: "Claude 4 Sonnet Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-Ignition-v0.1": { - id: "Llama-3.3-70B-Ignition-v0.1", - name: "Llama 3.3 70B Ignition v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-4-plus-0111": { - id: "glm-4-plus-0111", - name: "GLM 4 Plus 0111", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "KAT-Coder-Air-V1": { - id: "KAT-Coder-Air-V1", - name: "KAT Coder Air V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "deepseek-r1-sambanova": { - id: "deepseek-r1-sambanova", - name: "DeepSeek R1 Fast", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 6.987 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek R1", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "doubao-1-5-thinking-pro-250415": { - id: "doubao-1-5-thinking-pro-250415", - name: "Doubao 1.5 Thinking Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Perplexity Pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "Gemma-3-27B-it-Abliterated": { - id: "Gemma-3-27B-it-Abliterated", - name: "Gemma 3 27B IT Abliterated", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.42, output: 0.42 }, - limit: { context: 32768, input: 32768, output: 96000 }, - }, - "deepseek-chat-cheaper": { - id: "deepseek-chat-cheaper", - name: "DeepSeek V3/Chat Cheaper", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "gemini-2.0-pro-exp-02-05": { - id: "gemini-2.0-pro-exp-02-05", - name: "Gemini 2.0 Pro 0205", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.956 }, - limit: { context: 2097152, input: 2097152, output: 8192 }, - }, - "azure-gpt-4o-mini": { - id: "azure-gpt-4o-mini", - name: "Azure gpt-4o-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1496, output: 0.595 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Llama-3.3-70B-MS-Nevoria": { - id: "Llama-3.3-70B-MS-Nevoria", - name: "Llama 3.3 70B MS Nevoria", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-thinking": { - id: "claude-opus-4-thinking", - name: "Claude 4 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Sapphira-0.1": { - id: "Llama-3.3-70B-Sapphira-0.1", - name: "Llama 3.3 70B Sapphira 0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-code-preview-latest": { - id: "doubao-seed-code-preview-latest", - name: "Doubao Seed Code Preview", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v1.4": { - id: "Llama-3.3-70B-ArliAI-RPMax-v1.4", - name: "Llama 3.3 70B RPMax v1.4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "mistral-small-31-24b-instruct": { - id: "mistral-small-31-24b-instruct", - name: "Mistral Small 31 24b Instruct", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "glm-4.1v-thinking-flashx": { - id: "glm-4.1v-thinking-flashx", - name: "GLM 4.1V Thinking FlashX", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "hunyuan-t1-latest": { - id: "hunyuan-t1-latest", - name: "Hunyuan T1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-22", - last_updated: "2025-03-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "doubao-1-5-thinking-vision-pro-250428": { - id: "doubao-1-5-thinking-vision-pro-250428", - name: "Doubao 1.5 Thinking Vision Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-15", - last_updated: "2025-05-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 1.43 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "asi1-mini": { - id: "asi1-mini", - name: "ASI1 Mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "ernie-5.0-thinking-latest": { - id: "ernie-5.0-thinking-latest", - name: "Ernie 5.0 Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Llama-3.3-70B-Incandescent-Malevolence": { - id: "Llama-3.3-70B-Incandescent-Malevolence", - name: "Llama 3.3 70B Incandescent Malevolence", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Damascus-R1": { - id: "Llama-3.3-70B-Damascus-R1", - name: "Damascus R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-Nidum-Uncensored": { - id: "Gemma-3-27B-Nidum-Uncensored", - name: "Gemma 3 27B Nidum Uncensored", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 96000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025-thinking": { - id: "gemini-2.5-flash-lite-preview-09-2025-thinking", - name: "Gemini 2.5 Flash Lite Preview (09/2025) – Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "doubao-seed-2-0-pro-260215": { - id: "doubao-seed-2-0-pro-260215", - name: "Doubao Seed 2.0 Pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.782, output: 3.876 }, - limit: { context: 256000, input: 256000, output: 128000 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "Gemini 3 Pro Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Gemma-3-27B-CardProjector-v4": { - id: "Gemma-3-27B-CardProjector-v4", - name: "Gemma 3 27B CardProjector v4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "jamba-mini-1.7": { - id: "jamba-mini-1.7", - name: "Jamba Mini 1.7", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "Llama-3.3-70B-Forgotten-Safeword-3.6": { - id: "Llama-3.3-70B-Forgotten-Safeword-3.6", - name: "Llama 3.3 70B Forgotten Safeword 3.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-1-5-thinking-pro-vision-250415": { - id: "doubao-1-5-thinking-pro-vision-250415", - name: "Doubao 1.5 Thinking Pro Vision", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 0605", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "gemini-2.0-pro-reasoner": { - id: "gemini-2.0-pro-reasoner", - name: "Gemini 2.0 Pro Reasoner", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.292, output: 4.998 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "doubao-seed-2-0-lite-260215": { - id: "doubao-seed-2-0-lite-260215", - name: "Doubao Seed 2.0 Lite", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1462, output: 0.8738 }, - limit: { context: 256000, input: 256000, output: 32000 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Deep Research", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-25", - last_updated: "2025-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.4, output: 13.6 }, - limit: { context: 60000, input: 60000, output: 128000 }, - }, - "Gemma-3-27B-it": { - id: "Gemma-3-27B-it", - name: "Gemma 3 27B IT", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-GeneticLemonade-Unleashed-v3": { - id: "Llama-3.3-70B-GeneticLemonade-Unleashed-v3", - name: "Llama 3.3 70B GeneticLemonade Unleashed v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-Glitter": { - id: "Gemma-3-27B-Glitter", - name: "Gemma 3 27B Glitter", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1": { - id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1", - name: "Llama 3.3 70B Omega Directive Unslop v2.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "gemini-2.5-flash-preview-09-2025-thinking": { - id: "gemini-2.5-flash-preview-09-2025-thinking", - name: "Gemini 2.5 Flash Preview (09/2025) – Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - deepclaude: { - id: "deepclaude", - name: "DeepClaude", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "ernie-4.5-8k-preview": { - id: "ernie-4.5-8k-preview", - name: "Ernie 4.5 8k Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 2.6 }, - limit: { context: 8000, input: 8000, output: 16384 }, - }, - "doubao-seed-2-0-mini-260215": { - id: "doubao-seed-2-0-mini-260215", - name: "Doubao Seed 2.0 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0493, output: 0.4845 }, - limit: { context: 256000, input: 256000, output: 32000 }, - }, - "gemini-3-pro-preview-thinking": { - id: "gemini-3-pro-preview-thinking", - name: "Gemini 3 Pro Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-GeneticLemonade-Opus": { - id: "Llama-3.3-70B-GeneticLemonade-Opus", - name: "Llama 3.3 70B GeneticLemonade Opus", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "v0-1.5-lg": { - id: "v0-1.5-lg", - name: "v0 1.5 LG", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "ernie-4.5-turbo-128k": { - id: "ernie-4.5-turbo-128k", - name: "Ernie 4.5 Turbo 128k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.132, output: 0.55 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "KAT-Coder-Pro-V1": { - id: "KAT-Coder-Pro-V1", - name: "KAT Coder Pro V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "claude-3-5-sonnet-20240620": { - id: "claude-3-5-sonnet-20240620", - name: "Claude 3.5 Sonnet Old", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "claude-opus-4-1-thinking:8192": { - id: "claude-opus-4-1-thinking:8192", - name: "Claude 4.1 Opus Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.0-flash-exp-image-generation": { - id: "gemini-2.0-flash-exp-image-generation", - name: "Gemini Text + Image", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "Llama-3.3-70B-Magnum-v4-SE": { - id: "Llama-3.3-70B-Magnum-v4-SE", - name: "Llama 3.3 70B Magnum v4 SE", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-zero-preview": { - id: "glm-zero-preview", - name: "GLM Zero Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.802, output: 1.802 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "study_gpt-chatgpt-4o-latest": { - id: "study_gpt-chatgpt-4o-latest", - name: "Study Mode", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16384 }, - }, - "glm-4-airx": { - id: "glm-4-airx", - name: "GLM-4 AirX", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "step-2-mini": { - id: "step-2-mini", - name: "Step-2 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-05", - last_updated: "2024-07-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.408 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "gemini-2.5-flash-preview-04-17:thinking": { - id: "gemini-2.5-flash-preview-04-17:thinking", - name: "Gemini 2.5 Flash Preview Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 3.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-Mokume-Gane-R1": { - id: "Llama-3.3-70B-Mokume-Gane-R1", - name: "Llama 3.3 70B Mokume Gane R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 64000, input: 64000, output: 65536 }, - }, - "glm-z1-airx": { - id: "glm-z1-airx", - name: "GLM Z1 AirX", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "jamba-mini-1.6": { - id: "jamba-mini-1.6", - name: "Jamba Mini 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "claude-opus-4-1-thinking": { - id: "claude-opus-4-1-thinking", - name: "Claude 4.1 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "grok-3-beta": { - id: "grok-3-beta", - name: "Grok 3 Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "Llama-3.3-70B-Legion-V2.1": { - id: "Llama-3.3-70B-Legion-V2.1", - name: "Llama 3.3 70B Legion V2.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - sonar: { - id: "sonar", - name: "Perplexity Simple", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.003, output: 1.003 }, - limit: { context: 127000, input: 127000, output: 128000 }, - }, - "z-image-turbo": { - id: "z-image-turbo", - name: "Z Image Turbo", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-27", - last_updated: "2025-11-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-v2": { - id: "GLM-4.5-Air-Derestricted-Iceblink-v2", - name: "GLM 4.5 Air Derestricted Iceblink v2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 158600, input: 158600, output: 65536 }, - }, - "jamba-large": { - id: "jamba-large", - name: "Jamba Large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "claude-3-7-sonnet-reasoner": { - id: "claude-3-7-sonnet-reasoner", - name: "Claude 3.7 Sonnet Reasoner", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-29", - last_updated: "2025-03-29", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "ernie-4.5-turbo-vl-32k": { - id: "ernie-4.5-turbo-vl-32k", - name: "Ernie 4.5 Turbo VL 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.495, output: 1.43 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "Mistral-Nemo-12B-Instruct-2407": { - id: "Mistral-Nemo-12B-Instruct-2407", - name: "Mistral Nemo 12B Instruct 2407", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "doubao-seed-1-6-flash-250615": { - id: "doubao-seed-1-6-flash-250615", - name: "Doubao Seed 1.6 Flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0374, output: 0.374 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "qwq-32b": { - id: "qwq-32b", - name: "Qwen: QwQ 32B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25599999, output: 0.30499999 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "Llama-3.3-70B-Strawberrylemonade-v1.2": { - id: "Llama-3.3-70B-Strawberrylemonade-v1.2", - name: "Llama 3.3 70B StrawberryLemonade v1.2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "ernie-x1-turbo-32k": { - id: "ernie-x1-turbo-32k", - name: "Ernie X1 Turbo 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.165, output: 0.66 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "deepseek-math-v2": { - id: "deepseek-math-v2", - name: "DeepSeek Math V2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "Llama-3.3-70B-Electranova-v1.0": { - id: "Llama-3.3-70B-Electranova-v1.0", - name: "Llama 3.3 70B Electranova v1.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v2": { - id: "Llama-3.3-70B-ArliAI-RPMax-v2", - name: "Llama 3.3 70B ArliAI RPMax v2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "qwen-image": { - id: "qwen-image", - name: "Qwen Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "Llama-3.3-70B-Cu-Mai-R1": { - id: "Llama-3.3-70B-Cu-Mai-R1", - name: "Llama 3.3 70B Cu Mai R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink": { - id: "GLM-4.5-Air-Derestricted-Iceblink", - name: "GLM 4.5 Air Derestricted Iceblink", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 98304 }, - }, - "Llama-3.3-70B-Bigger-Body": { - id: "Llama-3.3-70B-Bigger-Body", - name: "Llama 3.3 70B Bigger Body", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3+(3.1v3.3)-70B-Hanami-x1": { - id: "Llama-3.3+(3.1v3.3)-70B-Hanami-x1", - name: "Llama 3.3+ 70B Hanami x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "hunyuan-turbos-20250226": { - id: "hunyuan-turbos-20250226", - name: "Hunyuan Turbo S", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.187, output: 0.374 }, - limit: { context: 24000, input: 24000, output: 8192 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview (09/2025)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "GLM-4.6-Derestricted-v5": { - id: "GLM-4.6-Derestricted-v5", - name: "GLM 4.6 Derestricted v5", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "glm-4-plus": { - id: "glm-4-plus", - name: "GLM-4 Plus", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.497, output: 7.497 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Gemma-3-27B-Big-Tiger-v3": { - id: "Gemma-3-27B-Big-Tiger-v3", - name: "Gemma 3 27B Big Tiger v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "brave-research": { - id: "brave-research", - name: "Brave (Research)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - hidream: { - id: "hidream", - name: "Hidream", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max 2026-01-23", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2002, output: 6.001 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude 4.1 Opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax M1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 1.3328 }, - limit: { context: 1000000, input: 1000000, output: 131072 }, - }, - "gemini-2.5-flash-nothinking": { - id: "gemini-2.5-flash-nothinking", - name: "Gemini 2.5 Flash (No Thinking)", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "exa-research-pro": { - id: "exa-research-pro", - name: "Exa (Research Pro)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "grok-3-fast-beta": { - id: "grok-3-fast-beta", - name: "Grok 3 Fast Beta", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "claude-opus-4-5-20251101:thinking": { - id: "claude-opus-4-5-20251101:thinking", - name: "Claude 4.5 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.5-pro-exp-03-25": { - id: "gemini-2.5-pro-exp-03-25", - name: "Gemini 2.5 Pro Experimental 0325", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "claude-3-7-sonnet-thinking": { - id: "claude-3-7-sonnet-thinking", - name: "Claude 3.7 Sonnet Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16000 }, - }, - "claude-opus-4-thinking:8192": { - id: "claude-opus-4-thinking:8192", - name: "Claude 4 Opus Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "claude-sonnet-4-thinking:1024": { - id: "claude-sonnet-4-thinking:1024", - name: "Claude 4 Sonnet Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP": { - id: "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP", - name: "Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "step-r1-v-mini": { - id: "step-r1-v-mini", - name: "Step R1 V Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-08", - last_updated: "2025-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 11 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "ernie-x1-32k-preview": { - id: "ernie-x1-32k-preview", - name: "Ernie X1 32k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "Llama-3.3-70B-StrawberryLemonade-v1.0": { - id: "Llama-3.3-70B-StrawberryLemonade-v1.0", - name: "Llama 3.3 70B StrawberryLemonade v1.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "KAT-Coder-Exp-72B-1010": { - id: "KAT-Coder-Exp-72B-1010", - name: "KAT Coder Exp 72B 1010", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "gemini-2.5-pro-preview-03-25": { - id: "gemini-2.5-pro-preview-03-25", - name: "Gemini 2.5 Pro Preview 0325", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "claude-opus-4-thinking:1024": { - id: "claude-opus-4-thinking:1024", - name: "Claude 4 Opus Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude 4 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "Llama-3.3-70B-Progenitor-V3.3": { - id: "Llama-3.3-70B-Progenitor-V3.3", - name: "Llama 3.3 70B Progenitor V3.3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Qwen2.5-32B-EVA-v0.2": { - id: "Qwen2.5-32B-EVA-v0.2", - name: "Qwen 2.5 32b EVA", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.493, output: 0.493 }, - limit: { context: 24576, input: 24576, output: 8192 }, - }, - "brave-pro": { - id: "brave-pro", - name: "Brave (Pro)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "step-2-16k-exp": { - id: "step-2-16k-exp", - name: "Step-2 16k Exp", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-05", - last_updated: "2024-07-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.004, output: 19.992 }, - limit: { context: 16000, input: 16000, output: 8192 }, - }, - "Llama-3.3-70B-Fallen-R1-v1": { - id: "Llama-3.3-70B-Fallen-R1-v1", - name: "Llama 3.3 70B Fallen R1 v1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-sonnet-4-thinking": { - id: "claude-sonnet-4-thinking", - name: "Claude 4 Sonnet Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "doubao-1.5-pro-256k": { - id: "doubao-1.5-pro-256k", - name: "Doubao 1.5 Pro 256k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.799, output: 1.445 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16000 }, - }, - "learnlm-1.5-pro-experimental": { - id: "learnlm-1.5-pro-experimental", - name: "Gemini LearnLM Experimental", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.502, output: 10.506 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - chroma: { - id: "chroma", - name: "Chroma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "Llama-3.3-70B-Predatorial-Extasy": { - id: "Llama-3.3-70B-Predatorial-Extasy", - name: "Llama 3.3 70B Predatorial Extasy", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Aurora-Borealis": { - id: "Llama-3.3-70B-Aurora-Borealis", - name: "Llama 3.3 70B Aurora Borealis", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v3": { - id: "Llama-3.3-70B-ArliAI-RPMax-v3", - name: "Llama 3.3 70B ArliAI RPMax v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "venice-uncensored": { - id: "venice-uncensored", - name: "Venice Uncensored", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "step-3": { - id: "step-3", - name: "Step-3", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2499, output: 0.6494 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0": { - id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0", - name: "Llama 3.3 70B Omega Directive Unslop v2.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "auto-model": { - id: "auto-model", - name: "Auto model", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "claude-opus-4-1-thinking:32768": { - id: "claude-opus-4-1-thinking:32768", - name: "Claude 4.1 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Shakudo": { - id: "Llama-3.3-70B-Shakudo", - name: "Llama 3.3 70B Shakudo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Baichuan4-Air": { - id: "Baichuan4-Air", - name: "Baichuan 4 Air", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.157, output: 0.157 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "kimi-thinking-preview": { - id: "kimi-thinking-preview", - name: "Kimi Thinking Preview", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 31.46, output: 31.46 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04998, output: 0.2006 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "Llama-3.3-70B-Mhnnn-x1": { - id: "Llama-3.3-70B-Mhnnn-x1", - name: "Llama 3.3 70B Mhnnn x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-thinking:32768": { - id: "claude-opus-4-thinking:32768", - name: "Claude 4 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Argunaut-1-SFT": { - id: "Llama-3.3-70B-Argunaut-1-SFT", - name: "Llama 3.3 70B Argunaut 1 SFT", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-1-thinking:1024": { - id: "claude-opus-4-1-thinking:1024", - name: "Claude 4.1 Opus Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "phi-4-multimodal-instruct": { - id: "phi-4-multimodal-instruct", - name: "Phi 4 Multimodal", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.11 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "doubao-seed-2-0-code-preview-260215": { - id: "doubao-seed-2-0-code-preview-260215", - name: "Doubao Seed 2.0 Code Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.782, output: 3.893 }, - limit: { context: 256000, input: 256000, output: 128000 }, - }, - "deepseek-reasoner-cheaper": { - id: "deepseek-reasoner-cheaper", - name: "Deepseek R1 Cheaper", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "exa-answer": { - id: "exa-answer", - name: "Exa (Answer)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 4096, input: 4096, output: 4096 }, - }, - "v0-1.0-md": { - id: "v0-1.0-md", - name: "v0 1.0 MD", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "glm-4.1v-thinking-flash": { - id: "glm-4.1v-thinking-flash", - name: "GLM 4.1V Thinking Flash", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "azure-o1": { - id: "azure-o1", - name: "Azure o1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-17", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 59.993 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "GLM-4.5-Air-Derestricted": { - id: "GLM-4.5-Air-Derestricted", - name: "GLM 4.5 Air Derestricted", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 202600, input: 202600, output: 98304 }, - }, - "azure-o3-mini": { - id: "azure-o3-mini", - name: "Azure o3-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.088, output: 4.3996 }, - limit: { context: 200000, input: 200000, output: 65536 }, - }, - "Llama-3.3-70B-Sapphira-0.2": { - id: "Llama-3.3-70B-Sapphira-0.2", - name: "Llama 3.3 70B Sapphira 0.2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Anthrobomination": { - id: "Llama-3.3-70B-Anthrobomination", - name: "Llama 3.3 70B Anthrobomination", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "QwQ-32B-ArliAI-RpR-v1": { - id: "QwQ-32B-ArliAI-RpR-v1", - name: "QwQ 32b Arli V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude 4 Opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "yi-lightning": { - id: "yi-lightning", - name: "Yi Lightning", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-16", - last_updated: "2024-10-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 12000, input: 12000, output: 4096 }, - }, - "Llama-3.3-70B-Electra-R1": { - id: "Llama-3.3-70B-Electra-R1", - name: "Llama 3.3 70B Electra R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Forgotten-Abomination-v5.0": { - id: "Llama-3.3-70B-Forgotten-Abomination-v5.0", - name: "Llama 3.3 70B Forgotten Abomination v5.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Cirrus-x1": { - id: "Llama-3.3-70B-Cirrus-x1", - name: "Llama 3.3 70B Cirrus x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "grok-3-mini-beta": { - id: "grok-3-mini-beta", - name: "Grok 3 Mini Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "auto-model-standard": { - id: "auto-model-standard", - name: "Auto model (Standard)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "claude-sonnet-4-5-20250929-thinking": { - id: "claude-sonnet-4-5-20250929-thinking", - name: "Claude Sonnet 4.5 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "v0-1.5-md": { - id: "v0-1.5-md", - name: "v0 1.5 MD", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "kimi-k2-instruct-fast": { - id: "kimi-k2-instruct-fast", - name: "Kimi K2 0711 Fast", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "glm-4-long": { - id: "glm-4-long", - name: "GLM-4 Long", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 1000000, input: 1000000, output: 4096 }, - }, - "mercury-coder-small": { - id: "mercury-coder-small", - name: "Mercury Coder Small", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-26", - last_updated: "2025-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "jamba-large-1.7": { - id: "jamba-large-1.7", - name: "Jamba Large 1.7", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "qvq-max": { - id: "qvq-max", - name: "Qwen: QvQ Max", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-28", - last_updated: "2025-03-28", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 5.3 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "gemini-2.0-flash-thinking-exp-1219": { - id: "gemini-2.0-flash-thinking-exp-1219", - name: "Gemini 2.0 Flash Thinking 1219", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-19", - last_updated: "2024-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0748, output: 0.306 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "azure-gpt-4-turbo": { - id: "azure-gpt-4-turbo", - name: "Azure gpt-4-turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 30.005 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Baichuan-M2": { - id: "Baichuan-M2", - name: "Baichuan M2 32B Medical", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15.73, output: 15.73 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "qwen-long": { - id: "qwen-long", - name: "Qwen Long 10M", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 10000000, input: 10000000, output: 8192 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Perplexity Reasoning Pro", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 7.9985 }, - limit: { context: 127000, input: 127000, output: 128000 }, - }, - "gemini-2.5-flash-preview-05-20:thinking": { - id: "gemini-2.5-flash-preview-05-20:thinking", - name: "Gemini 2.5 Flash 0520 Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 3.5 }, - limit: { context: 1048000, input: 1048000, output: 65536 }, - }, - "GLM-4.5-Air-Derestricted-Steam-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Steam-ReExtract", - name: "GLM 4.5 Air Derestricted Steam ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 65536 }, - }, - "Llama-3.3-70B-Dark-Ages-v0.1": { - id: "Llama-3.3-70B-Dark-Ages-v0.1", - name: "Llama 3.3 70B Dark Ages v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Baichuan4-Turbo": { - id: "Baichuan4-Turbo", - name: "Baichuan 4 Turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.42, output: 2.42 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "doubao-1.5-vision-pro-32k": { - id: "doubao-1.5-vision-pro-32k", - name: "Doubao 1.5 Vision Pro 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-22", - last_updated: "2025-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.459, output: 1.377 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "inflection/inflection-3-pi": { - id: "inflection/inflection-3-pi", - name: "Inflection 3 Pi", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "inflection/inflection-3-productivity": { - id: "inflection/inflection-3-productivity", - name: "Inflection 3 Productivity", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "essentialai/rnj-1-instruct": { - id: "essentialai/rnj-1-instruct", - name: "RNJ-1 Instruct 8B", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-13", - last_updated: "2025-12-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "LLM360/K2-Think": { - id: "LLM360/K2-Think", - name: "K2-Think", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "TEE/kimi-k2.5": { - id: "TEE/kimi-k2.5", - name: "Kimi K2.5 TEE", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/glm-4.7": { - id: "TEE/glm-4.7", - name: "GLM 4.7 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 3.3 }, - limit: { context: 131000, input: 131000, output: 65535 }, - }, - "TEE/qwen3.5-397b-a17b": { - id: "TEE/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-28", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 258048, input: 258048, output: 65536 }, - }, - "TEE/glm-5": { - id: "TEE/glm-5", - name: "GLM 5 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 3.5 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/qwen2.5-vl-72b-instruct": { - id: "TEE/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B TEE", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "TEE/minimax-m2.1": { - id: "TEE/minimax-m2.1", - name: "MiniMax M2.1 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "TEE/qwen3-30b-a3b-instruct-2507": { - id: "TEE/qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.44999999999999996 }, - limit: { context: 262000, input: 262000, output: 32768 }, - }, - "TEE/deepseek-v3.1": { - id: "TEE/deepseek-v3.1", - name: "DeepSeek V3.1 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2.5 }, - limit: { context: 164000, input: 164000, output: 8192 }, - }, - "TEE/llama3-3-70b": { - id: "TEE/llama3-3-70b", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "TEE/glm-4.6": { - id: "TEE/glm-4.6", - name: "GLM 4.6 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 2 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/kimi-k2.5-thinking": { - id: "TEE/kimi-k2.5-thinking", - name: "Kimi K2.5 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/gemma-3-27b-it": { - id: "TEE/gemma-3-27b-it", - name: "Gemma 3 27B TEE", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "TEE/deepseek-v3.2": { - id: "TEE/deepseek-v3.2", - name: "DeepSeek V3.2 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1 }, - limit: { context: 164000, input: 164000, output: 65536 }, - }, - "TEE/gpt-oss-20b": { - id: "TEE/gpt-oss-20b", - name: "GPT-OSS 20B TEE", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "TEE/qwen3-coder": { - id: "TEE/qwen3-coder", - name: "Qwen3 Coder 480B TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "TEE/glm-4.7-flash": { - id: "TEE/glm-4.7-flash", - name: "GLM 4.7 Flash TEE", - family: "glm-flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/gpt-oss-120b": { - id: "TEE/gpt-oss-120b", - name: "GPT-OSS 120B TEE", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "TEE/deepseek-r1-0528": { - id: "TEE/deepseek-r1-0528", - name: "DeepSeek R1 0528 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "TEE/kimi-k2-thinking": { - id: "TEE/kimi-k2-thinking", - name: "Kimi K2 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "CrucibleLab/L3.3-70B-Loki-V2.0": { - id: "CrucibleLab/L3.3-70B-Loki-V2.0", - name: "L3.3 70B Loki v2.0", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "deepseek/deepseek-v3.2:thinking": { - id: "deepseek/deepseek-v3.2:thinking", - name: "DeepSeek V3.2 Thinking", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "deepseek/deepseek-prover-v2-671b": { - id: "deepseek/deepseek-prover-v2-671b", - name: "DeepSeek Prover v2 671B", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2.5 }, - limit: { context: 160000, input: 160000, output: 16384 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek V3.2 Speciale", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond": { - id: "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond", - name: "MS3.2 24B Magnum Diamond", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "NeverSleep/Llama-3-Lumimaid-70B-v0.1": { - id: "NeverSleep/Llama-3-Lumimaid-70B-v0.1", - name: "Lumimaid 70b", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "NeverSleep/Lumimaid-v0.2-70B": { - id: "NeverSleep/Lumimaid-v0.2-70B", - name: "Lumimaid v0.2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1.5 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "Steelskull/L3.3-Cu-Mai-R1-70b": { - id: "Steelskull/L3.3-Cu-Mai-R1-70b", - name: "Llama 3.3 70B Cu Mai", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-Nevoria-R1-70b": { - id: "Steelskull/L3.3-Nevoria-R1-70b", - name: "Steelskull Nevoria R1 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Evayale-70B": { - id: "Steelskull/L3.3-MS-Evayale-70B", - name: "Evayale 70b ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-Electra-R1-70b": { - id: "Steelskull/L3.3-Electra-R1-70b", - name: "Steelskull Electra R1 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.69989, output: 0.69989 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Nevoria-70b": { - id: "Steelskull/L3.3-MS-Nevoria-70b", - name: "Steelskull Nevoria 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Evalebis-70b": { - id: "Steelskull/L3.3-MS-Evalebis-70b", - name: "MS Evalebis 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "miromind-ai/mirothinker-v1.5-235b": { - id: "miromind-ai/mirothinker-v1.5-235b", - name: "MiroThinker v1.5 235B", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-07", - last_updated: "2026-01-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 32768, input: 32768, output: 4000 }, - }, - "pamanseau/OpenReasoning-Nemotron-32B": { - id: "pamanseau/OpenReasoning-Nemotron-32B", - name: "OpenReasoning Nemotron 32B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 32768, input: 32768, output: 65536 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045000000000000005, output: 0.15 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "arcee-ai/trinity-large": { - id: "arcee-ai/trinity-large", - name: "Trinity Large", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "cognitivecomputations/dolphin-2.9.2-qwen2-72b": { - id: "cognitivecomputations/dolphin-2.9.2-qwen2-72b", - name: "Dolphin 72b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 8192, input: 8192, output: 4096 }, - }, - "deepcogito/cogito-v1-preview-qwen-32B": { - id: "deepcogito/cogito-v1-preview-qwen-32B", - name: "Cogito v1 Preview Qwen 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.7999999999999998, output: 1.7999999999999998 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "deepcogito/cogito-v2.1-671b": { - id: "deepcogito/cogito-v2.1-671b", - name: "Cogito v2.1 671B MoE", - family: "cogito", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "Salesforce/Llama-xLAM-2-70b-fc-r": { - id: "Salesforce/Llama-xLAM-2-70b-fc-r", - name: "Llama-xLAM-2 70B fc-r", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-13", - last_updated: "2025-04-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "NousResearch 2/hermes-4-405b:thinking": { - id: "NousResearch 2/hermes-4-405b:thinking", - name: "Hermes 4 Large (Thinking)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/DeepHermes-3-Mistral-24B-Preview": { - id: "NousResearch 2/DeepHermes-3-Mistral-24B-Preview", - name: "DeepHermes-3 Mistral 24B (Preview)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "NousResearch 2/Hermes-4-70B:thinking": { - id: "NousResearch 2/Hermes-4-70B:thinking", - name: "Hermes 4 (Thinking)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-17", - last_updated: "2025-09-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.39949999999999997 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-4-405b": { - id: "NousResearch 2/hermes-4-405b", - name: "Hermes 4 Large", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-3-llama-3.1-70b": { - id: "NousResearch 2/hermes-3-llama-3.1-70b", - name: "Hermes 3 70B", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-07", - last_updated: "2026-01-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.408, output: 0.408 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "NousResearch 2/hermes-4-70b": { - id: "NousResearch 2/hermes-4-70b", - name: "Hermes 4 Medium", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.39949999999999997 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "soob3123/Veiled-Calla-12B": { - id: "soob3123/Veiled-Calla-12B", - name: "Veiled Calla 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-13", - last_updated: "2025-04-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "soob3123/GrayLine-Qwen3-8B": { - id: "soob3123/GrayLine-Qwen3-8B", - name: "Grayline Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "soob3123/amoral-gemma3-27B-v2": { - id: "soob3123/amoral-gemma3-27B-v2", - name: "Amoral Gemma3 27B v2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-23", - last_updated: "2025-05-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "nex-agi/deepseek-v3.1-nex-n1": { - id: "nex-agi/deepseek-v3.1-nex-n1", - name: "DeepSeek V3.1 Nex N1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-10", - last_updated: "2025-12-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B": { - id: "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", - name: "Llama 3.05 Storybreaker Ministral 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B": { - id: "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B", - name: "Nemotron Tenyxchat Storybreaker 70b", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "anthracite-org/magnum-v4-72b": { - id: "anthracite-org/magnum-v4-72b", - name: "Magnum v4 72B", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.992 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "anthracite-org/magnum-v2-72b": { - id: "anthracite-org/magnum-v2-72b", - name: "Magnum V2 72B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.992 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0": { - id: "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0", - name: "Omega Directive 24B Unslop v2.0", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "ReadyArt/The-Omega-Abomination-L-70B-v1.0": { - id: "ReadyArt/The-Omega-Abomination-L-70B-v1.0", - name: "The Omega Abomination V1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.95 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "undi95/remm-slerp-l2-13b": { - id: "undi95/remm-slerp-l2-13b", - name: "ReMM SLERP 13B", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 1.2069999999999999 }, - limit: { context: 6144, input: 6144, output: 4096 }, - }, - "MarinaraSpaghetti/NemoMix-Unleashed-12B": { - id: "MarinaraSpaghetti/NemoMix-Unleashed-12B", - name: "NemoMix 12B Unleashed", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "allenai/molmo-2-8b": { - id: "allenai/molmo-2-8b", - name: "Molmo 2 8B", - family: "allenai", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 36864, input: 36864, output: 36864 }, - }, - "allenai/olmo-3.1-32b-instruct": { - id: "allenai/olmo-3.1-32b-instruct", - name: "Olmo 3.1 32B Instruct", - family: "allenai", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-25", - last_updated: "2026-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "allenai/olmo-3.1-32b-think": { - id: "allenai/olmo-3.1-32b-think", - name: "Olmo 3.1 32B Think", - family: "allenai", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-25", - last_updated: "2026-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "allenai/olmo-3-32b-think": { - id: "allenai/olmo-3-32b-think", - name: "Olmo 3 32B Think", - family: "allenai", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.44999999999999996 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "stepfun-ai/step-3.5-flash:thinking": { - id: "stepfun-ai/step-3.5-flash:thinking", - name: "Step 3.5 Flash Thinking", - family: "step", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "stepfun-ai/step-3.5-flash": { - id: "stepfun-ai/step-3.5-flash", - name: "Step 3.5 Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.8 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-5.1": { - id: "zai-org/glm-5.1", - name: "GLM 5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "zai-org/glm-5.1:thinking": { - id: "zai-org/glm-5.1:thinking", - name: "GLM 5.1 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "zai-org/glm-5:thinking": { - id: "zai-org/glm-5:thinking", - name: "GLM 5 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "featherless-ai/Qwerky-72B": { - id: "featherless-ai/Qwerky-72B", - name: "Qwerky 72B", - family: "qwerky", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "mlabonne/NeuralDaredevil-8B-abliterated": { - id: "mlabonne/NeuralDaredevil-8B-abliterated", - name: "Neural Daredevil 8B abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.44, output: 0.44 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "raifle/sorcererlm-8x22b": { - id: "raifle/sorcererlm-8x22b", - name: "SorcererLM 8x22B", - family: "mixtral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.505, output: 4.505 }, - limit: { context: 16000, input: 16000, output: 8192 }, - }, - "mistralai/mixtral-8x7b-instruct-v0.1": { - id: "mistralai/mixtral-8x7b-instruct-v0.1", - name: "Mixtral 8x7B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "mistralai/mistral-saba": { - id: "mistralai/mistral-saba", - name: "Mistral Saba", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.595 }, - limit: { context: 32000, input: 32000, output: 32768 }, - }, - "mistralai/mistral-large-3-675b-instruct-2512": { - id: "mistralai/mistral-large-3-675b-instruct-2512", - name: "Mistral Large 3 675B", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3 }, - limit: { context: 262144, input: 262144, output: 256000 }, - }, - "mistralai/devstral-2-123b-instruct-2512": { - id: "mistralai/devstral-2-123b-instruct-2512", - name: "Devstral 2 123B", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.4 }, - limit: { context: 262144, input: 262144, output: 65536 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Codestral 2508", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.8999999999999999 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "mistralai/ministral-14b-instruct-2512": { - id: "mistralai/ministral-14b-instruct-2512", - name: "Ministral 3 14B", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/mistral-tiny": { - id: "mistralai/mistral-tiny", - name: "Mistral Tiny", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-12-11", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25499999999999995, output: 0.25499999999999995 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "mistralai/ministral-8b-2512": { - id: "mistralai/ministral-8b-2512", - name: "Ministral 8B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/mixtral-8x22b-instruct-v0.1": { - id: "mistralai/mixtral-8x22b-instruct-v0.1", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8999999999999999, output: 0.8999999999999999 }, - limit: { context: 65536, input: 65536, output: 32768 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/ministral-3b-2512": { - id: "mistralai/ministral-3b-2512", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/mistral-7b-instruct": { - id: "mistralai/mistral-7b-instruct", - name: "Mistral 7B Instruct", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0544, output: 0.0544 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "mistralai/Devstral-Small-2505": { - id: "mistralai/Devstral-Small-2505", - name: "Mistral Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.060000000000000005, output: 0.060000000000000005 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "mistralai/mistral-small-creative": { - id: "mistralai/mistral-small-creative", - name: "Mistral Small Creative", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "mistralai/mistral-large": { - id: "mistralai/mistral-large", - name: "Mistral Large 2411", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-02-26", - last_updated: "2024-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 6.001 }, - limit: { context: 128000, input: 128000, output: 256000 }, - }, - "mistralai/ministral-14b-2512": { - id: "mistralai/ministral-14b-2512", - name: "Ministral 14B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "shisa-ai/shisa-v2.1-llama3.3-70b": { - id: "shisa-ai/shisa-v2.1-llama3.3-70b", - name: "Shisa V2.1 Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 32768, input: 32768, output: 4096 }, - }, - "shisa-ai/shisa-v2-llama3.3-70b": { - id: "shisa-ai/shisa-v2-llama3.3-70b", - name: "Shisa V2 Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Llama 3.3 70b Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.23 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "meta-llama/llama-4-scout": { - id: "meta-llama/llama-4-scout", - name: "Llama 4 Scout", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.085, output: 0.46 }, - limit: { context: 328000, input: 328000, output: 65536 }, - }, - "meta-llama/llama-4-maverick": { - id: "meta-llama/llama-4-maverick", - name: "Llama 4 Maverick", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18000000000000002, output: 0.8 }, - limit: { context: 1048576, input: 1048576, output: 65536 }, - }, - "meta-llama/llama-3.2-90b-vision-instruct": { - id: "meta-llama/llama-3.2-90b-vision-instruct", - name: "Llama 3.2 Medium", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9009999999999999, output: 0.9009999999999999 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "meta-llama/llama-3.2-3b-instruct": { - id: "meta-llama/llama-3.2-3b-instruct", - name: "Llama 3.2 3b Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0306, output: 0.0493 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Llama 3.1 8b Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0544, output: 0.0544 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "GalrionSoftworks/MN-LooseCannon-12B-v1": { - id: "GalrionSoftworks/MN-LooseCannon-12B-v1", - name: "MN-LooseCannon-12B-v1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "baseten/Kimi-K2-Instruct-FP4": { - id: "baseten/Kimi-K2-Instruct-FP4", - name: "Kimi K2 0711 Instruct FP4", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "Gryphe/MythoMax-L2-13b": { - id: "Gryphe/MythoMax-L2-13b", - name: "MythoMax 13B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 4000, input: 4000, output: 4096 }, - }, - "x-ai/grok-4-fast:thinking": { - id: "x-ai/grok-4-fast:thinking", - name: "Grok 4 Fast Thinking", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4-07-09": { - id: "x-ai/grok-4-07-09", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, input: 256000, output: 131072 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-20", - last_updated: "2025-09-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, input: 256000, output: 131072 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4.1-fast-reasoning": { - id: "x-ai/grok-4.1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "Hunyuan MT 7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 20 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "WizardLM-2 8x22B", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "microsoft/MAI-DS-R1-FP8": { - id: "microsoft/MAI-DS-R1-FP8", - name: "Microsoft DeepSeek R1", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "cohere/command-r": { - id: "cohere/command-r", - name: "Cohere: Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-03-11", - last_updated: "2024-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.476, output: 1.428 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "cohere/command-r-plus-08-2024": { - id: "cohere/command-r-plus-08-2024", - name: "Cohere: Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.856, output: 14.246 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24b Instruct", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1": { - id: "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", - name: "Nvidia Nemotron Ultra 253B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.8 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "Nvidia Nemotron 3 Nano 30B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-15", - last_updated: "2025-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, - "nvidia/nvidia-nemotron-nano-9b-v2": { - id: "nvidia/nvidia-nemotron-nano-9b-v2", - name: "Nvidia Nemotron Nano 9B v2", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": { - id: "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", - name: "Nvidia Nemotron 70b", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.357, output: 0.408 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "nvidia/Llama-3.3-Nemotron-Super-49B-v1": { - id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1", - name: "Nvidia Nemotron Super 49B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5": { - id: "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5", - name: "Nvidia Nemotron Super 49B v1.5", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "TheDrummer 2/Anubis-70B-v1": { - id: "TheDrummer 2/Anubis-70B-v1", - name: "Anubis 70B v1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 65536, input: 65536, output: 16384 }, - }, - "TheDrummer 2/Cydonia-24B-v4.3": { - id: "TheDrummer 2/Cydonia-24B-v4.3", - name: "The Drummer Cydonia 24B v4.3", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-25", - last_updated: "2025-12-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "TheDrummer 2/Magidonia-24B-v4.3": { - id: "TheDrummer 2/Magidonia-24B-v4.3", - name: "The Drummer Magidonia 24B v4.3", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-25", - last_updated: "2025-12-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "TheDrummer 2/Cydonia-24B-v4": { - id: "TheDrummer 2/Cydonia-24B-v4", - name: "The Drummer Cydonia 24B v4", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2414 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/Anubis-70B-v1.1": { - id: "TheDrummer 2/Anubis-70B-v1.1", - name: "Anubis 70B v1.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "TheDrummer 2/Rocinante-12B-v1.1": { - id: "TheDrummer 2/Rocinante-12B-v1.1", - name: "Rocinante 12b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.408, output: 0.595 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "TheDrummer 2/Cydonia-24B-v4.1": { - id: "TheDrummer 2/Cydonia-24B-v4.1", - name: "The Drummer Cydonia 24B v4.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/UnslopNemo-12B-v4.1": { - id: "TheDrummer 2/UnslopNemo-12B-v4.1", - name: "UnslopNemo 12b v4", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "TheDrummer 2/Cydonia-24B-v2": { - id: "TheDrummer 2/Cydonia-24B-v2", - name: "The Drummer Cydonia 24B v2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/skyfall-36b-v2": { - id: "TheDrummer 2/skyfall-36b-v2", - name: "TheDrummer Skyfall 36B V2", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 64000, input: 64000, output: 32768 }, - }, - "deepseek-ai/DeepSeek-V3.1:thinking": { - id: "deepseek-ai/DeepSeek-V3.1:thinking", - name: "DeepSeek V3.1 Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus:thinking": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus:thinking", - name: "DeepSeek V3.1 Terminus (Thinking)", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "deepseek-ai/deepseek-v3.2-exp-thinking": { - id: "deepseek-ai/deepseek-v3.2-exp-thinking", - name: "DeepSeek V3.2 Exp Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163840, input: 163840, output: 65536 }, - }, - "deepseek-ai/deepseek-v3.2-exp": { - id: "deepseek-ai/deepseek-v3.2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163840, input: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 20 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT 5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 16384 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "GPT-4o mini Search Preview", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.088, output: 0.35 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/chatgpt-4o-latest": { - id: "openai/chatgpt-4o-latest", - name: "ChatGPT 4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 14.993999999999998 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT 5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT 5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT 5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT 5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "OpenAI o3-mini (High)", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.64, output: 2.588 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1496, output: 0.595 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "OpenAI o4-mini Deep Research", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT 5.1 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT 5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT 5.1 Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o1-preview": { - id: "openai/o1-preview", - name: "OpenAI o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.993999999999998, output: 59.993 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "openai/gpt-4o-2024-08-06": { - id: "openai/gpt-4o-2024-08-06", - name: "GPT-4o (2024-08-06)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-06", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT 5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-12-17", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.993999999999998, output: 59.993 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2022-11-30", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, input: 16385, output: 4096 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "OpenAI o3 Deep Research", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo-preview": { - id: "openai/gpt-4-turbo-preview", - name: "GPT-4 Turbo Preview", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 30.004999999999995 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "OpenAI o1 Pro", - family: "o-pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "openai/gpt-5.1-chat-latest": { - id: "openai/gpt-5.1-chat-latest", - name: "GPT 5.1 Chat (Latest)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 16384 }, - }, - "openai/gpt-4o-search-preview": { - id: "openai/gpt-4o-search-preview", - name: "GPT-4o Search Preview", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.47, output: 5.88 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT 4.1 Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/o4-mini-high": { - id: "openai/o4-mini-high", - name: "OpenAI o4-mini high", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT 5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.1-2025-11-13": { - id: "openai/gpt-5.1-2025-11-13", - name: "GPT-5.1 (2025-11-13)", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1000000, input: 1000000, output: 32768 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/o3-mini-low": { - id: "openai/o3-mini-low", - name: "OpenAI o3-mini (Low)", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT 5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/o3-pro-2025-06-10": { - id: "openai/o3-pro-2025-06-10", - name: "OpenAI o3-pro (2025-06-10)", - family: "o-pro", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5-chat-latest": { - id: "openai/gpt-5-chat-latest", - name: "GPT 5 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT 4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT 4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT 5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4o-2024-11-20": { - id: "openai/gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "VongolaChouko/Starcannon-Unleashed-12B-v1.0": { - id: "VongolaChouko/Starcannon-Unleashed-12B-v1.0", - name: "Mistral Nemo Starcannon 12b v1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "amazon/nova-lite-v1": { - id: "amazon/nova-lite-v1", - name: "Amazon Nova Lite 1.0", - family: "nova-lite", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0595, output: 0.238 }, - limit: { context: 300000, input: 300000, output: 5120 }, - }, - "amazon/nova-pro-v1": { - id: "amazon/nova-pro-v1", - name: "Amazon Nova Pro 1.0", - family: "nova-pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 3.1959999999999997 }, - limit: { context: 300000, input: 300000, output: 32000 }, - }, - "amazon/nova-2-lite-v1": { - id: "amazon/nova-2-lite-v1", - name: "Amazon Nova 2 Lite", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5099999999999999, output: 4.25 }, - limit: { context: 1000000, input: 1000000, output: 65535 }, - }, - "amazon/nova-micro-v1": { - id: "amazon/nova-micro-v1", - name: "Amazon Nova Micro 1.0", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0357, output: 0.1394 }, - limit: { context: 128000, input: 128000, output: 5120 }, - }, - "Sao10K/L3.3-70B-Euryale-v2.3": { - id: "Sao10K/L3.3-70B-Euryale-v2.3", - name: "Llama 3.3 70B Euryale", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 20480, input: 20480, output: 16384 }, - }, - "Sao10K/L3.1-70B-Euryale-v2.2": { - id: "Sao10K/L3.1-70B-Euryale-v2.2", - name: "Llama 3.1 70B Euryale", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.357 }, - limit: { context: 20480, input: 20480, output: 16384 }, - }, - "Sao10K/L3.1-70B-Hanami-x1": { - id: "Sao10K/L3.1-70B-Hanami-x1", - name: "Llama 3.1 70B Hanami", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Sao10K/L3-8B-Stheno-v3.2": { - id: "Sao10K/L3-8B-Stheno-v3.2", - name: "Sao10K Stheno 8b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "LatitudeGames/Wayfarer-Large-70B-Llama-3.3": { - id: "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", - name: "Llama 3.3 70B Wayfarer", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.700000007, output: 0.700000007 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "z-ai/glm-4.6:thinking": { - id: "z-ai/glm-4.6:thinking", - name: "GLM 4.6 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 200000, input: 200000, output: 65535 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-22", - last_updated: "2025-11-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.7999999999999998 }, - limit: { context: 64000, input: 64000, output: 96000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 200000, input: 200000, output: 65535 }, - }, - "z-ai/glm-4.5v:thinking": { - id: "z-ai/glm-4.5v:thinking", - name: "GLM 4.5V Thinking", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-22", - last_updated: "2025-11-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.7999999999999998 }, - limit: { context: 64000, input: 64000, output: 96000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "ERNIE 4.5 VL 28B", - family: "ernie", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13999999999999999, output: 0.5599999999999999 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "baidu/ernie-4.5-300b-a47b": { - id: "baidu/ernie-4.5-300b-a47b", - name: "ERNIE 4.5 300B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.15 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "dmind/dmind-1": { - id: "dmind/dmind-1", - name: "DMind-1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.6 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "dmind/dmind-1-mini": { - id: "dmind/dmind-1-mini", - name: "DMind-1-Mini", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.4 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "Infermatic/MN-12B-Inferor-v0.0": { - id: "Infermatic/MN-12B-Inferor-v0.0", - name: "Mistral Nemo Inferor 12B", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25499999999999995, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "meituan-longcat/LongCat-Flash-Chat-FP8": { - id: "meituan-longcat/LongCat-Flash-Chat-FP8", - name: "LongCat Flash", - family: "longcat", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-31", - last_updated: "2025-08-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "meganova-ai/manta-mini-1.0": { - id: "meganova-ai/manta-mini-1.0", - name: "Manta Mini 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.16 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "meganova-ai/manta-pro-1.0": { - id: "meganova-ai/manta-pro-1.0", - name: "Manta Pro 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.060000000000000005, output: 0.5 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "meganova-ai/manta-flash-1.0": { - id: "meganova-ai/manta-flash-1.0", - name: "Manta Flash 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.16 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, input: 204800, output: 131072 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax 01", - family: "minimax", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 1.1219999999999999 }, - limit: { context: 1000192, input: 1000192, output: 16384 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "minimax/minimax-m2-her": { - id: "minimax/minimax-m2-her", - name: "MiniMax M2-her", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-24", - last_updated: "2026-01-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.30200000000000005, output: 1.2069999999999999 }, - limit: { context: 65532, input: 65532, output: 2048 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, input: 204800, output: 131072 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 258048, input: 258048, output: 65536 }, - }, - "unsloth/gemma-3-1b-it": { - id: "unsloth/gemma-3-1b-it", - name: "Gemma 3 1B IT", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "unsloth/gemma-3-12b-it": { - id: "unsloth/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "unsloth", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.272, output: 0.272 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "unsloth/gemma-3-4b-it": { - id: "unsloth/gemma-3-4b-it", - name: "Gemma 3 4B IT", - family: "unsloth", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "unsloth/gemma-3-27b-it": { - id: "unsloth/gemma-3-27b-it", - name: "Gemma 3 27B IT", - family: "unsloth", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2992, output: 0.2992 }, - limit: { context: 128000, input: 128000, output: 96000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "GLM Z1 9B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 8000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "GLM 4 9B 0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 8000 }, - }, - "THUDM/GLM-Z1-Rumination-32B-0414": { - id: "THUDM/GLM-Z1-Rumination-32B-0414", - name: "GLM Z1 Rumination 32B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 65536 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "GLM 4 32B 0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "GLM Z1 32B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "google/gemini-flash-1.5": { - id: "google/gemini-flash-1.5", - name: "Gemini 1.5 Flash", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0748, output: 0.306 }, - limit: { context: 2000000, input: 2000000, output: 8192 }, - }, - "google/gemini-3-flash-preview-thinking": { - id: "google/gemini-3-flash-preview-thinking", - name: "Gemini 3 Flash Thinking", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 256000, input: 256000, output: 65536 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/kimi-k2-thinking-original": { - id: "moonshotai/kimi-k2-thinking-original", - name: "Kimi K2 Thinking Original", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "moonshotai/kimi-k2-instruct-0711": { - id: "moonshotai/kimi-k2-instruct-0711", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "moonshotai/Kimi-Dev-72B": { - id: "moonshotai/Kimi-Dev-72B", - name: "Kimi Dev 72B", - family: "kimi", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "moonshotai/kimi-k2-thinking-turbo-original": { - id: "moonshotai/kimi-k2-thinking-turbo-original", - name: "Kimi K2 Thinking Turbo Original", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, - "moonshotai/kimi-k2.5:thinking": { - id: "moonshotai/kimi-k2.5:thinking", - name: "Kimi K2.5 Thinking", - family: "kimi-thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 256000, input: 256000, output: 65536 }, - }, - "Tongyi-Zhiwen/QwenLong-L1-32B": { - id: "Tongyi-Zhiwen/QwenLong-L1-32B", - name: "QwenLong L1 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13999999999999999, output: 0.6 }, - limit: { context: 128000, input: 128000, output: 40960 }, - }, - "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16": { - id: "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", - name: "Llama 3.1 70B Celeste v0.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "aion-labs/aion-1.0": { - id: "aion-labs/aion-1.0", - name: "Aion 1.0", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.995, output: 7.99 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "aion-labs/aion-rp-llama-3.1-8b": { - id: "aion-labs/aion-rp-llama-3.1-8b", - name: "Llama 3.1 8b (uncensored)", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "aion-labs/aion-1.0-mini": { - id: "aion-labs/aion-1.0-mini", - name: "Aion 1.0 mini (DeepSeek)", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 1.394 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B": { - id: "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B", - name: "Tongyi DeepResearch 30B A3B", - family: "yi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.24000000000000002 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "MiniMaxAI/MiniMax-M1-80k": { - id: "MiniMaxAI/MiniMax-M1-80k", - name: "MiniMax M1 80K", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6052, output: 2.4225000000000003 }, - limit: { context: 1000000, input: 1000000, output: 131072 }, - }, - "anthropic/claude-opus-4.6:thinking:low": { - id: "anthropic/claude-opus-4.6:thinking:low", - name: "Claude 4.6 Opus Thinking Low", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude 4.6 Opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4.6:thinking": { - id: "anthropic/claude-sonnet-4.6:thinking", - name: "Claude Sonnet 4.6 Thinking", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.993999999999998 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:max": { - id: "anthropic/claude-opus-4.6:thinking:max", - name: "Claude 4.6 Opus Thinking Max", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:medium": { - id: "anthropic/claude-opus-4.6:thinking:medium", - name: "Claude 4.6 Opus Thinking Medium", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.993999999999998 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking": { - id: "anthropic/claude-opus-4.6:thinking", - name: "Claude 4.6 Opus Thinking", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "abacusai/Dracarys-72B-Instruct": { - id: "abacusai/Dracarys-72B-Instruct", - name: "Llama 3.1 70B Dracarys 2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0": { - id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0", - name: "EVA Llama 3.33 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2": { - id: "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", - name: "EVA-Qwen2.5-72B-v0.2", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1": { - id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1", - name: "EVA-LLaMA-3.33-70B-v0.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2": { - id: "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2", - name: "EVA-Qwen2.5-32B-v0.2", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated": { - id: "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", - name: "DeepSeek R1 Qwen Abliterated", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 1.4 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated": { - id: "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", - name: "DeepSeek R1 Llama 70B Abliterated", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/Llama-3.3-70B-Instruct-abliterated": { - id: "huihui-ai/Llama-3.3-70B-Instruct-abliterated", - name: "Llama 3.3 70B Instruct abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { - id: "huihui-ai/Qwen2.5-32B-Instruct-abliterated", - name: "Qwen 2.5 32B Abliterated", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-06", - last_updated: "2025-01-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated": { - id: "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", - name: "Nemotron 3.1 70B abliterated", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "xiaomi/mimo-v2-flash-thinking-original": { - id: "xiaomi/mimo-v2-flash-thinking-original", - name: "MiMo V2 Flash (Thinking) Original", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash-thinking": { - id: "xiaomi/mimo-v2-flash-thinking", - name: "MiMo V2 Flash (Thinking)", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash-original": { - id: "xiaomi/mimo-v2-flash-original", - name: "MiMo V2 Flash Original", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "tngtech/DeepSeek-TNG-R1T2-Chimera": { - id: "tngtech/DeepSeek-TNG-R1T2-Chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "tngtech", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "tngtech/tng-r1t-chimera": { - id: "tngtech/tng-r1t-chimera", - name: "TNG R1T Chimera", - family: "tngtech", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "inflatebot/MN-12B-Mag-Mell-R1": { - id: "inflatebot/MN-12B-Mag-Mell-R1", - name: "Mag Mell R1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5": { - id: "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", - name: "Llama 3 70B abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - }, - }, - abacus: { - id: "abacus", - env: ["ABACUS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://routellm.abacus.ai/v1", - name: "Abacus", - doc: "https://abacus.ai/help/api", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 32768 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5.3-chat-latest": { - id: "gpt-5.3-chat-latest", - name: "GPT-5.3 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1048576, output: 65536 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 16384 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "o3-pro": { - id: "o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 40 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 131072, output: 16384 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.3-codex-xhigh": { - id: "gpt-5.3-codex-xhigh", - name: "GPT-5.3 Codex XHigh", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, output: 16384 }, - }, - "route-llm": { - id: "route-llm", - name: "Route LLM", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen-2.5-coder-32b": { - id: "qwen-2.5-coder-32b", - name: "Qwen 2.5 Coder 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.79, output: 0.79 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "GPT-5.1 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo Preview", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-08", - last_updated: "2025-07-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 8 }, - limit: { context: 256000, output: 8192 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 Nano", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4o-2024-11-20": { - id: "gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 16384 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.66 }, - limit: { context: 128000, output: 8192 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2024-11-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262144, output: 8192 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29 }, - limit: { context: 128000, output: 8192 }, - }, - "Qwen/qwen3-coder-480b-a35b-instruct": { - id: "Qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.2 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen 2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.38 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-4.6": { - id: "zai-org/glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": { - id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", - name: "Llama 3.1 405B Instruct Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.5, output: 3.5 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.59 }, - limit: { context: 1000000, output: 32768 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 7 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.44 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "perplexity-agent": { - id: "perplexity-agent", - env: ["PERPLEXITY_API_KEY"], - npm: "@ai-sdk/openai", - api: "https://api.perplexity.ai/v1", - name: "Perplexity Agent", - doc: "https://docs.perplexity.ai/docs/agent-api/models", - models: { - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2.5, cache_read: 0.0625 }, - limit: { context: 128000, output: 8192 }, - }, - "xai/grok-4-1-fast-non-reasoning": { - id: "xai/grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2.5 }, - limit: { context: 1000000, output: 32000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 1.25, - output: 10, - cache_read: 0.125, - context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 128000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "siliconflow-cn": { - id: "siliconflow-cn", - env: ["SILICONFLOW_CN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.siliconflow.cn/v1", - name: "SiliconFlow (China)", - doc: "https://cloud.siliconflow.com/models", - models: { - "Kwaipilot/KAT-Dev": { - id: "Kwaipilot/KAT-Dev", - name: "Kwaipilot/KAT-Dev", - family: "kat-coder", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-27", - last_updated: "2026-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 128000 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen/Qwen3.5-397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.74 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-35B-A3B": { - id: "Qwen/Qwen3.5-35B-A3B", - name: "Qwen/Qwen3.5-35B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.23, output: 1.86 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-122B-A10B": { - id: "Qwen/Qwen3.5-122B-A10B", - name: "Qwen/Qwen3.5-122B-A10B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 2.32 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-9B": { - id: "Qwen/Qwen3.5-9B", - name: "Qwen/Qwen3.5-9B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.74 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-27B": { - id: "Qwen/Qwen3.5-27B", - name: "Qwen/Qwen3.5-27B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.09 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-4B": { - id: "Qwen/Qwen3.5-4B", - name: "Qwen/Qwen3.5-4B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen/Qwen2.5-72B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Instruct": { - id: "Qwen/Qwen3-VL-8B-Instruct", - name: "Qwen/Qwen3-VL-8B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.68 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Instruct": { - id: "Qwen/Qwen3-VL-32B-Instruct", - name: "Qwen/Qwen3-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Thinking": { - id: "Qwen/Qwen3-VL-30B-A3B-Thinking", - name: "Qwen/Qwen3-VL-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-14B-Instruct": { - id: "Qwen/Qwen2.5-14B-Instruct", - name: "Qwen/Qwen2.5-14B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen/Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen/Qwen2.5-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Thinking": { - id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen/Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-32B-Instruct": { - id: "Qwen/Qwen2.5-32B-Instruct", - name: "Qwen/Qwen2.5-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct-128K": { - id: "Qwen/Qwen2.5-72B-Instruct-128K", - name: "Qwen/Qwen2.5-72B-Instruct-128K", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen/Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen/Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen/Qwen3-235B-A22B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen/Qwen3-30B-A3B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-8B": { - id: "Qwen/Qwen3-8B", - name: "Qwen/Qwen3-8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Thinking": { - id: "Qwen/Qwen3-VL-8B-Thinking", - name: "Qwen/Qwen3-VL-8B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Captioner": { - id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "Qwen/QwQ-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.58 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen/Qwen3-VL-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen/Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-7B-Instruct": { - id: "Qwen/Qwen2.5-7B-Instruct", - name: "Qwen/Qwen2.5-7B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Thinking": { - id: "Qwen/Qwen3-VL-235B-A22B-Thinking", - name: "Qwen/Qwen3-VL-235B-A22B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen/Qwen3-30B-A3B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 131000 }, - }, - "Qwen/Qwen3-VL-32B-Thinking": { - id: "Qwen/Qwen3-VL-32B-Thinking", - name: "Qwen/Qwen3-VL-32B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen/Qwen2.5-VL-72B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "stepfun-ai/Step-3.5-Flash": { - id: "stepfun-ai/Step-3.5-Flash", - name: "stepfun-ai/Step-3.5-Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "zai-org/GLM-4.5V": { - id: "zai-org/GLM-4.5V", - name: "zai-org/GLM-4.5V", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 66000, output: 66000 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "zai-org/GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.9 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "zai-org/GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-07", - last_updated: "2025-12-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "zai-org/GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-flash-2.0": { - id: "inclusionAI/Ling-flash-2.0", - name: "inclusionAI/Ling-flash-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-mini-2.0": { - id: "inclusionAI/Ling-mini-2.0", - name: "inclusionAI/Ling-mini-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ring-flash-2.0": { - id: "inclusionAI/Ring-flash-2.0", - name: "inclusionAI/Ring-flash-2.0", - family: "ring", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "ascend-tribe/pangu-pro-moe": { - id: "ascend-tribe/pangu-pro-moe", - name: "ascend-tribe/pangu-pro-moe", - family: "pangu", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2026-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 128000 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "tencent/Hunyuan-MT-7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 33000, output: 33000 }, - }, - "tencent/Hunyuan-A13B-Instruct": { - id: "tencent/Hunyuan-A13B-Instruct", - name: "tencent/Hunyuan-A13B-Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Pro/zai-org/GLM-4.7": { - id: "Pro/zai-org/GLM-4.7", - name: "Pro/zai-org/GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/zai-org/GLM-5.1": { - id: "Pro/zai-org/GLM-5.1", - name: "Pro/zai-org/GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-08", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_write: 0 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/zai-org/GLM-5": { - id: "Pro/zai-org/GLM-5", - name: "Pro/zai-org/GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3": { - id: "Pro/deepseek-ai/DeepSeek-V3", - name: "Pro/deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-R1": { - id: "Pro/deepseek-ai/DeepSeek-R1", - name: "Pro/deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3.2": { - id: "Pro/deepseek-ai/DeepSeek-V3.2", - name: "Pro/deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", - name: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/moonshotai/Kimi-K2-Thinking": { - id: "Pro/moonshotai/Kimi-K2-Thinking", - name: "Pro/moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/moonshotai/Kimi-K2-Instruct-0905": { - id: "Pro/moonshotai/Kimi-K2-Instruct-0905", - name: "Pro/moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/moonshotai/Kimi-K2.5": { - id: "Pro/moonshotai/Kimi-K2.5", - name: "Pro/moonshotai/Kimi-K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 3 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/MiniMaxAI/MiniMax-M2.5": { - id: "Pro/MiniMaxAI/MiniMax-M2.5", - name: "Pro/MiniMaxAI/MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.22 }, - limit: { context: 192000, output: 131000 }, - }, - "Pro/MiniMaxAI/MiniMax-M2.1": { - id: "Pro/MiniMaxAI/MiniMax-M2.1", - name: "Pro/MiniMaxAI/MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "PaddlePaddle/PaddleOCR-VL": { - id: "PaddlePaddle/PaddleOCR-VL", - name: "PaddlePaddle/PaddleOCR-VL", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 16384 }, - }, - "PaddlePaddle/PaddleOCR-VL-1.5": { - id: "PaddlePaddle/PaddleOCR-VL-1.5", - name: "PaddlePaddle/PaddleOCR-VL-1.5", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 16384 }, - }, - "deepseek-ai/DeepSeek-OCR": { - id: "deepseek-ai/DeepSeek-OCR", - name: "deepseek-ai/DeepSeek-OCR", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2025-10-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/deepseek-vl2": { - id: "deepseek-ai/deepseek-vl2", - name: "deepseek-ai/deepseek-vl2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 4000, output: 4000 }, - }, - "baidu/ERNIE-4.5-300B-A47B": { - id: "baidu/ERNIE-4.5-300B-A47B", - name: "baidu/ERNIE-4.5-300B-A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "THUDM/GLM-Z1-32B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "THUDM/GLM-4-32B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "THUDM/GLM-4-9B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "THUDM/GLM-Z1-9B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 131000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "ByteDance-Seed/Seed-OSS-36B-Instruct": { - id: "ByteDance-Seed/Seed-OSS-36B-Instruct", - name: "ByteDance-Seed/Seed-OSS-36B-Instruct", - family: "seed", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - }, - }, - submodel: { - id: "submodel", - env: ["SUBMODEL_INSTAGEN_ACCESS_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://llm.submodel.ai/v1", - name: "submodel", - doc: "https://submodel.gitbook.io", - models: { - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 131072 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "zai-org/GLM-4.5-FP8": { - id: "zai-org/GLM-4.5-FP8", - name: "GLM 4.5 FP8", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 75000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 75000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.15 }, - limit: { context: 75000, output: 163840 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - "minimax-coding-plan": { - id: "minimax-coding-plan", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimax.io/anthropic/v1", - name: "MiniMax Coding Plan (minimax.io)", - doc: "https://platform.minimax.io/docs/coding-plan/intro", - models: { - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - perplexity: { - id: "perplexity", - env: ["PERPLEXITY_API_KEY"], - npm: "@ai-sdk/perplexity", - name: "Perplexity", - doc: "https://docs.perplexity.ai", - models: { - "sonar-pro": { - id: "sonar-pro", - name: "Sonar Pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Sonar Deep Research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-02-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, reasoning: 3 }, - limit: { context: 128000, output: 32768 }, - }, - sonar: { - id: "sonar", - name: "Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 4096 }, - }, - }, - }, - deepseek: { - id: "deepseek", - env: ["DEEPSEEK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.deepseek.com", - name: "DeepSeek", - doc: "https://api-docs.deepseek.com/quick_start/pricing", - models: { - "deepseek-chat": { - id: "deepseek-chat", - name: "DeepSeek Chat", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - family: "deepseek-thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, - limit: { context: 128000, output: 64000 }, - }, - }, - }, - llama: { - id: "llama", - env: ["LLAMA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.llama.com/compat/v1/", - name: "Llama", - doc: "https://llama.developer.meta.com/docs/models", - models: { - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cerebras-llama-4-maverick-17b-128e-instruct": { - id: "cerebras-llama-4-maverick-17b-128e-instruct", - name: "Cerebras-Llama-4-Maverick-17B-128E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-8b-instruct": { - id: "llama-3.3-8b-instruct", - name: "Llama-3.3-8B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cerebras-llama-4-scout-17b-16e-instruct": { - id: "cerebras-llama-4-scout-17b-16e-instruct", - name: "Cerebras-Llama-4-Scout-17B-16E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "groq-llama-4-maverick-17b-128e-instruct": { - id: "groq-llama-4-maverick-17b-128e-instruct", - name: "Groq-Llama-4-Maverick-17B-128E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-scout-17b-16e-instruct-fp8": { - id: "llama-4-scout-17b-16e-instruct-fp8", - name: "Llama-4-Scout-17B-16E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - }, - }, - openrouter: { - id: "openrouter", - env: ["OPENROUTER_API_KEY"], - npm: "@openrouter/ai-sdk-provider", - api: "https://openrouter.ai/api/v1", - name: "OpenRouter", - doc: "https://openrouter.ai/models", - models: { - "liquid/lfm-2.5-1.2b-instruct:free": { - id: "liquid/lfm-2.5-1.2b-instruct:free", - name: "LFM2.5-1.2B-Instruct (free)", - family: "liquid", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-20", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "liquid/lfm-2.5-1.2b-thinking:free": { - id: "liquid/lfm-2.5-1.2b-thinking:free", - name: "LFM2.5-1.2B-Thinking (free)", - family: "liquid", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-20", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek/deepseek-chat-v3.1": { - id: "deepseek/deepseek-chat-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-23", - last_updated: "2025-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek V3.2 Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.4 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-v3.1-terminus:exacto": { - id: "deepseek/deepseek-v3.1-terminus:exacto", - name: "DeepSeek V3.1 Terminus (exacto)", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-chat-v3-0324": { - id: "deepseek/deepseek-chat-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 8192 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "openrouter/free": { - id: "openrouter/free", - name: "Free Models Router", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-01", - last_updated: "2026-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, input: 200000, output: 8000 }, - }, - "arcee-ai/trinity-mini:free": { - id: "arcee-ai/trinity-mini:free", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/trinity-large-thinking": { - id: "arcee-ai/trinity-large-thinking", - name: "Trinity Large Thinking", - family: "trinity", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.85 }, - limit: { context: 262144, output: 80000 }, - }, - "arcee-ai/trinity-large-preview:free": { - id: "arcee-ai/trinity-large-preview:free", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { - id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", - name: "Uncensored (free)", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-07-09", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "bytedance-seed/seedream-4.5": { - id: "bytedance-seed/seedream-4.5", - name: "Seedream 4.5", - family: "seed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-23", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 4096 }, - }, - "black-forest-labs/flux.2-max": { - id: "black-forest-labs/flux.2-max", - name: "FLUX.2 Max", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-16", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 46864, output: 46864 }, - }, - "black-forest-labs/flux.2-flex": { - id: "black-forest-labs/flux.2-flex", - name: "FLUX.2 Flex", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-25", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 67344, output: 67344 }, - }, - "black-forest-labs/flux.2-pro": { - id: "black-forest-labs/flux.2-pro", - name: "FLUX.2 Pro", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-25", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 46864, output: 46864 }, - }, - "black-forest-labs/flux.2-klein-4b": { - id: "black-forest-labs/flux.2-klein-4b", - name: "FLUX.2 Klein 4B", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-14", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 40960, output: 40960 }, - }, - "nousresearch/hermes-3-llama-3.1-405b:free": { - id: "nousresearch/hermes-3-llama-3.1-405b:free", - name: "Hermes 3 405B Instruct (free)", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-4-405b": { - id: "nousresearch/hermes-4-405b", - name: "Hermes 4 405B", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-4-70b": { - id: "nousresearch/hermes-4-70b", - name: "Hermes 4 70B", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "stepfun/step-3.5-flash:free": { - id: "stepfun/step-3.5-flash:free", - name: "Step 3.5 Flash (free)", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Step 3.5 Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 256000 }, - }, - "mistralai/mistral-small-3.1-24b-instruct": { - id: "mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistralai/devstral-2512": { - id: "mistralai/devstral-2512", - name: "Devstral 2 2512", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Codestral 2508", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-small-2603": { - id: "mistralai/mistral-small-2603", - name: "Mistral Small 4", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/devstral-small-2505": { - id: "mistralai/devstral-small-2505", - name: "Devstral Small", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.12 }, - limit: { context: 128000, output: 128000 }, - }, - "mistralai/mistral-small-3.2-24b-instruct": { - id: "mistralai/mistral-small-3.2-24b-instruct", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 96000, output: 8192 }, - }, - "mistralai/devstral-medium-2507": { - id: "mistralai/devstral-medium-2507", - name: "Devstral Medium", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/devstral-small-2507": { - id: "mistralai/devstral-small-2507", - name: "Devstral Small 1.1", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - id: "meta-llama/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-3.2-3b-instruct:free": { - id: "meta-llama/llama-3.2-3b-instruct:free", - name: "Llama 3.2 3B Instruct (free)", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3.3-70b-instruct:free": { - id: "meta-llama/llama-3.3-70b-instruct:free", - name: "Llama 3.3 70B Instruct (free)", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "x-ai/grok-4.20-multi-agent-beta": { - id: "x-ai/grok-4.20-multi-agent-beta", - name: "Grok 4.20 Multi - Agent Beta", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, - limit: { context: 2000000, output: 30000 }, - status: "beta", - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-3-beta": { - id: "x-ai/grok-3-beta", - name: "Grok 3 Beta", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-3-mini": { - id: "x-ai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4.20-beta": { - id: "x-ai/grok-4.20-beta", - name: "Grok 4.20 Beta", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, - limit: { context: 2000000, output: 30000 }, - status: "beta", - }, - "x-ai/grok-3-mini-beta": { - id: "x-ai/grok-3-mini-beta", - name: "Grok 3 Mini Beta", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-3": { - id: "x-ai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 131072, output: 8192 }, - }, - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "Intellect 3", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/nemotron-3-nano-30b-a3b:free": { - id: "nvidia/nemotron-3-nano-30b-a3b:free", - name: "Nemotron 3 Nano 30B A3B (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-12-14", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "nvidia/nemotron-nano-9b-v2:free": { - id: "nvidia/nemotron-nano-9b-v2:free", - name: "Nemotron Nano 9B V2 (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-09-05", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "nvidia/nemotron-3-super-120b-a12b:free": { - id: "nvidia/nemotron-3-super-120b-a12b:free", - name: "Nemotron 3 Super (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "nvidia-nemotron-nano-9b-v2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-nano-12b-v2-vl:free": { - id: "nvidia/nemotron-nano-12b-v2-vl:free", - name: "Nemotron Nano 12B 2 VL (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-10-28", - last_updated: "2026-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-04", - last_updated: "2026-03-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - "inception/mercury": { - id: "inception/mercury", - name: "Mercury", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-26", - last_updated: "2025-06-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 32000 }, - }, - "inception/mercury-coder": { - id: "inception/mercury-coder", - name: "Mercury Coder", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-oss-120b:exacto": { - id: "openai/gpt-oss-120b:exacto", - name: "GPT OSS 120B (exacto)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.24 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b:free": { - id: "openai/gpt-oss-20b:free", - name: "gpt-oss-20b (free)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 7.5e-7, output: 0.0000045, cache_read: 7.5e-8 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4 Mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2e-7, output: 0.00000125, cache_read: 2e-8 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "GPT-5 Image", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 5, output: 10, cache_read: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "openai/gpt-oss-120b:free": { - id: "openai/gpt-oss-120b:free", - name: "gpt-oss-120b (free)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.28 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm-4.5-air:free": { - id: "z-ai/glm-4.5-air:free", - name: "GLM 4.5 Air (free)", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131000 }, - }, - "z-ai/glm-5.1": { - id: "z-ai/glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 202752, output: 131072 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.6:exacto": { - id: "z-ai/glm-4.6:exacto", - name: "GLM 4.6 (exacto)", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.9, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-5-turbo": { - id: "z-ai/glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.96, output: 3.2, cache_read: 0.192, cache_write: 0 }, - limit: { context: 202752, output: 131072 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "GLM 4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7-flash": { - id: "z-ai/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 65535 }, - }, - "sourceful/riverflow-v2-standard-preview": { - id: "sourceful/riverflow-v2-standard-preview", - name: "Riverflow V2 Standard Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "sourceful/riverflow-v2-fast-preview": { - id: "sourceful/riverflow-v2-fast-preview", - name: "Riverflow V2 Fast Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "sourceful/riverflow-v2-max-preview": { - id: "sourceful/riverflow-v2-max-preview", - name: "Riverflow V2 Max Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.15, cache_read: 0.28, cache_write: 1.15 }, - limit: { context: 196600, output: 118000 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax-01", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000000, output: 1000000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5:free": { - id: "minimax/minimax-m2.5:free", - name: "MiniMax M2.5 (free)", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m1": { - id: "minimax/minimax-m1", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3-coder:free": { - id: "qwen/qwen3-coder:free", - name: "Qwen3 Coder 480B A35B Instruct (free)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwen3.5-flash-02-23": { - id: "qwen/qwen3.5-flash-02-23", - name: "Qwen: Qwen3.5-Flash", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.065, output: 0.26 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3.6-plus": { - id: "qwen/qwen3.6-plus", - name: "Qwen3.6 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.325, output: 1.95 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen3-coder:exacto": { - id: "qwen/qwen3-coder:exacto", - name: "Qwen3 Coder (exacto)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 1.53 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - id: "qwen/qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.078, output: 0.312 }, - limit: { context: 262144, output: 81920 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - id: "qwen/qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen/qwen3-4b:free": { - id: "qwen/qwen3-4b:free", - name: "Qwen3 4B (free)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-30", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-next-80b-a3b-instruct:free": { - id: "qwen/qwen3-next-80b-a3b-instruct:free", - name: "Qwen3 Next 80B A3B Instruct (free)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-coder-flash": { - id: "qwen/qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 128000, output: 66536 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - id: "qwen/qwen-2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 65536 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwen3.5-plus-02-15": { - id: "qwen/qwen3.5-plus-02-15", - name: "Qwen3.5 Plus 2026-02-15", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-07-25": { - id: "qwen/qwen3-235b-a22b-07-25", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.85 }, - limit: { context: 262144, output: 131072 }, - }, - "google/gemini-2.5-pro-preview-05-06": { - id: "google/gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview-customtools": { - id: "google/gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-4b-it:free": { - id: "google/gemma-3-4b-it:free", - name: "Gemma 3 4B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-001": { - id: "google/gemini-2.0-flash-001", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Gemma 3n 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.25, - output: 1.5, - reasoning: 1.5, - cache_read: 0.025, - cache_write: 0.083, - input_audio: 0.5, - output_audio: 0.5, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3n-e4b-it:free": { - id: "google/gemma-3n-e4b-it:free", - name: "Gemma 3n 4B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1050000, output: 66000 }, - }, - "google/gemma-3n-e2b-it:free": { - id: "google/gemma-3n-e2b-it:free", - name: "Gemma 3n 2B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-9b-it": { - id: "google/gemma-2-9b-it", - name: "Gemma 2 9B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-28", - last_updated: "2024-06-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 8192, output: 8192 }, - }, - "google/gemma-4-31b-it": { - id: "google/gemma-4-31b-it", - name: "Gemma 4 31B", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.4 }, - limit: { context: 262144, output: 262144 }, - }, - "google/gemini-2.5-pro-preview-06-05": { - id: "google/gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Gemma 3 12B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemma-3-27b-it:free": { - id: "google/gemma-3-27b-it:free", - name: "Gemma 3 27B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-17", - last_updated: "2025-07-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-4-31b-it:free": { - id: "google/gemma-4-31b-it:free", - name: "Gemma 4 31B (free)", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "google/gemma-3-12b-it:free": { - id: "google/gemma-3-12b-it:free", - name: "Gemma 3 12B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "google/gemma-3-4b-it": { - id: "google/gemma-3-4b-it", - name: "Gemma 3 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01703, output: 0.06815 }, - limit: { context: 96000, output: 96000 }, - }, - "google/gemini-2.5-flash-preview-09-2025": { - id: "google/gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.031 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 96000, output: 96000 }, - }, - "google/gemma-4-26b-a4b-it": { - id: "google/gemma-4-26b-a4b-it", - name: "Gemma 4 26B A4B", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-03", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 262144, output: 262144 }, - }, - "google/gemma-4-26b-a4b-it:free": { - id: "google/gemma-4-26b-a4b-it:free", - name: "Gemma 4 26B A4B (free)", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-03", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/kimi-k2-0905:exacto": { - id: "moonshotai/kimi-k2-0905:exacto", - name: "Kimi K2 Instruct 0905 (exacto)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/kimi-k2:free": { - id: "moonshotai/kimi-k2:free", - name: "Kimi K2 (free)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32800, output: 32800 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 128000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "xiaomi/mimo-v2-omni": { - id: "xiaomi/mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.08 }, - limit: { context: 262144, output: 65536 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, cache_read: 0.2 }, - limit: { context: 1048576, output: 65536 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-14", - last_updated: "2025-12-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 262144, output: 65536 }, - }, - }, - }, - "fireworks-ai": { - id: "fireworks-ai", - env: ["FIREWORKS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.fireworks.ai/inference/v1/", - name: "Fireworks AI", - doc: "https://fireworks.ai/docs/", - models: { - "accounts/fireworks/models/glm-5p1": { - id: "accounts/fireworks/models/glm-5p1", - name: "GLM 5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 202800, output: 131072 }, - }, - "accounts/fireworks/models/deepseek-v3p2": { - id: "accounts/fireworks/models/deepseek-v3p2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68, cache_read: 0.28 }, - limit: { context: 160000, output: 160000 }, - }, - "accounts/fireworks/models/minimax-m2p5": { - id: "accounts/fireworks/models/minimax-m2p5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 196608, output: 196608 }, - }, - "accounts/fireworks/models/glm-4p5-air": { - id: "accounts/fireworks/models/glm-4p5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 131072, output: 131072 }, - }, - "accounts/fireworks/models/glm-5": { - id: "accounts/fireworks/models/glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.5 }, - limit: { context: 202752, output: 131072 }, - }, - "accounts/fireworks/models/deepseek-v3p1": { - id: "accounts/fireworks/models/deepseek-v3p1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 163840, output: 163840 }, - }, - "accounts/fireworks/models/kimi-k2-instruct": { - id: "accounts/fireworks/models/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 128000, output: 16384 }, - }, - "accounts/fireworks/models/qwen3p6-plus": { - id: "accounts/fireworks/models/qwen3p6-plus", - name: "Qwen 3.6 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-04", - last_updated: "2026-04-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.1 }, - limit: { context: 128000, output: 8192 }, - }, - "accounts/fireworks/models/minimax-m2p1": { - id: "accounts/fireworks/models/minimax-m2p1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 200000, output: 200000 }, - }, - "accounts/fireworks/models/glm-4p7": { - id: "accounts/fireworks/models/glm-4p7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.3 }, - limit: { context: 198000, output: 198000 }, - }, - "accounts/fireworks/models/glm-4p5": { - id: "accounts/fireworks/models/glm-4p5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 131072, output: 131072 }, - }, - "accounts/fireworks/models/kimi-k2p5": { - id: "accounts/fireworks/models/kimi-k2p5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/gpt-oss-20b": { - id: "accounts/fireworks/models/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "accounts/fireworks/models/gpt-oss-120b": { - id: "accounts/fireworks/models/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "accounts/fireworks/models/kimi-k2-thinking": { - id: "accounts/fireworks/models/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.3 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/routers/kimi-k2p5-turbo": { - id: "accounts/fireworks/routers/kimi-k2p5-turbo", - name: "Kimi K2.5 Turbo (firepass)", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 256000, output: 256000 }, - }, - }, - }, - "kimi-for-coding": { - id: "kimi-for-coding", - env: ["KIMI_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.kimi.com/coding/v1", - name: "Kimi For Coding", - doc: "https://www.kimi.com/coding/docs/en/third-party-agents.html", - models: { - k2p5: { - id: "k2p5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - }, - }, - moark: { - id: "moark", - env: ["MOARK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://moark.com/v1", - name: "Moark", - doc: "https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90", - models: { - "GLM-4.7": { - id: "GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.5, output: 14 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.1, output: 8.4 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "opencode-go": { - id: "opencode-go", - env: ["OPENCODE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://opencode.ai/zen/go/v1", - name: "OpenCode Go", - doc: "https://opencode.ai/docs/zen", - models: { - "minimax-m2.7": { - id: "minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax-m2.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 65536 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 204800, output: 131072 }, - }, - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo V2 Omni", - family: "mimo-omni", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.08 }, - limit: { context: 262144, output: 64000 }, - }, - "glm-5.1": { - id: "glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax-m2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo V2 Pro", - family: "mimo-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } }, - limit: { context: 1048576, output: 64000 }, - }, - }, - }, - "io-net": { - id: "io-net", - env: ["IOINTELLIGENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.intelligence.io.solutions/api/v1", - name: "IO.NET", - doc: "https://io.net/docs/guides/intelligence/io-intelligence", - models: { - "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar": { - id: "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", - name: "Qwen 3 Coder 480B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.95, cache_read: 0.11, cache_write: 0.44 }, - limit: { context: 106000, output: 4096 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen 3 Next 80B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-10", - last_updated: "2025-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.8, cache_read: 0.05, cache_write: 0.2 }, - limit: { context: 262144, output: 4096 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen 3 235B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6, cache_read: 0.055, cache_write: 0.22 }, - limit: { context: 262144, output: 4096 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen 2.5 VL 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, - limit: { context: 32000, output: 4096 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-15", - last_updated: "2024-11-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.75, cache_read: 0.2, cache_write: 0.8 }, - limit: { context: 200000, output: 4096 }, - }, - "mistralai/Magistral-Small-2506": { - id: "mistralai/Magistral-Small-2506", - name: "Magistral Small 2506", - family: "magistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Mistral-Large-Instruct-2411": { - id: "mistralai/Mistral-Large-Instruct-2411", - name: "Mistral Large Instruct 2411", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 1, cache_write: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04, cache_read: 0.01, cache_write: 0.04 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Devstral-Small-2505": { - id: "mistralai/Devstral-Small-2505", - name: "Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.38, cache_read: 0.065, cache_write: 0.26 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B 128E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6, cache_read: 0.075, cache_write: 0.3 }, - limit: { context: 430000, output: 4096 }, - }, - "meta-llama/Llama-3.2-90B-Vision-Instruct": { - id: "meta-llama/Llama-3.2-90B-Vision-Instruct", - name: "Llama 3.2 90B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.4, cache_read: 0.175, cache_write: 0.7 }, - limit: { context: 16000, output: 4096 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 8.75, cache_read: 1, cache_write: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT-OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14, cache_read: 0.015, cache_write: 0.06 }, - limit: { context: 64000, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.4, cache_read: 0.02, cache_write: 0.08 }, - limit: { context: 131072, output: 4096 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.25, cache_read: 0.275, cache_write: 1.1 }, - limit: { context: 32768, output: 4096 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-09-05", - last_updated: "2024-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39, output: 1.9, cache_read: 0.195, cache_write: 0.78 }, - limit: { context: 32768, output: 4096 }, - }, - }, - }, - "alibaba-cn": { - id: "alibaba-cn", - env: ["DASHSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://dashscope.aliyuncs.com/compatible-mode/v1", - name: "Alibaba (China)", - doc: "https://www.alibabacloud.com/help/en/model-studio/models", - models: { - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen-plus-character": { - id: "qwen-plus-character", - name: "Qwen Plus Character", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287 }, - limit: { context: 32768, output: 4096 }, - }, - "qwen2-5-math-7b-instruct": { - id: "qwen2-5-math-7b-instruct", - name: "Qwen2.5-Math 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.287 }, - limit: { context: 4096, output: 3072 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Moonshot Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: false, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.411 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen-doc-turbo": { - id: "qwen-doc-turbo", - name: "Qwen Doc Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.087, output: 0.144 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-ocr": { - id: "qwen-vl-ocr", - name: "Qwen-VL OCR", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-28", - last_updated: "2025-04-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.717, output: 0.717 }, - limit: { context: 34096, output: 4096 }, - }, - "qwen-omni-turbo-realtime": { - id: "qwen-omni-turbo-realtime", - name: "Qwen-Omni Turbo Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen3-8b": { - id: "qwen3-8b", - name: "Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.287, reasoning: 0.717 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 2.58, reasoning: 2.58 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-math-turbo": { - id: "qwen-math-turbo", - name: "Qwen Math Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 4096, output: 3072 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.574 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen-VL Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-08-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287 }, - limit: { context: 131072, output: 8192 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.15 }, - limit: { context: 202752, output: 16384 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, - limit: { context: 131072, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.345, output: 1.377 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287, reasoning: 1.147 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen-omni-turbo": { - id: "qwen-omni-turbo", - name: "Qwen-Omni Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-19", - last_updated: "2025-03-26", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.022, output: 0.216 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-vl-7b-instruct": { - id: "qwen2-5-vl-7b-instruct", - name: "Qwen2.5-VL 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.717 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3.5-flash": { - id: "qwen3.5-flash", - name: "Qwen3.5 Flash", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-23", - last_updated: "2026-02-23", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.172, output: 1.72, reasoning: 1.72 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3.6-plus": { - id: "qwen3.6-plus", - name: "Qwen3.6 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.861, output: 3.441 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-omni-flash": { - id: "qwen3-omni-flash", - name: "Qwen3-Omni Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 65536, output: 16384 }, - }, - "deepseek-v3-1": { - id: "deepseek-v3-1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 131072, output: 65536 }, - }, - "qwen2-5-72b-instruct": { - id: "qwen2-5-72b-instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3-VL 235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.286705, output: 1.14682, reasoning: 2.867051 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-math-plus": { - id: "qwen-math-plus", - name: "Qwen Math Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-08-16", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 4096, output: 3072 }, - }, - "qwen2-5-coder-32b-instruct": { - id: "qwen2-5-coder-32b-instruct", - name: "Qwen2.5-Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-asr-flash": { - id: "qwen3-asr-flash", - name: "Qwen3-ASR Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.032, output: 0.032 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen-deep-research": { - id: "qwen-deep-research", - name: "Qwen Deep Research", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.742, output: 23.367 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next 80B-A3B (Thinking)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 1.434 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-mt-plus": { - id: "qwen-mt-plus", - name: "Qwen-MT Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.259, output: 0.775 }, - limit: { context: 16384, output: 8192 }, - }, - "deepseek-r1-distill-qwen-32b": { - id: "deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen-VL Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.574 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.144, output: 0.574 }, - limit: { context: 1000000, output: 65536 }, - }, - "deepseek-r1-distill-qwen-7b": { - id: "deepseek-r1-distill-qwen-7b", - name: "DeepSeek R1 Distill Qwen 7B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.072, output: 0.144 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen2-5-7b-instruct": { - id: "qwen2-5-7b-instruct", - name: "Qwen2.5 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.144 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-14b-instruct": { - id: "qwen2-5-14b-instruct", - name: "Qwen2.5 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.431 }, - limit: { context: 131072, output: 8192 }, - }, - "tongyi-intent-detect-v3": { - id: "tongyi-intent-detect-v3", - name: "Tongyi Intent Detect V3", - family: "yi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.058, output: 0.144 }, - limit: { context: 8192, output: 1024 }, - }, - "qwq-32b": { - id: "qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "moonshot-kimi-k2-instruct": { - id: "moonshot-kimi-k2-instruct", - name: "Moonshot Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-32b-instruct": { - id: "qwen2-5-32b-instruct", - name: "Qwen2.5 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next 80B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.574 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-omni-flash-realtime": { - id: "qwen3-omni-flash-realtime", - name: "Qwen3-Omni Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen3-vl-30b-a3b": { - id: "qwen3-vl-30b-a3b", - name: "Qwen3-VL 30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.108, output: 0.431, reasoning: 1.076 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.143353, output: 1.433525, reasoning: 4.300576 }, - limit: { context: 262144, output: 32768 }, - }, - "deepseek-v3-2-exp": { - id: "deepseek-v3-2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.431 }, - limit: { context: 131072, output: 65536 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3-Coder 480B-A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.861, output: 3.441 }, - limit: { context: 262144, output: 65536 }, - }, - "deepseek-r1-distill-qwen-1-5b": { - id: "deepseek-r1-distill-qwen-1-5b", - name: "DeepSeek R1 Distill Qwen 1.5B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.216, output: 0.861 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen2-5-coder-7b-instruct": { - id: "qwen2-5-coder-7b-instruct", - name: "Qwen2.5-Coder 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.287 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11-01", - last_updated: "2025-07-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.044, output: 0.087, reasoning: 0.431 }, - limit: { context: 1000000, output: 16384 }, - }, - "qwen-mt-turbo": { - id: "qwen-mt-turbo", - name: "Qwen-MT Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.101, output: 0.28 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen2-5-math-72b-instruct": { - id: "qwen2-5-math-72b-instruct", - name: "Qwen2.5-Math 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 4096, output: 3072 }, - }, - "qwen2-5-omni-7b": { - id: "qwen2-5-omni-7b", - name: "Qwen2.5-Omni 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.087, output: 0.345, input_audio: 5.448 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.573, output: 3.44, reasoning: 3.44 }, - limit: { context: 1000000, output: 65536 }, - }, - "deepseek-r1-distill-qwen-14b": { - id: "deepseek-r1-distill-qwen-14b", - name: "DeepSeek R1 Distill Qwen 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.144, output: 0.431 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5-VL 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.294, output: 6.881 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 1.147 }, - limit: { context: 65536, output: 8192 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 16384 }, - }, - "qvq-max": { - id: "qvq-max", - name: "QVQ Max", - family: "qvq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.147, output: 4.588 }, - limit: { context: 131072, output: 8192 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Moonshot Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen3-14b": { - id: "qwen3-14b", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.574, reasoning: 1.434 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1-distill-llama-8b": { - id: "deepseek-r1-distill-llama-8b", - name: "DeepSeek R1 Distill Llama 8B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen-long": { - id: "qwen-long", - name: "Qwen Long", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.072, output: 0.287 }, - limit: { context: 10000000, output: 8192 }, - }, - "kimi/kimi-k2.5": { - id: "kimi/kimi-k2.5", - name: "kimi/kimi-k2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "MiniMax/MiniMax-M2.7": { - id: "MiniMax/MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "siliconflow/deepseek-v3-0324": { - id: "siliconflow/deepseek-v3-0324", - name: "siliconflow/deepseek-v3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 163840, output: 163840 }, - }, - "siliconflow/deepseek-v3.2": { - id: "siliconflow/deepseek-v3.2", - name: "siliconflow/deepseek-v3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 163840, output: 65536 }, - }, - "siliconflow/deepseek-r1-0528": { - id: "siliconflow/deepseek-r1-0528", - name: "siliconflow/deepseek-r1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 163840, output: 32768 }, - }, - "siliconflow/deepseek-v3.1-terminus": { - id: "siliconflow/deepseek-v3.1-terminus", - name: "siliconflow/deepseek-v3.1-terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 163840, output: 65536 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1048576, output: 65536 }, - }, - }, - }, - "minimax-cn-coding-plan": { - id: "minimax-cn-coding-plan", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimaxi.com/anthropic/v1", - name: "MiniMax Coding Plan (minimaxi.com)", - doc: "https://platform.minimaxi.com/docs/coding-plan/intro", - models: { - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - jiekou: { - id: "jiekou", - env: ["JIEKOU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.jiekou.ai/openai", - name: "Jiekou.AI", - doc: "https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "gpt-5.1-codex-max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "grok-4-1-fast-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "claude-opus-4-5-20251101", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.5, output: 22.5 }, - limit: { context: 200000, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "gemini-2.5-flash-lite-preview-09-2025", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "gpt-5.2-pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 18.9, output: 151.2 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.225, output: 1.8 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "gpt-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045, output: 0.36 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "gemini-3-pro-preview", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 10.8 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "gemini-2.5-flash-preview-05-20", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.135, output: 3.15 }, - limit: { context: 1048576, output: 200000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "claude-sonnet-4-5-20250929", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 1048576, output: 65535 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "grok-4-1-fast-non-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "gpt-5.2", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.575, output: 12.6 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "gemini-2.5-pro-preview-06-05", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 1048576, output: 200000 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "gemini-2.5-flash-lite-preview-06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "video", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "gpt-5.2-codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 2.25 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "gpt-5.1-codex-mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.225, output: 1.8 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "grok-code-fast-1", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 1.35 }, - limit: { context: 256000, output: 256000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "gpt-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "grok-4-fast-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 131072, output: 131072 }, - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "grok-4-0709", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 256000, output: 8192 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "gpt-5-codex", - family: "gpt-codex", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "claude-opus-4-1-20250805", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 67.5 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "claude-haiku-4-5-20251001", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 4.5 }, - limit: { context: 20000, output: 64000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "claude-sonnet-4-20250514", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "claude-opus-4-6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - o3: { - id: "o3", - name: "o3", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "gpt-5-pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 108 }, - limit: { context: 400000, output: 272000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "gemini-2.5-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "gpt-5-chat-latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "claude-opus-4-20250514", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 67.5 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "gpt-5.1-codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "grok-4-fast-non-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.14 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 163840, output: 32768 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.5v": { - id: "zai-org/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 65536, output: 16384 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 128000 }, - }, - "minimaxai/minimax-m1-80k": { - id: "minimaxai/minimax-m1-80k", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "xiaomimimo/mimo-v2-flash": { - id: "xiaomimimo/mimo-v2-flash", - name: "XiaomiMiMo/MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "ERNIE 4.5 VL 424B A47B", - family: "ernie", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-300b-a47b-paddle": { - id: "baidu/ernie-4.5-300b-a47b-paddle", - name: "ERNIE 4.5 300B A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen/qwen3-235b-a22b-instruct-2507": { - id: "qwen/qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.8 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen/qwen3-32b-fp8": { - id: "qwen/qwen3-32b-fp8", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22b Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-fp8": { - id: "qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "qwen/qwen3-coder-next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.2 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-fp8": { - id: "qwen/qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - bailing: { - id: "bailing", - env: ["BAILING_API_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.tbox.cn/api/llm/v1/chat/completions", - name: "Bailing", - doc: "https://alipaytbox.yuque.com/sxs0ba/ling/intro", - models: { - "Ring-1T": { - id: "Ring-1T", - name: "Ring-1T", - family: "ring", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.29 }, - limit: { context: 128000, output: 32000 }, - }, - "Ling-1T": { - id: "Ling-1T", - name: "Ling-1T", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.29 }, - limit: { context: 128000, output: 32000 }, - }, - }, - }, - iflowcn: { - id: "iflowcn", - env: ["IFLOW_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://apis.iflow.cn/v1", - name: "iFlow", - doc: "https://platform.iflow.cn/en/docs", - models: { - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3-Coder-Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3-Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-235b-a22b-instruct": { - id: "qwen3-235b-a22b-instruct", - name: "Qwen3-235B-A22B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3-235B-A22B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "kimi-k2-0905": { - id: "kimi-k2-0905", - name: "Kimi-K2-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL-Plus", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2-Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 64000 }, - }, - "qwen3-235b": { - id: "qwen3-235b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi-K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 64000 }, - }, - "qwen3-max-preview": { - id: "qwen3-max-preview", - name: "Qwen3-Max-Preview", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - }, - }, - v0: { - id: "v0", - env: ["V0_API_KEY"], - npm: "@ai-sdk/vercel", - name: "v0", - doc: "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", - models: { - "v0-1.5-lg": { - id: "v0-1.5-lg", - name: "v0-1.5-lg", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 512000, output: 32000 }, - }, - "v0-1.0-md": { - id: "v0-1.0-md", - name: "v0-1.0-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "v0-1.5-md": { - id: "v0-1.5-md", - name: "v0-1.5-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - }, - }, - huggingface: { - id: "huggingface", - env: ["HF_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://router.huggingface.co/v1", - name: "Hugging Face", - doc: "https://huggingface.co/docs/inference-providers", - models: { - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-01", - last_updated: "2026-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 32768 }, - }, - "Qwen/Qwen3-Coder-Next": { - id: "Qwen/Qwen3-Coder-Next", - name: "Qwen3-Coder-Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen 3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 4096 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Embedding-4B": { - id: "Qwen/Qwen3-Embedding-4B", - name: "Qwen 3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 2048 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 262144, output: 66536 }, - }, - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-5.1": { - id: "zai-org/GLM-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-03", - last_updated: "2026-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131072 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 4096 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 5 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.4 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi-K2-Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - zenmux: { - id: "zenmux", - env: ["ZENMUX_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://zenmux.ai/api/v1", - name: "ZenMux", - doc: "https://docs.zenmux.ai", - models: { - "deepseek/deepseek-chat": { - id: "deepseek/deepseek-chat", - name: "DeepSeek-V3.2 (Non-thinking Mode)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek-V3.2-Exp", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 0.33 }, - limit: { context: 163000, output: 64000 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-05", - last_updated: "2025-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.43 }, - limit: { context: 128000, output: 64000 }, - }, - "inclusionai/ring-1t": { - id: "inclusionai/ring-1t", - name: "Ring-1T", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-12", - last_updated: "2025-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, - limit: { context: 128000, output: 64000 }, - }, - "inclusionai/ling-1t": { - id: "inclusionai/ling-1t", - name: "Ling-1T", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-09", - last_updated: "2025-10-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, - limit: { context: 128000, output: 64000 }, - }, - "stepfun/step-3.5-flash-free": { - id: "stepfun/step-3.5-flash-free", - name: "Step 3.5 Flash (Free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3": { - id: "stepfun/step-3", - name: "Step-3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 65536, output: 64000 }, - }, - "kuaishou/kat-coder-pro-v2": { - id: "kuaishou/kat-coder-pro-v2", - name: "KAT-Coder-Pro-V2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-30", - last_updated: "2026-03-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 80000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4.1-fast-non-reasoning": { - id: "x-ai/grok-4.1-fast-non-reasoning", - name: "Grok 4.1 Fast Non Reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4.2-fast": { - id: "x-ai/grok-4.2-fast", - name: "Grok 4.2 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 9 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4.2-fast-non-reasoning": { - id: "x-ai/grok-4.2-fast-non-reasoning", - name: "Grok 4.2 Fast Non Reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 9 }, - limit: { context: 2000000, output: 30000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "GPT-5.3 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16380 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01-01", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.17 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5 }, - limit: { context: 400000, output: 128000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["pdf", "image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 128000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4 Nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25 }, - limit: { context: 400000, output: 128000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01-01", - release_date: "2026-01-15", - last_updated: "2026-01-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.17 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 45, output: 225 }, - limit: { context: 1050000, output: 128000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.75, output: 18.75 }, - limit: { context: 1050000, output: 128000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, - }, - "z-ai/glm-4.7-flash-free": { - id: "z-ai/glm-4.7-flash-free", - name: "GLM 4.7 Flash (Free)", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-5v-turbo": { - id: "z-ai/glm-5v-turbo", - name: "GLM 5V Turbo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.726, output: 3.1946, cache_read: 0.1743 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.14, cache_read: 0.06 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 2.6, cache_read: 0.14 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7-flashx": { - id: "z-ai/glm-4.7-flashx", - name: "GLM 4.7 FlashX", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.42, cache_read: 0.01 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.6v-flash-free": { - id: "z-ai/glm-4.6v-flash-free", - name: "GLM 4.6V Flash (Free)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-5.1": { - id: "z-ai/glm-5.1", - name: "GLM-5.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-03", - last_updated: "2026-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8781, output: 3.5126, cache_read: 0.1903 }, - limit: { context: 200000, output: 131072 }, - }, - "z-ai/glm-4.6v-flash": { - id: "z-ai/glm-4.6v-flash", - name: "GLM 4.6V FlashX", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.21, cache_read: 0.0043 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, - limit: { context: 128000, output: 64000 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.56, cache_read: 0.02 }, - limit: { context: 128000, output: 64000 }, - }, - "z-ai/glm-5-turbo": { - id: "z-ai/glm-5-turbo", - name: "GLM 5 Turbo", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.88, output: 3.48 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.6v": { - id: "z-ai/glm-4.6v", - name: "GLM 4.6V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.42, cache_read: 0.03 }, - limit: { context: 200000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-code": { - id: "volcengine/doubao-seed-2.0-code", - name: "Doubao Seed 2.0 Code", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 4.48 }, - limit: { context: 256000, output: 32000 }, - }, - "volcengine/doubao-seed-code": { - id: "volcengine/doubao-seed-code", - name: "Doubao-Seed-Code", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-11", - last_updated: "2025-11-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.12, cache_read: 0.03 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-mini": { - id: "volcengine/doubao-seed-2.0-mini", - name: "Doubao-Seed-2.0-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.28, cache_read: 0.01, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-lite": { - id: "volcengine/doubao-seed-2.0-lite", - name: "Doubao-Seed-2.0-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.51, cache_read: 0.02, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-1.8": { - id: "volcengine/doubao-seed-1.8", - name: "Doubao-Seed-1.8", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.28, cache_read: 0.02, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-pro": { - id: "volcengine/doubao-seed-2.0-pro", - name: "Doubao-Seed-2.0-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 2.24, cache_read: 0.09, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "baidu/ernie-5.0-thinking-preview": { - id: "baidu/ernie-5.0-thinking-preview", - name: "ERNIE 5.0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.84, output: 3.37 }, - limit: { context: 128000, output: 64000 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3055, output: 1.2219 }, - limit: { context: 204800, output: 131070 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "minimax/minimax-m2.7-highspeed": { - id: "minimax/minimax-m2.7-highspeed", - name: "MiniMax M2.7 highspeed", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.611, output: 2.4439 }, - limit: { context: 204800, output: 131070 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "minimax/minimax-m2.5-lightning": { - id: "minimax/minimax-m2.5-lightning", - name: "MiniMax M2.5 highspeed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4.8, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "qwen/qwen3-coder-plus": { - id: "qwen/qwen3-coder-plus", - name: "Qwen3-Coder-Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 1000000, output: 64000 }, - }, - "qwen/qwen3.5-flash": { - id: "qwen/qwen3.5-flash", - name: "Qwen3.5 Flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1020000, output: 1020000 }, - }, - "qwen/qwen3.6-plus": { - id: "qwen/qwen3.6-plus", - name: "Qwen3.6-Plus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-30", - last_updated: "2026-03-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - cache_write: 0.625, - context_over_200k: { input: 2, output: 6, cache_read: 0.2, cache_write: 2.5 }, - }, - limit: { context: 1000000, output: 64000 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3-Max-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen/qwen3.5-plus": { - id: "qwen/qwen3.5-plus", - name: "Qwen3.5 Plus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4.8 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 1050000, output: 65530 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-19", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "pdf", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["pdf", "image", "text", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.07, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "sapiens-ai/agnes-1.5-lite": { - id: "sapiens-ai/agnes-1.5-lite", - name: "Agnes 1.5 Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-26", - last_updated: "2026-03-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.6 }, - limit: { context: 256000, output: 256000 }, - }, - "sapiens-ai/agnes-1.5-pro": { - id: "sapiens-ai/agnes-1.5-pro", - name: "Agnes 1.5 Pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-21", - last_updated: "2026-03-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.16, output: 0.8 }, - limit: { context: 256000, output: 256000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: false, - knowledge: "2025-01-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 3.02, cache_read: 0.1 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-thinking-turbo": { - id: "moonshotai/kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["pdf", "image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2024-11-04", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, - }, - "xiaomi/mimo-v2-omni": { - id: "xiaomi/mimo-v2-omni", - name: "MiMo V2 Omni", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 265000, output: 265000 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo V2 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 4.5 }, - limit: { context: 1000000, output: 256000 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 262000, output: 64000 }, - }, - }, - }, - upstage: { - id: "upstage", - env: ["UPSTAGE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.upstage.ai/v1/solar", - name: "Upstage", - doc: "https://developers.upstage.ai/docs/apis/chat", - models: { - "solar-pro2": { - id: "solar-pro2", - name: "solar-pro2", - family: "solar-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 65536, output: 8192 }, - }, - "solar-mini": { - id: "solar-mini", - name: "solar-mini", - family: "solar-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-06-12", - last_updated: "2025-04-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 4096 }, - }, - "solar-pro3": { - id: "solar-pro3", - name: "solar-pro3", - family: "solar-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 131072, output: 8192 }, - }, - }, - }, - "novita-ai": { - id: "novita-ai", - env: ["NOVITA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.novita.ai/openai", - name: "NovitaAI", - doc: "https://novita.ai/docs/guides/introduction", - models: { - "deepseek/deepseek-r1-turbo": { - id: "deepseek/deepseek-r1-turbo", - name: "DeepSeek R1 (Turbo)\t", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.12, cache_read: 0.135 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-ocr-2": { - id: "deepseek/deepseek-ocr-2", - name: "deepseek/deepseek-ocr-2", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-ocr": { - id: "deepseek/deepseek-ocr", - name: "DeepSeek-OCR", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-10-24", - last_updated: "2025-10-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill LLama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-prover-v2-671b": { - id: "deepseek/deepseek-prover-v2-671b", - name: "Deepseek Prover V2 671B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 160000, output: 160000 }, - }, - "deepseek/deepseek-r1-0528-qwen3-8b": { - id: "deepseek/deepseek-r1-0528-qwen3-8b", - name: "DeepSeek R1 0528 Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-05-29", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.09 }, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "Deepseek V3.2 Exp", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1, cache_read: 0.135 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "Deepseek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.269, output: 0.4, cache_read: 0.1345 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-v3-turbo": { - id: "deepseek/deepseek-v3-turbo", - name: "DeepSeek V3 (Turbo)\t", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.3 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5, cache_read: 0.35 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "Deepseek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1, cache_read: 0.135 }, - limit: { context: 131072, output: 32768 }, - }, - "paddlepaddle/paddleocr-vl": { - id: "paddlepaddle/paddleocr-vl", - name: "PaddleOCR-VL", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 16384, output: 16384 }, - }, - "nousresearch/hermes-2-pro-llama-3-8b": { - id: "nousresearch/hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131072 }, - }, - "zai-org/glm-5.1": { - id: "zai-org/glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.5-air": { - id: "zai-org/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-10-13", - last_updated: "2025-10-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.85 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.5v": { - id: "zai-org/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 65536, output: 16384 }, - }, - "zai-org/glm-4.6": { - id: "zai-org/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.6v": { - id: "zai-org/glm-4.6v", - name: "GLM 4.6V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9, cache_read: 0.055 }, - limit: { context: 131072, output: 32768 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/autoglm-phone-9b-multilingual": { - id: "zai-org/autoglm-phone-9b-multilingual", - name: "AutoGLM-Phone-9B-Multilingual", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-12-10", - last_updated: "2025-12-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.035, output: 0.138 }, - limit: { context: 65536, output: 65536 }, - }, - "mistralai/mistral-nemo": { - id: "mistralai/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-07-30", - last_updated: "2024-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.17 }, - limit: { context: 60288, output: 16000 }, - }, - "baichuan/baichuan-m2-32b": { - id: "baichuan/baichuan-m2-32b", - name: "baichuan-m2-32b", - family: "baichuan", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-12", - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - id: "meta-llama/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-06", - last_updated: "2025-04-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.59 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-07", - last_updated: "2024-12-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.135, output: 0.4 }, - limit: { context: 131072, output: 120000 }, - }, - "meta-llama/llama-3-8b-instruct": { - id: "meta-llama/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 8192, output: 8192 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 16384, output: 16384 }, - }, - "meta-llama/llama-3-70b-instruct": { - id: "meta-llama/llama-3-70b-instruct", - name: "Llama3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "meta-llama/llama-4-maverick-17b-128e-instruct-fp8": { - id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-06", - last_updated: "2025-04-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 1048576, output: 8192 }, - }, - "gryphe/mythomax-l2-13b": { - id: "gryphe/mythomax-l2-13b", - name: "Mythomax L2 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.09 }, - limit: { context: 4096, output: 3200 }, - }, - "sao10k/l31-70b-euryale-v2.2": { - id: "sao10k/l31-70b-euryale-v2.2", - name: "L31 70B Euryale V2.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3-70b-euryale-v2.1": { - id: "sao10k/l3-70b-euryale-v2.1", - name: "L3 70B Euryale V2.1\t", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-06-18", - last_updated: "2024-06-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/L3-8B-Stheno-v3.2": { - id: "sao10k/L3-8B-Stheno-v3.2", - name: "L3 8B Stheno V3.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 8192, output: 32000 }, - }, - "sao10k/l3-8b-lunaris": { - id: "sao10k/l3-8b-lunaris", - name: "Sao10k L3 8B Lunaris\t", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2024-11-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 8192, output: 8192 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "Wizardlm 2 8x22B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-24", - last_updated: "2024-04-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 0.62 }, - limit: { context: 65535, output: 8000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "OpenAI: GPT OSS 20B", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 131072, output: 32768 }, - }, - "minimaxai/minimax-m1-80k": { - id: "minimaxai/minimax-m1-80k", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "xiaomimimo/mimo-v2-flash": { - id: "xiaomimimo/mimo-v2-flash", - name: "XiaomiMiMo/MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.3 }, - limit: { context: 262144, output: 32000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b-thinking": { - id: "baidu/ernie-4.5-vl-28b-a3b-thinking", - name: "ERNIE-4.5-VL-28B-A3B-Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 0.39 }, - limit: { context: 131072, output: 65536 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "ERNIE 4.5 VL 424B A47B", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-21B-a3b": { - id: "baidu/ernie-4.5-21B-a3b", - name: "ERNIE 4.5 21B A3B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 120000, output: 8000 }, - }, - "baidu/ernie-4.5-300b-a47b-paddle": { - id: "baidu/ernie-4.5-300b-a47b-paddle", - name: "ERNIE 4.5 300B A47B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "baidu/ernie-4.5-21B-a3b-thinking": { - id: "baidu/ernie-4.5-21B-a3b-thinking", - name: "ERNIE-4.5-21B-A3B-Thinking", - family: "ernie", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131072, output: 65536 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "ERNIE 4.5 VL 28B A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 5.6 }, - limit: { context: 30000, output: 8000 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax-m2.7", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131100 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "MiniMax M2.5 Highspeed", - family: "minimax-m2.5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4, cache_read: 0.03 }, - limit: { context: 204800, output: 131100 }, - }, - "qwen/qwen2.5-7b-instruct": { - id: "qwen/qwen2.5-7b-instruct", - name: "Qwen2.5 7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 32000, output: 32000 }, - }, - "qwen/qwen3.5-122b-a10b": { - id: "qwen/qwen3.5-122b-a10b", - name: "Qwen3.5-122B-A10B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 3.2 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3.5-27b": { - id: "qwen/qwen3.5-27b", - name: "Qwen3.5-27B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.4 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-instruct-2507": { - id: "qwen/qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.58 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen/qwen3-omni-30b-a3b-instruct": { - id: "qwen/qwen3-omni-30b-a3b-instruct", - name: "Qwen3 Omni 30B A3B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "video", "audio", "image"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 64000 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-thinking": { - id: "qwen/qwen3-vl-235b-a22b-thinking", - name: "Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.98, output: 3.95 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-30b-a3b-thinking": { - id: "qwen/qwen3-vl-30b-a3b-thinking", - name: "qwen/qwen3-vl-30b-a3b-thinking", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-omni-30b-a3b-thinking": { - id: "qwen/qwen3-omni-30b-a3b-thinking", - name: "Qwen3 Omni 30B A3B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "audio", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen/qwen3-vl-8b-instruct": { - id: "qwen/qwen3-vl-8b-instruct", - name: "qwen/qwen3-vl-8b-instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-17", - last_updated: "2025-10-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.11, output: 8.45 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-32b-fp8": { - id: "qwen/qwen3-32b-fp8", - name: "Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-4b-fp8": { - id: "qwen/qwen3-4b-fp8", - name: "Qwen3 4B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 128000, output: 20000 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22b Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-mt-plus": { - id: "qwen/qwen-mt-plus", - name: "Qwen MT Plus", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-03", - last_updated: "2025-09-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-30b-a3b-fp8": { - id: "qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.3 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-vl-30b-a3b-instruct": { - id: "qwen/qwen3-vl-30b-a3b-instruct", - name: "qwen/qwen3-vl-30b-a3b-instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30b A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-09", - last_updated: "2025-10-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-fp8": { - id: "qwen/qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-8b-fp8": { - id: "qwen/qwen3-8b-fp8", - name: "Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.035, output: 0.138 }, - limit: { context: 128000, output: 20000 }, - }, - "qwen/qwen3-vl-235b-a22b-instruct": { - id: "qwen/qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-2.5-72b-instruct": { - id: "qwen/qwen-2.5-72b-instruct", - name: "Qwen 2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-15", - last_updated: "2024-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 0.4 }, - limit: { context: 32000, output: 8192 }, - }, - "qwen/qwen3.5-35b-a3b": { - id: "qwen/qwen3.5-35b-a3b", - name: "Qwen3.5-35B-A3B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 65536 }, - }, - "kwaipilot/kat-coder-pro": { - id: "kwaipilot/kat-coder-pro", - name: "Kat Coder Pro", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-05", - last_updated: "2026-01-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 128000 }, - }, - "google/gemma-4-31b-it": { - id: "google/gemma-4-31b-it", - name: "Gemma 4 31B", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.4 }, - limit: { context: 262144, output: 131072 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.119, output: 0.2 }, - limit: { context: 98304, output: 16384 }, - }, - "google/gemma-4-26b-a4b-it": { - id: "google/gemma-4-26b-a4b-it", - name: "Gemma 4 26B A4B", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 262144, output: 131072 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - "xiaomi-token-plan-cn": { - id: "xiaomi-token-plan-cn", - env: ["XIAOMI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://token-plan-cn.xiaomimimo.com/v1", - name: "Xiaomi Token Plan (China)", - doc: "https://platform.xiaomimimo.com/#/docs", - models: { - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 256000, output: 128000 }, - }, - "mimo-v2-tts": { - id: "mimo-v2-tts", - name: "MiMo-V2-TTS", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8000, output: 16000 }, - }, - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - wandb: { - id: "wandb", - env: ["WANDB_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.inference.wandb.ai/v1", - name: "Weights & Biases", - doc: "https://docs.wandb.ai/guides/integrations/inference/", - models: { - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "zai-org/GLM-5-FP8": { - id: "zai-org/GLM-5-FP8", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 200000, output: 200000 }, - }, - "meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 64000, output: 64000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 128000 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 128000 }, - }, - "meta-llama/Llama-3.1-70B-Instruct": { - id: "meta-llama/Llama-3.1-70B-Instruct", - name: "Llama 3.1 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 128000, output: 128000 }, - }, - "OpenPipe/Qwen3-14B-Instruct": { - id: "OpenPipe/Qwen3-14B-Instruct", - name: "OpenPipe Qwen3 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 32768, output: 32768 }, - }, - "microsoft/Phi-4-mini-instruct": { - id: "microsoft/Phi-4-mini-instruct", - name: "Phi-4-mini-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.35 }, - limit: { context: 128000, output: 128000 }, - }, - "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": { - id: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8", - name: "NVIDIA Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.65 }, - limit: { context: 161000, output: 161000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.85 }, - limit: { context: 262144, output: 262144 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - }, - }, - chutes: { - id: "chutes", - env: ["CHUTES_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://llm.chutes.ai/v1", - name: "Chutes", - doc: "https://llm.chutes.ai/v1/models", - models: { - "miromind-ai/MiroThinker-v1.5-235B": { - id: "miromind-ai/MiroThinker-v1.5-235B", - name: "MiroThinker V1.5 235B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.15 }, - limit: { context: 262144, output: 8192 }, - }, - "OpenGVLab/InternVL3-78B-TEE": { - id: "OpenGVLab/InternVL3-78B-TEE", - name: "InternVL3 78B TEE", - family: "opengvlab", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-06", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.39 }, - limit: { context: 32768, output: 32768 }, - }, - "NousResearch/DeepHermes-3-Mistral-24B-Preview": { - id: "NousResearch/DeepHermes-3-Mistral-24B-Preview", - name: "DeepHermes 3 Mistral 24B Preview", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.1 }, - limit: { context: 32768, output: 32768 }, - }, - "NousResearch/Hermes-4-405B-FP8-TEE": { - id: "NousResearch/Hermes-4-405B-FP8-TEE", - name: "Hermes 4 405B FP8 TEE", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 131072, output: 65536 }, - }, - "NousResearch/Hermes-4.3-36B": { - id: "NousResearch/Hermes-4.3-36B", - name: "Hermes 4.3 36B", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.39 }, - limit: { context: 32768, output: 8192 }, - }, - "NousResearch/Hermes-4-14B": { - id: "NousResearch/Hermes-4-14B", - name: "Hermes 4 14B", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.05 }, - limit: { context: 40960, output: 40960 }, - }, - "NousResearch/Hermes-4-70B": { - id: "NousResearch/Hermes-4-70B", - name: "Hermes 4 70B", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.38 }, - limit: { context: 131072, output: 131072 }, - }, - "Qwen/Qwen3-30B-A3B": { - id: "Qwen/Qwen3-30B-A3B", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.22 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-Coder-Next": { - id: "Qwen/Qwen3-Coder-Next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3-235B-A22B": { - id: "Qwen/Qwen3-235B-A22B", - name: "Qwen3 235B A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct-TEE": { - id: "Qwen/Qwen2.5-VL-72B-Instruct-TEE", - name: "Qwen2.5 VL 72B Instruct TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3Guard-Gen-0.6B": { - id: "Qwen/Qwen3Guard-Gen-0.6B", - name: "Qwen3Guard Gen 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 32768, output: 8192 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.33 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE", - name: "Qwen3 235B A22B Instruct 2507 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.55, cache_read: 0.04 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 16384, output: 16384 }, - }, - "Qwen/Qwen3.5-397B-A17B-TEE": { - id: "Qwen/Qwen3.5-397B-A17B-TEE", - name: "Qwen3.5 397B A17B TEE", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 2.34, cache_read: 0.195 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE", - name: "Qwen3 Coder 480B A35B Instruct FP8 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.95, cache_read: 0.11 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 32768, output: 32768 }, - }, - "zai-org/GLM-5.1-TEE": { - id: "zai-org/GLM-5.1-TEE", - name: "GLM 5.1 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-08", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM 4.7 Flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.35 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.5-TEE": { - id: "zai-org/GLM-4.5-TEE", - name: "GLM 4.5 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.55 }, - limit: { context: 131072, output: 65536 }, - }, - "zai-org/GLM-4.6-FP8": { - id: "zai-org/GLM-4.6-FP8", - name: "GLM 4.6 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM 4.5 Air", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 131072, output: 131072 }, - }, - "zai-org/GLM-4.7-FP8": { - id: "zai-org/GLM-4.7-FP8", - name: "GLM 4.7 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-5-TEE": { - id: "zai-org/GLM-5-TEE", - name: "GLM 5 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.5-FP8": { - id: "zai-org/GLM-4.5-FP8", - name: "GLM 4.5 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 131072, output: 65536 }, - }, - "zai-org/GLM-4.7-TEE": { - id: "zai-org/GLM-4.7-TEE", - name: "GLM 4.7 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "GLM 4.6V", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9, cache_read: 0.15 }, - limit: { context: 131072, output: 65536 }, - }, - "zai-org/GLM-5-Turbo": { - id: "zai-org/GLM-5-Turbo", - name: "GLM 5 Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 1.96, cache_read: 0.245 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.6-TEE": { - id: "zai-org/GLM-4.6-TEE", - name: "GLM 4.6 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.7, cache_read: 0.2 }, - limit: { context: 202752, output: 65536 }, - }, - "mistralai/Devstral-2-123B-Instruct-2512-TEE": { - id: "mistralai/Devstral-2-123B-Instruct-2512-TEE", - name: "Devstral 2 123B Instruct 2512 TEE", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 262144, output: 65536 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29 }, - limit: { context: 262144, output: 32000 }, - }, - "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct 2506", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.18 }, - limit: { context: 131072, output: 131072 }, - }, - "chutesai/Mistral-Small-3.1-24B-Instruct-2503": { - id: "chutesai/Mistral-Small-3.1-24B-Instruct-2503", - name: "Mistral Small 3.1 24B Instruct 2503", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11, cache_read: 0.015 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { - id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", - name: "NVIDIA Nemotron 3 Nano 30B A3B BF16", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 262144, output: 262144 }, - }, - "deepseek-ai/DeepSeek-R1-TEE": { - id: "deepseek-ai/DeepSeek-R1-TEE", - name: "DeepSeek R1 TEE", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Llama-70B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3.1-TEE": { - id: "deepseek-ai/DeepSeek-V3.1-TEE", - name: "DeepSeek V3.1 TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3-0324-TEE": { - id: "deepseek-ai/DeepSeek-V3-0324-TEE", - name: "DeepSeek V3 0324 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.19, output: 0.87, cache_read: 0.095 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.2-Speciale-TEE": { - id: "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", - name: "DeepSeek V3.2 Speciale TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus-TEE": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus-TEE", - name: "DeepSeek V3.1 Terminus TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.23, output: 0.9 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-R1-0528-TEE": { - id: "deepseek-ai/DeepSeek-R1-0528-TEE", - name: "DeepSeek R1 0528 TEE", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.75 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.2-TEE": { - id: "deepseek-ai/DeepSeek-V3.2-TEE", - name: "DeepSeek V3.2 TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.14 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt oss 20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-120b-TEE": { - id: "openai/gpt-oss-120b-TEE", - name: "gpt oss 120b TEE", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.18 }, - limit: { context: 131072, output: 65536 }, - }, - "unsloth/gemma-3-12b-it": { - id: "unsloth/gemma-3-12b-it", - name: "gemma 3 12b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "unsloth/Llama-3.2-3B-Instruct": { - id: "unsloth/Llama-3.2-3B-Instruct", - name: "Llama 3.2 3B Instruct", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-02-12", - last_updated: "2025-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 16384, output: 16384 }, - }, - "unsloth/gemma-3-4b-it": { - id: "unsloth/gemma-3-4b-it", - name: "gemma 3 4b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 96000, output: 96000 }, - }, - "unsloth/Llama-3.2-1B-Instruct": { - id: "unsloth/Llama-3.2-1B-Instruct", - name: "Llama 3.2 1B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 32768, output: 8192 }, - }, - "unsloth/Mistral-Nemo-Instruct-2407": { - id: "unsloth/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04, cache_read: 0.01 }, - limit: { context: 131072, output: 131072 }, - }, - "unsloth/Mistral-Small-24B-Instruct-2501": { - id: "unsloth/Mistral-Small-24B-Instruct-2501", - name: "Mistral Small 24B Instruct 2501", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 32768, output: 32768 }, - }, - "unsloth/gemma-3-27b-it": { - id: "unsloth/gemma-3-27b-it", - name: "gemma 3 27b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15, cache_read: 0.02 }, - limit: { context: 128000, output: 65536 }, - }, - "moonshotai/Kimi-K2-Thinking-TEE": { - id: "moonshotai/Kimi-K2-Thinking-TEE", - name: "Kimi K2 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.75 }, - limit: { context: 262144, output: 65535 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.9, cache_read: 0.195 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2.5-TEE": { - id: "moonshotai/Kimi-K2.5-TEE", - name: "Kimi K2.5 TEE", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 65535 }, - }, - "MiniMaxAI/MiniMax-M2.1-TEE": { - id: "MiniMaxAI/MiniMax-M2.1-TEE", - name: "MiniMax M2.1 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.12 }, - limit: { context: 196608, output: 65536 }, - }, - "MiniMaxAI/MiniMax-M2.5-TEE": { - id: "MiniMaxAI/MiniMax-M2.5-TEE", - name: "MiniMax M2.5 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.1, cache_read: 0.15 }, - limit: { context: 196608, output: 65536 }, - }, - "rednote-hilab/dots.ocr": { - id: "rednote-hilab/dots.ocr", - name: "dots.ocr", - family: "rednote", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 131072, output: 131072 }, - }, - "tngtech/TNG-R1T-Chimera-Turbo": { - id: "tngtech/TNG-R1T-Chimera-Turbo", - name: "TNG R1T Chimera Turbo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.6 }, - limit: { context: 163840, output: 65536 }, - }, - "tngtech/DeepSeek-TNG-R1T2-Chimera": { - id: "tngtech/DeepSeek-TNG-R1T2-Chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85 }, - limit: { context: 163840, output: 163840 }, - }, - "tngtech/DeepSeek-R1T-Chimera": { - id: "tngtech/DeepSeek-R1T-Chimera", - name: "DeepSeek R1T Chimera", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, - }, - "tngtech/TNG-R1T-Chimera-TEE": { - id: "tngtech/TNG-R1T-Chimera-TEE", - name: "TNG R1T Chimera TEE", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85 }, - limit: { context: 163840, output: 65536 }, - }, - }, - }, - dinference: { - id: "dinference", - env: ["DINFERENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.dinference.com/v1", - name: "DInference", - doc: "https://dinference.com", - models: { - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.65 }, - limit: { context: 200000, output: 128000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.4 }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08", - last_updated: "2025-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0675, output: 0.27 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - vivgrid: { - id: "vivgrid", - env: ["VIVGRID_API_KEY"], - npm: "@ai-sdk/openai", - api: "https://api.vivgrid.com/v1", - name: "Vivgrid", - doc: "https://docs.vivgrid.com/models", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42 }, - limit: { context: 128000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - }, - }, - deepinfra: { - id: "deepinfra", - env: ["DEEPINFRA_API_KEY"], - npm: "@ai-sdk/deepinfra", - name: "Deep Infra", - doc: "https://deepinfra.com/models", - models: { - "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", - name: "Qwen3 Coder 480B A35B Instruct Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 262144, output: 66536 }, - }, - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 98304 }, - status: "deprecated", - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-5.1": { - id: "zai-org/GLM-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.56, cache_read: 0.16 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 1.74, cache_read: 0.08 }, - limit: { context: 204800, output: 131072 }, - }, - "meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama 4 Scout 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 10000000, output: 16384 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.1-70B-Instruct": { - id: "meta-llama/Llama-3.1-70B-Instruct", - name: "Llama 3.1 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.1-8B-Instruct-Turbo": { - id: "meta-llama/Llama-3.1-8B-Instruct-Turbo", - name: "Llama 3.1 8B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", - name: "Llama 3.3 70B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.32 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1000000, output: 16384 }, - }, - "meta-llama/Llama-3.1-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.1-70B-Instruct-Turbo", - name: "Llama 3.1 70B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.15, cache_read: 0.35 }, - limit: { context: 163840, output: 64000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.26, output: 0.38, cache_read: 0.13 }, - limit: { context: 163840, output: 64000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 16384 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.24 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-06", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.47, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.8 }, - limit: { context: 262144, output: 32768 }, - }, - "MiniMaxAI/MiniMax-M2": { - id: "MiniMaxAI/MiniMax-M2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.254, output: 1.02 }, - limit: { context: 262144, output: 32768 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-06", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.95, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "anthropic/claude-3-7-sonnet-latest": { - id: "anthropic/claude-3-7-sonnet-latest", - name: "Claude Sonnet 3.7 (Latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.3, output: 16.5, cache_read: 0.33 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-4-opus": { - id: "anthropic/claude-4-opus", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-06-12", - last_updated: "2025-06-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 82.5 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - "qiniu-ai": { - id: "qiniu-ai", - env: ["QINIU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.qnaigc.com/v1", - name: "Qiniu", - doc: "https://developer.qiniu.com/aitokenapi", - models: { - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen 3 235B A22B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "doubao-seed-1.6-flash": { - id: "doubao-seed-1.6-flash", - name: "Doubao-Seed 1.6 Flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235b A22B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 64000 }, - }, - "doubao-seed-2.0-code": { - id: "doubao-seed-2.0-code", - name: "Doubao Seed 2.0 Code", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 128000 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "doubao-1.5-thinking-pro": { - id: "doubao-1.5-thinking-pro", - name: "Doubao 1.5 Thinking Pro", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "claude-3.7-sonnet": { - id: "claude-3.7-sonnet", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-22", - last_updated: "2026-02-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 64000 }, - }, - "qwen-vl-max-2025-01-25": { - id: "qwen-vl-max-2025-01-25", - name: "Qwen VL-MAX-2025-01-25", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 40000, output: 4096 }, - }, - "doubao-1.5-pro-32k": { - id: "doubao-1.5-pro-32k", - name: "Doubao 1.5 Pro 32k", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 12000 }, - }, - "qwen2.5-vl-72b-instruct": { - id: "qwen2.5-vl-72b-instruct", - name: "Qwen 2.5 VL 72B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 8192 }, - }, - "qwen3-vl-30b-a3b-thinking": { - id: "qwen3-vl-30b-a3b-thinking", - name: "Qwen3-Vl 30b A3b Thinking", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-09", - last_updated: "2026-02-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "gemini-3.0-pro-image-preview": { - id: "gemini-3.0-pro-image-preview", - name: "Gemini 3.0 Pro Image Preview", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 32768, output: 8192 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 65536 }, - }, - "claude-4.5-opus": { - id: "claude-4.5-opus", - name: "Claude 4.5 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "claude-4.0-opus": { - id: "claude-4.0-opus", - name: "Claude 4.0 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 32000 }, - }, - "claude-4.5-haiku": { - id: "claude-4.5-haiku", - name: "Claude 4.5 Haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 65536 }, - }, - "gemini-3.0-flash-preview": { - id: "gemini-3.0-flash-preview", - name: "Gemini 3.0 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 32768, output: 8192 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 98304 }, - }, - "claude-3.5-sonnet": { - id: "claude-3.5-sonnet", - name: "Claude 3.5 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-09", - last_updated: "2025-09-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 8200 }, - }, - "claude-4.0-sonnet": { - id: "claude-4.0-sonnet", - name: "Claude 4.0 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30b A3b Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "doubao-seed-1.6-thinking": { - id: "doubao-seed-1.6-thinking", - name: "Doubao-Seed 1.6 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 64000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 4096 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-30b-a3b-thinking-2507": { - id: "qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30b A3b Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 126000, output: 32000 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131000, output: 4096 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 40000, output: 4096 }, - }, - "claude-4.1-opus": { - id: "claude-4.1-opus", - name: "Claude 4.1 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 32000 }, - }, - "doubao-seed-2.0-mini": { - id: "doubao-seed-2.0-mini", - name: "Doubao Seed 2.0 Mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 32768 }, - }, - "doubao-seed-1.6": { - id: "doubao-seed-1.6", - name: "Doubao-Seed 1.6", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen2.5-vl-7b-instruct": { - id: "qwen2.5-vl-7b-instruct", - name: "Qwen 2.5 VL 7B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "kling-v2-6": { - id: "kling-v2-6", - name: "Kling-V2 6", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-13", - last_updated: "2026-01-13", - modalities: { input: ["text", "image", "video"], output: ["video"] }, - open_weights: false, - limit: { context: 99999999, output: 99999999 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax M1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 80000 }, - }, - "gemini-3.0-pro-preview": { - id: "gemini-3.0-pro-preview", - name: "Gemini 3.0 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 64000 }, - }, - "doubao-seed-2.0-lite": { - id: "doubao-seed-2.0-lite", - name: "Doubao Seed 2.0 Lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-14", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262000, output: 4096 }, - }, - "claude-3.5-haiku": { - id: "claude-3.5-haiku", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 8192 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen-Turbo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 4096 }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 128000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 64000 }, - }, - "mimo-v2-flash": { - id: "mimo-v2-flash", - name: "Mimo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "qwen3-max-preview": { - id: "qwen3-max-preview", - name: "Qwen3 Max Preview", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-06", - last_updated: "2025-09-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 64000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "doubao-1.5-vision-pro": { - id: "doubao-1.5-vision-pro", - name: "Doubao 1.5 Vision Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "claude-4.5-sonnet": { - id: "claude-4.5-sonnet", - name: "Claude 4.5 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek-V3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 8192 }, - }, - "qwen-max-2025-01-25": { - id: "qwen-max-2025-01-25", - name: "Qwen2.5-Max-2025-01-25", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "doubao-seed-2.0-pro": { - id: "doubao-seed-2.0-pro", - name: "Doubao Seed 2.0 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 128000 }, - }, - "deepseek/deepseek-v3.2-exp-thinking": { - id: "deepseek/deepseek-v3.2-exp-thinking", - name: "DeepSeek/DeepSeek-V3.2-Exp-Thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.1-terminus-thinking": { - id: "deepseek/deepseek-v3.1-terminus-thinking", - name: "DeepSeek/DeepSeek-V3.1-Terminus-Thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek/DeepSeek-V3.2-Exp", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.2-251201": { - id: "deepseek/deepseek-v3.2-251201", - name: "Deepseek/DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-math-v2": { - id: "deepseek/deepseek-math-v2", - name: "Deepseek/Deepseek-Math-V2", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 160000, output: 160000 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek/DeepSeek-V3.1-Terminus", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "stepfun-ai/gelab-zero-4b-preview": { - id: "stepfun-ai/gelab-zero-4b-preview", - name: "Stepfun-Ai/Gelab Zero 4b Preview", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 8192, output: 4096 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Stepfun/Step-3.5 Flash", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 64000, output: 4096 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "x-AI/Grok-4-Fast", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-20", - last_updated: "2025-09-20", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "x-AI/Grok-Code-Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-02", - last_updated: "2025-09-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4-fast-reasoning": { - id: "x-ai/grok-4-fast-reasoning", - name: "X-Ai/Grok-4-Fast-Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast-non-reasoning": { - id: "x-ai/grok-4.1-fast-non-reasoning", - name: "X-Ai/Grok 4.1 Fast Non Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "x-AI/Grok-4.1-Fast", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4-fast-non-reasoning": { - id: "x-ai/grok-4-fast-non-reasoning", - name: "X-Ai/Grok-4-Fast-Non-Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast-reasoning": { - id: "x-ai/grok-4.1-fast-reasoning", - name: "X-Ai/Grok 4.1 Fast Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 20000000, output: 2000000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "OpenAI/GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "OpenAI/GPT-5", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 400000, output: 128000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "Z-Ai/GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "Z-Ai/GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/autoglm-phone-9b": { - id: "z-ai/autoglm-phone-9b", - name: "Z-Ai/Autoglm Phone 9b", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 12800, output: 4096 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "Z-AI/GLM 4.6", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "Minimax/Minimax-M2", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax/Minimax-M2.1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "Minimax/Minimax-M2.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "Minimax/Minimax-M2.5 Highspeed", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Moonshotai/Kimi-K2.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 100000 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 100000 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "Xiaomi/Mimo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-26", - last_updated: "2025-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "Meituan/Longcat-Flash-Chat", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-05", - last_updated: "2025-11-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 131072 }, - }, - "meituan/longcat-flash-lite": { - id: "meituan/longcat-flash-lite", - name: "Meituan/Longcat-Flash-Lite", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 320000 }, - }, - }, - }, - kilo: { - id: "kilo", - env: ["KILO_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.kilo.ai/api/gateway", - name: "Kilo Gateway", - doc: "https://kilo.ai", - models: { - "giga-potato": { - id: "giga-potato", - name: "Giga Potato (free)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "corethink:free": { - id: "corethink:free", - name: "CoreThink (free)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 78000, output: 8192 }, - }, - "giga-potato-thinking": { - id: "giga-potato-thinking", - name: "Giga Potato Thinking (free)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "morph-warp-grep-v2": { - id: "morph-warp-grep-v2", - name: "Morph: WarpGrep V2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "ai21/jamba-large-1.7": { - id: "ai21/jamba-large-1.7", - name: "AI21: Jamba Large 1.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 256000, output: 4096 }, - }, - "alibaba/tongyi-deepresearch-30b-a3b": { - id: "alibaba/tongyi-deepresearch-30b-a3b", - name: "Tongyi DeepResearch 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 131072, output: 131072 }, - }, - "inflection/inflection-3-pi": { - id: "inflection/inflection-3-pi", - name: "Inflection: Inflection 3 Pi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 1024 }, - }, - "inflection/inflection-3-productivity": { - id: "inflection/inflection-3-productivity", - name: "Inflection: Inflection 3 Productivity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 1024 }, - }, - "liquid/lfm2-8b-a1b": { - id: "liquid/lfm2-8b-a1b", - name: "LiquidAI: LFM2-8B-A1B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.02 }, - limit: { context: 32768, output: 32768 }, - }, - "liquid/lfm-2.2-6b": { - id: "liquid/lfm-2.2-6b", - name: "LiquidAI: LFM2-2.6B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.02 }, - limit: { context: 32768, output: 32768 }, - }, - "liquid/lfm-2-24b-a2b": { - id: "liquid/lfm-2-24b-a2b", - name: "LiquidAI: LFM2-24B-A2B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.12 }, - limit: { context: 32768, output: 32768 }, - }, - "writer/palmyra-x5": { - id: "writer/palmyra-x5", - name: "Writer: Palmyra X5", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 6 }, - limit: { context: 1040000, output: 8192 }, - }, - "ibm-granite/granite-4.0-h-micro": { - id: "ibm-granite/granite-4.0-h-micro", - name: "IBM: Granite 4.0 Micro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 131000, output: 32768 }, - }, - "essentialai/rnj-1-instruct": { - id: "essentialai/rnj-1-instruct", - name: "EssentialAI: Rnj 1 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 6554 }, - }, - "perplexity/sonar-pro": { - id: "perplexity/sonar-pro", - name: "Perplexity: Sonar Pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "perplexity/sonar-deep-research": { - id: "perplexity/sonar-deep-research", - name: "Perplexity: Sonar Deep Research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 25600 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Perplexity: Sonar", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127072, output: 25415 }, - }, - "perplexity/sonar-pro-search": { - id: "perplexity/sonar-pro-search", - name: "Perplexity: Sonar Pro Search", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-10-31", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "perplexity/sonar-reasoning-pro": { - id: "perplexity/sonar-reasoning-pro", - name: "Perplexity: Sonar Reasoning Pro", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 25600 }, - }, - "deepseek/deepseek-chat-v3.1": { - id: "deepseek/deepseek-chat-v3.1", - name: "DeepSeek: DeepSeek V3.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 32768, output: 7168 }, - }, - "deepseek/deepseek-chat": { - id: "deepseek/deepseek-chat", - name: "DeepSeek: DeepSeek V3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.32, output: 0.89, cache_read: 0.15 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek: R1 Distill Llama 70B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.8, cache_read: 0.015 }, - limit: { context: 131072, output: 16384 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek: R1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek: DeepSeek V3.2 Speciale", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.2, cache_read: 0.135 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1-distill-qwen-32b": { - id: "deepseek/deepseek-r1-distill-qwen-32b", - name: "DeepSeek: R1 Distill Qwen 32B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.29 }, - limit: { context: 32768, output: 32768 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek: DeepSeek V3.2 Exp", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek: DeepSeek V3.2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.38, cache_read: 0.125 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-chat-v3-0324": { - id: "deepseek/deepseek-chat-v3-0324", - name: "DeepSeek: DeepSeek V3 0324", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.77, cache_read: 0.095 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek: R1 0528", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.15, cache_read: 0.2 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek: DeepSeek V3.1 Terminus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.21, output: 0.79, cache_read: 0.13 }, - limit: { context: 163840, output: 32768 }, - }, - "openrouter/hunter-alpha": { - id: "openrouter/hunter-alpha", - name: "Hunter Alpha", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1048576, output: 32000 }, - }, - "openrouter/auto": { - id: "openrouter/auto", - name: "Auto Router", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000000, output: 32768 }, - }, - "openrouter/bodybuilder": { - id: "openrouter/bodybuilder", - name: "Body Builder (beta)", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - status: "beta", - }, - "openrouter/healer-alpha": { - id: "openrouter/healer-alpha", - name: "Healer Alpha", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32000 }, - }, - "openrouter/free": { - id: "openrouter/free", - name: "Free Models Router", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 32768 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Arcee AI: Trinity Mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/virtuoso-large": { - id: "arcee-ai/virtuoso-large", - name: "Arcee AI: Virtuoso Large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 1.2 }, - limit: { context: 131072, output: 64000 }, - }, - "arcee-ai/spotlight": { - id: "arcee-ai/spotlight", - name: "Arcee AI: Spotlight", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131072, output: 65537 }, - }, - "arcee-ai/maestro-reasoning": { - id: "arcee-ai/maestro-reasoning", - name: "Arcee AI: Maestro Reasoning", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 3.3 }, - limit: { context: 131072, output: 32000 }, - }, - "arcee-ai/trinity-large-preview:free": { - id: "arcee-ai/trinity-large-preview:free", - name: "Arcee AI: Trinity Large Preview (free)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131000, output: 26200 }, - }, - "arcee-ai/coder-large": { - id: "arcee-ai/coder-large", - name: "Arcee AI: Coder Large", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "deepcogito/cogito-v2.1-671b": { - id: "deepcogito/cogito-v2.1-671b", - name: "Deep Cogito: Cogito v2.1 671B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, output: 32768 }, - }, - "upstage/solar-pro-3": { - id: "upstage/solar-pro-3", - name: "Upstage: Solar Pro 3", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 32768 }, - }, - "nex-agi/deepseek-v3.1-nex-n1": { - id: "nex-agi/deepseek-v3.1-nex-n1", - name: "Nex AGI: DeepSeek V3.1 Nex N1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 163840 }, - }, - "bytedance-seed/seed-1.6": { - id: "bytedance-seed/seed-1.6", - name: "ByteDance Seed: Seed 1.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 32768 }, - }, - "bytedance-seed/seed-2.0-lite": { - id: "bytedance-seed/seed-2.0-lite", - name: "ByteDance Seed: Seed-2.0-Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 131072 }, - }, - "bytedance-seed/seed-1.6-flash": { - id: "bytedance-seed/seed-1.6-flash", - name: "ByteDance Seed: Seed 1.6 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 262144, output: 32768 }, - }, - "bytedance-seed/seed-2.0-mini": { - id: "bytedance-seed/seed-2.0-mini", - name: "ByteDance Seed: Seed-2.0-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, output: 131072 }, - }, - "mancer/weaver": { - id: "mancer/weaver", - name: "Mancer: Weaver (alpha)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-08-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 1 }, - limit: { context: 8000, output: 2000 }, - }, - "anthracite-org/magnum-v4-72b": { - id: "anthracite-org/magnum-v4-72b", - name: "Magnum v4 72B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 5 }, - limit: { context: 16384, output: 2048 }, - }, - "kilo-auto/balanced": { - id: "kilo-auto/balanced", - name: "Kilo Auto Balanced", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo-auto/frontier": { - id: "kilo-auto/frontier", - name: "Kilo Auto Frontier", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "kilo-auto/small": { - id: "kilo-auto/small", - name: "Kilo Auto Small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "kilo-auto/free": { - id: "kilo-auto/free", - name: "Kilo Auto Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "undi95/remm-slerp-l2-13b": { - id: "undi95/remm-slerp-l2-13b", - name: "ReMM SLERP 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-07-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 0.65 }, - limit: { context: 6144, output: 4096 }, - }, - "allenai/olmo-2-0325-32b-instruct": { - id: "allenai/olmo-2-0325-32b-instruct", - name: "AllenAI: Olmo 2 32B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 128000, output: 32768 }, - }, - "allenai/molmo-2-8b": { - id: "allenai/molmo-2-8b", - name: "AllenAI: Molmo2 8B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-09", - last_updated: "2026-01-31", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 36864, output: 36864 }, - }, - "allenai/olmo-3-7b-think": { - id: "allenai/olmo-3-7b-think", - name: "AllenAI: Olmo 3 7B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3.1-32b-instruct": { - id: "allenai/olmo-3.1-32b-instruct", - name: "AllenAI: Olmo 3.1 32B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-07", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 65536, output: 32768 }, - }, - "allenai/olmo-3.1-32b-think": { - id: "allenai/olmo-3.1-32b-think", - name: "AllenAI: Olmo 3.1 32B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3-7b-instruct": { - id: "allenai/olmo-3-7b-instruct", - name: "AllenAI: Olmo 3 7B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3-32b-think": { - id: "allenai/olmo-3-32b-think", - name: "AllenAI: Olmo 3 32B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, output: 65536 }, - }, - "nousresearch/hermes-2-pro-llama-3-8b": { - id: "nousresearch/hermes-2-pro-llama-3-8b", - name: "NousResearch: Hermes 2 Pro - Llama-3 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-05-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, - }, - "nousresearch/hermes-4-405b": { - id: "nousresearch/hermes-4-405b", - name: "Nous: Hermes 4 405B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 26215 }, - }, - "nousresearch/hermes-3-llama-3.1-70b": { - id: "nousresearch/hermes-3-llama-3.1-70b", - name: "Nous: Hermes 3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 131072, output: 32768 }, - }, - "nousresearch/hermes-4-70b": { - id: "nousresearch/hermes-4-70b", - name: "Nous: Hermes 4 70B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-08-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, cache_read: 0.055 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-3-llama-3.1-405b": { - id: "nousresearch/hermes-3-llama-3.1-405b", - name: "Nous: Hermes 3 405B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 1 }, - limit: { context: 131072, output: 16384 }, - }, - "kilo/auto": { - id: "kilo/auto", - name: "Kilo: Auto", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "kilo/auto-small": { - id: "kilo/auto-small", - name: "Deprecated Kilo Auto Small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "kilo/auto-free": { - id: "kilo/auto-free", - name: "Deprecated Kilo Auto Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "morph/morph-v3-fast": { - id: "morph/morph-v3-fast", - name: "Morph: Morph V3 Fast", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 81920, output: 38000 }, - }, - "morph/morph-v3-large": { - id: "morph/morph-v3-large", - name: "Morph: Morph V3 Large", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 262144, output: 131072 }, - }, - "eleutherai/llemma_7b": { - id: "eleutherai/llemma_7b", - name: "EleutherAI: Llemma 7b", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 4096, output: 4096 }, - }, - "stepfun/step-3.5-flash:free": { - id: "stepfun/step-3.5-flash:free", - name: "StepFun: Step 3.5 Flash (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "StepFun: Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 256000 }, - }, - "alpindale/goliath-120b": { - id: "alpindale/goliath-120b", - name: "Goliath 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-11-10", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.75, output: 7.5 }, - limit: { context: 6144, output: 1024 }, - }, - "mistralai/mistral-nemo": { - id: "mistralai/mistral-nemo", - name: "Mistral: Mistral Nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-01", - last_updated: "2024-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 131072, output: 16384 }, - }, - "mistralai/mistral-saba": { - id: "mistralai/mistral-saba", - name: "Mistral: Saba", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/mistral-large-2512": { - id: "mistralai/mistral-large-2512", - name: "Mistral: Mistral Large 3 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-01", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 52429 }, - }, - "mistralai/devstral-medium": { - id: "mistralai/devstral-medium", - name: "Mistral: Devstral Medium", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-small-3.1-24b-instruct": { - id: "mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral: Mistral Small 3.1 24B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.56, cache_read: 0.015 }, - limit: { context: 128000, output: 131072 }, - }, - "mistralai/pixtral-large-2411": { - id: "mistralai/pixtral-large-2411", - name: "Mistral: Pixtral Large 2411", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/devstral-2512": { - id: "mistralai/devstral-2512", - name: "Mistral: Devstral 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.025 }, - limit: { context: 262144, output: 65536 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Mistral: Codestral 2508", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 51200 }, - }, - "mistralai/mistral-small-24b-instruct-2501": { - id: "mistralai/mistral-small-24b-instruct-2501", - name: "Mistral: Mistral Small 3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 32768, output: 16384 }, - }, - "mistralai/mistral-large-2411": { - id: "mistralai/mistral-large-2411", - name: "Mistral Large 2411", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-11-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mixtral-8x22b-instruct": { - id: "mistralai/mixtral-8x22b-instruct", - name: "Mistral: Mixtral 8x22B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 65536, output: 13108 }, - }, - "mistralai/mistral-large-2407": { - id: "mistralai/mistral-large-2407", - name: "Mistral Large 2407", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-19", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/ministral-8b-2512": { - id: "mistralai/ministral-8b-2512", - name: "Mistral: Ministral 3 8B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, output: 32768 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral: Mistral Medium 3.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/ministral-3b-2512": { - id: "mistralai/ministral-3b-2512", - name: "Mistral: Ministral 3 3B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/voxtral-small-24b-2507": { - id: "mistralai/voxtral-small-24b-2507", - name: "Mistral: Voxtral Small 24B 2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32000, output: 6400 }, - }, - "mistralai/mixtral-8x7b-instruct": { - id: "mistralai/mixtral-8x7b-instruct", - name: "Mistral: Mixtral 8x7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-12-10", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.54, output: 0.54 }, - limit: { context: 32768, output: 16384 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral: Mistral Medium 3", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-small-3.2-24b-instruct": { - id: "mistralai/mistral-small-3.2-24b-instruct", - name: "Mistral: Mistral Small 3.2 24B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.18, cache_read: 0.03 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mistral-small-creative": { - id: "mistralai/mistral-small-creative", - name: "Mistral: Mistral Small Creative", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/devstral-small": { - id: "mistralai/devstral-small", - name: "Mistral: Devstral Small 1.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-07", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-large": { - id: "mistralai/mistral-large", - name: "Mistral Large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 25600 }, - }, - "mistralai/mistral-7b-instruct-v0.1": { - id: "mistralai/mistral-7b-instruct-v0.1", - name: "Mistral: Mistral 7B Instruct v0.1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 2824, output: 565 }, - }, - "mistralai/ministral-14b-2512": { - id: "mistralai/ministral-14b-2512", - name: "Mistral: Ministral 3 14B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, output: 52429 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Meta: Llama 3.3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.32 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-4-scout": { - id: "meta-llama/llama-4-scout", - name: "Meta: Llama 4 Scout", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 327680, output: 16384 }, - }, - "meta-llama/llama-guard-3-8b": { - id: "meta-llama/llama-guard-3-8b", - name: "Llama Guard 3 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-18", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-4-maverick": { - id: "meta-llama/llama-4-maverick", - name: "Meta: Llama 4 Maverick", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-12-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048576, output: 16384 }, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - id: "meta-llama/llama-3.2-11b-vision-instruct", - name: "Meta: Llama 3.2 11B Vision Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.049, output: 0.049 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-guard-4-12b": { - id: "meta-llama/llama-guard-4-12b", - name: "Meta: Llama Guard 4 12B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 163840, output: 32768 }, - }, - "meta-llama/llama-3.1-70b-instruct": { - id: "meta-llama/llama-3.1-70b-instruct", - name: "Meta: Llama 3.1 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-3.1-405b": { - id: "meta-llama/llama-3.1-405b", - name: "Meta: Llama 3.1 405B (base)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 4 }, - limit: { context: 32768, output: 32768 }, - }, - "meta-llama/llama-3.2-1b-instruct": { - id: "meta-llama/llama-3.2-1b-instruct", - name: "Meta: Llama 3.2 1B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-18", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 60000, output: 12000 }, - }, - "meta-llama/llama-3.2-3b-instruct": { - id: "meta-llama/llama-3.2-3b-instruct", - name: "Meta: Llama 3.2 3B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 80000, output: 16384 }, - }, - "meta-llama/llama-3-8b-instruct": { - id: "meta-llama/llama-3-8b-instruct", - name: "Meta: Llama 3 8B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-25", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.04 }, - limit: { context: 8192, output: 16384 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Meta: Llama 3.1 8B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 16384, output: 16384 }, - }, - "meta-llama/llama-3-70b-instruct": { - id: "meta-llama/llama-3-70b-instruct", - name: "Meta: Llama 3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "meta-llama/llama-3.1-405b-instruct": { - id: "meta-llama/llama-3.1-405b-instruct", - name: "Meta: Llama 3.1 405B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-16", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 4 }, - limit: { context: 131000, output: 26200 }, - }, - "x-ai/grok-code-fast-1:optimized:free": { - id: "x-ai/grok-code-fast-1:optimized:free", - name: "xAI: Grok Code Fast 1 Optimized (experimental, free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4.20-multi-agent-beta": { - id: "x-ai/grok-4.20-multi-agent-beta", - name: "xAI: Grok 4.20 Multi-Agent Beta", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 2000000, output: 32768 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "xAI: Grok 4 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "xAI: Grok Code Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-3-beta": { - id: "x-ai/grok-3-beta", - name: "xAI: Grok 3 Beta", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "xAI: Grok 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 51200 }, - }, - "x-ai/grok-3-mini": { - id: "x-ai/grok-3-mini", - name: "xAI: Grok 3 Mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "xAI: Grok 4.1 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4.20-beta": { - id: "x-ai/grok-4.20-beta", - name: "xAI: Grok 4.20 Beta", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 2000000, output: 32768 }, - }, - "x-ai/grok-3-mini-beta": { - id: "x-ai/grok-3-mini-beta", - name: "xAI: Grok 3 Mini Beta", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-3": { - id: "x-ai/grok-3", - name: "xAI: Grok 3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 26215 }, - }, - "tencent/hunyuan-a13b-instruct": { - id: "tencent/hunyuan-a13b-instruct", - name: "Tencent: Hunyuan A13B Instruct", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131072, output: 131072 }, - }, - "gryphe/mythomax-l2-13b": { - id: "gryphe/mythomax-l2-13b", - name: "MythoMax 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 4096, output: 4096 }, - }, - "sao10k/l3-euryale-70b": { - id: "sao10k/l3-euryale-70b", - name: "Sao10k: Llama 3 Euryale 70B v2.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-06-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3-lunaris-8b": { - id: "sao10k/l3-lunaris-8b", - name: "Sao10K: Llama 3 8B Lunaris", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-13", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.05 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3.3-euryale-70b": { - id: "sao10k/l3.3-euryale-70b", - name: "Sao10K: Llama 3.3 Euryale 70B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-12-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 0.75 }, - limit: { context: 131072, output: 16384 }, - }, - "sao10k/l3.1-70b-hanami-x1": { - id: "sao10k/l3.1-70b-hanami-x1", - name: "Sao10K: Llama 3.1 70B Hanami x1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-01-08", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 16000, output: 16000 }, - }, - "sao10k/l3.1-euryale-70b": { - id: "sao10k/l3.1-euryale-70b", - name: "Sao10K: Llama 3.1 Euryale 70B v2.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 0.85 }, - limit: { context: 131072, output: 16384 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "WizardLM-2 8x22B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-24", - last_updated: "2024-04-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 0.62 }, - limit: { context: 65535, output: 8000 }, - }, - "microsoft/phi-4": { - id: "microsoft/phi-4", - name: "Microsoft: Phi 4", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.14 }, - limit: { context: 16384, output: 16384 }, - }, - "cohere/command-r7b-12-2024": { - id: "cohere/command-r7b-12-2024", - name: "Cohere: Command R7B (12-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-02-27", - last_updated: "2024-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-a": { - id: "cohere/command-a", - name: "Cohere: Command A", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8192 }, - }, - "cohere/command-r-plus-08-2024": { - id: "cohere/command-r-plus-08-2024", - name: "Cohere: Command R+ (08-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-r-08-2024": { - id: "cohere/command-r-08-2024", - name: "Cohere: Command R (08-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "Prime Intellect: INTELLECT-3", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-26", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1.5": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", - name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "NVIDIA: Nemotron 3 Nano 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 262144, output: 52429 }, - }, - "nvidia/nemotron-nano-12b-v2-vl": { - id: "nvidia/nemotron-nano-12b-v2-vl", - name: "NVIDIA: Nemotron Nano 12B 2 VL", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-10-28", - last_updated: "2026-01-31", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-3-super-120b-a12b:free": { - id: "nvidia/nemotron-3-super-120b-a12b:free", - name: "NVIDIA: Nemotron 3 Super (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "NVIDIA: Nemotron Nano 9B V2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/llama-3.1-nemotron-70b-instruct": { - id: "nvidia/llama-3.1-nemotron-70b-instruct", - name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-12", - last_updated: "2024-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 131072, output: 16384 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Inception: Mercury 2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - "inception/mercury": { - id: "inception/mercury", - name: "Inception: Mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, output: 32000 }, - }, - "inception/mercury-coder": { - id: "inception/mercury-coder", - name: "Inception: Mercury Coder", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "OpenAI: GPT-5.1-Codex-Max", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "OpenAI: GPT-5.2 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "OpenAI: GPT-4o-mini Search Preview", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "OpenAI: GPT-5 Chat", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-2024-05-13": { - id: "openai/gpt-4o-2024-05-13", - name: "OpenAI: GPT-4o (2024-05-13)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "OpenAI: GPT-5.3 Chat", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2026-03-04", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "OpenAI: GPT-5.2 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4-1106-preview": { - id: "openai/gpt-4-1106-preview", - name: "OpenAI: GPT-4 Turbo (older v1106)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-11-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-4o-audio-preview": { - id: "openai/gpt-4o-audio-preview", - name: "OpenAI: GPT-4o Audio", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-15", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "OpenAI: GPT-5 Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "OpenAI: GPT-5 Nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "OpenAI: GPT-5.3-Codex", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-02-25", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-3.5-turbo-16k": { - id: "openai/gpt-3.5-turbo-16k", - name: "OpenAI: GPT-3.5 Turbo 16k", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-08-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "OpenAI: GPT-4 Turbo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-09-13", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "OpenAI: GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "OpenAI: o3 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "OpenAI: o3 Mini High", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2026-03-15", - modalities: { input: ["pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "OpenAI: GPT-4o-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "OpenAI: o4 Mini Deep Research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "OpenAI: GPT-5.1 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI: o4 Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "OpenAI: GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini-2024-07-18": { - id: "openai/gpt-4o-mini-2024-07-18", - name: "OpenAI: GPT-4o-mini (2024-07-18)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "OpenAI: GPT-5.1-Codex-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-4o-2024-08-06": { - id: "openai/gpt-4o-2024-08-06", - name: "OpenAI: GPT-4o (2024-08-06)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "OpenAI: GPT-5 Image", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 10, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "OpenAI: GPT-5.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI: o1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-05", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "OpenAI: GPT-5.4 Pro", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-03-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "OpenAI: GPT-3.5 Turbo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "OpenAI: o3 Deep Research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI: o3 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-20", - last_updated: "2026-03-15", - modalities: { input: ["pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo-preview": { - id: "openai/gpt-4-turbo-preview", - name: "OpenAI: GPT-4 Turbo Preview", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "OpenAI: o1-pro", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - release_date: "2025-03-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4": { - id: "openai/gpt-4", - name: "OpenAI: GPT-4", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-03-14", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8191, output: 4096 }, - }, - "openai/gpt-4-0314": { - id: "openai/gpt-4-0314", - name: "OpenAI: GPT-4 (older v0314)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-05-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8191, output: 4096 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "OpenAI: GPT-5 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "OpenAI: GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-03-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-audio": { - id: "openai/gpt-audio", - name: "OpenAI: GPT Audio", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o:extended": { - id: "openai/gpt-4o:extended", - name: "OpenAI: GPT-4o (extended)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 18 }, - limit: { context: 128000, output: 64000 }, - }, - "openai/gpt-4o-search-preview": { - id: "openai/gpt-4o-search-preview", - name: "OpenAI: GPT-4o Search Preview", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "OpenAI: GPT-4.1 Nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o4-mini-high": { - id: "openai/o4-mini-high", - name: "OpenAI: o4 Mini High", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2025-04-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI: o3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "OpenAI: gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "OpenAI: GPT-5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-audio-mini": { - id: "openai/gpt-audio-mini", - name: "OpenAI: GPT Audio Mini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "OpenAI: GPT-4o", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-3.5-turbo-0613": { - id: "openai/gpt-3.5-turbo-0613", - name: "OpenAI: GPT-3.5 Turbo (older v0613)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 4095, output: 4096 }, - }, - "openai/gpt-5-image-mini": { - id: "openai/gpt-5-image-mini", - name: "OpenAI: GPT-5 Image Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "OpenAI: GPT-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "OpenAI: gpt-oss-safeguard-20b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI: gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.039, output: 0.19 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "OpenAI: GPT-3.5 Turbo Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-03-01", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4095, output: 4096 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "OpenAI: GPT-4.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "OpenAI: GPT-4.1 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "OpenAI: GPT-5.1-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-2024-11-20": { - id: "openai/gpt-4o-2024-11-20", - name: "OpenAI: GPT-4o (2024-11-20)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-20", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "amazon/nova-lite-v1": { - id: "amazon/nova-lite-v1", - name: "Amazon: Nova Lite 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 300000, output: 5120 }, - }, - "amazon/nova-pro-v1": { - id: "amazon/nova-pro-v1", - name: "Amazon: Nova Pro 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 300000, output: 5120 }, - }, - "amazon/nova-premier-v1": { - id: "amazon/nova-premier-v1", - name: "Amazon: Nova Premier 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 12.5 }, - limit: { context: 1000000, output: 32000 }, - }, - "amazon/nova-2-lite-v1": { - id: "amazon/nova-2-lite-v1", - name: "Amazon: Nova 2 Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65535 }, - }, - "amazon/nova-micro-v1": { - id: "amazon/nova-micro-v1", - name: "Amazon: Nova Micro 1.0", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14 }, - limit: { context: 128000, output: 5120 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "Z.ai: GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 1.98, cache_read: 0.2 }, - limit: { context: 202752, output: 65535 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "Z.ai: GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 2.3 }, - limit: { context: 202752, output: 131072 }, - }, - "z-ai/glm-4-32b": { - id: "z-ai/glm-4-32b", - name: "Z.ai: GLM 4 32B ", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 32768 }, - }, - "z-ai/glm-5.1": { - id: "z-ai/glm-5.1", - name: "Z.ai: GLM 5.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.26, output: 3.96 }, - limit: { context: 202752, output: 131072 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "Z.ai: GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.175 }, - limit: { context: 131072, output: 98304 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "Z.ai: GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.85, cache_read: 0.025 }, - limit: { context: 131072, output: 98304 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "Z.ai: GLM 4.5V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 65536, output: 16384 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "Z.ai: GLM 4.6", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.9, cache_read: 0.175 }, - limit: { context: 204800, output: 204800 }, - }, - "z-ai/glm-4.6v": { - id: "z-ai/glm-4.6v", - name: "Z.ai: GLM 4.6V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2026-01-10", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131072, output: 131072 }, - }, - "z-ai/glm-4.7-flash": { - id: "z-ai/glm-4.7-flash", - name: "Z.ai: GLM 4.7 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, - limit: { context: 202752, output: 40551 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "Baidu: ERNIE 4.5 VL 424B A47B ", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2026-01", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "Baidu: ERNIE 4.5 VL 28B A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.56 }, - limit: { context: 30000, output: 8000 }, - }, - "baidu/ernie-4.5-21b-a3b": { - id: "baidu/ernie-4.5-21b-a3b", - name: "Baidu: ERNIE 4.5 21B A3B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 120000, output: 8000 }, - }, - "baidu/ernie-4.5-300b-a47b": { - id: "baidu/ernie-4.5-300b-a47b", - name: "Baidu: ERNIE 4.5 300B A47B ", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "baidu/ernie-4.5-21b-a3b-thinking": { - id: "baidu/ernie-4.5-21b-a3b-thinking", - name: "Baidu: ERNIE 4.5 21B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131072, output: 65536 }, - }, - "relace/relace-apply-3": { - id: "relace/relace-apply-3", - name: "Relace: Relace Apply 3", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-09-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 1.25 }, - limit: { context: 256000, output: 128000 }, - }, - "relace/relace-search": { - id: "relace/relace-search", - name: "Relace: Relace Search", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3 }, - limit: { context: 256000, output: 128000 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax: MiniMax M2.7", - family: "minimax-m2.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax: MiniMax M2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.255, output: 1, cache_read: 0.03 }, - limit: { context: 196608, output: 196608 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax: MiniMax-01", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000192, output: 1000192 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax: MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.95, cache_read: 0.03 }, - limit: { context: 196608, output: 39322 }, - }, - "minimax/minimax-m1": { - id: "minimax/minimax-m1", - name: "MiniMax: MiniMax M1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "minimax/minimax-m2-her": { - id: "minimax/minimax-m2-her", - name: "MiniMax: MiniMax M2-her", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 65536, output: 2048 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax: MiniMax M2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.2, cache_read: 0.029 }, - limit: { context: 196608, output: 196608 }, - }, - "qwen/qwen3-235b-a22b": { - id: "qwen/qwen3-235b-a22b", - name: "Qwen: Qwen3 235B A22B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.455, output: 1.82, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3.5-122b-a10b": { - id: "qwen/qwen3.5-122b-a10b", - name: "Qwen: Qwen3.5-122B-A10B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.08 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen2.5-coder-7b-instruct": { - id: "qwen/qwen2.5-coder-7b-instruct", - name: "Qwen: Qwen2.5 Coder 7B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-17", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen3-coder-plus": { - id: "qwen/qwen3-coder-plus", - name: "Qwen: Qwen3 Coder Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 3.25, cache_read: 0.2 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3.5-27b": { - id: "qwen/qwen3.5-27b", - name: "Qwen: Qwen3.5-27B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.195, output: 1.56 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-2507": { - id: "qwen/qwen3-235b-a22b-2507", - name: "Qwen: Qwen3 235B A22B Instruct 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.071, output: 0.1 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen3-8b": { - id: "qwen/qwen3-8b", - name: "Qwen: Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.4, cache_read: 0.05 }, - limit: { context: 40960, output: 8192 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen: Qwen3.5 397B A17B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39, output: 2.34 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-vl-plus": { - id: "qwen/qwen-vl-plus", - name: "Qwen: Qwen VL Plus", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-25", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1365, output: 0.4095, cache_read: 0.042 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-32b": { - id: "qwen/qwen3-32b", - name: "Qwen: Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen: Qwen2.5 VL 72B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-02-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen-max": { - id: "qwen/qwen-max", - name: "Qwen: Qwen-Max ", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-03", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.04, output: 4.16, cache_read: 0.32 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen-plus": { - id: "qwen/qwen-plus", - name: "Qwen: Qwen-Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-thinking": { - id: "qwen/qwen3-vl-235b-a22b-thinking", - name: "Qwen: Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.6 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-30b-a3b-thinking": { - id: "qwen/qwen3-vl-30b-a3b-thinking", - name: "Qwen: Qwen3 VL 30B A3B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 1.56 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen2.5-vl-32b-instruct": { - id: "qwen/qwen2.5-vl-32b-instruct", - name: "Qwen: Qwen2.5 VL 32B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.025 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen/qwen3-vl-8b-instruct": { - id: "qwen/qwen3-vl-8b-instruct", - name: "Qwen: Qwen3 VL 8B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3.5-flash-02-23": { - id: "qwen/qwen3.5-flash-02-23", - name: "Qwen: Qwen3.5-Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen: Qwen3 Max", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen-plus-2025-07-28": { - id: "qwen/qwen-plus-2025-07-28", - name: "Qwen: Qwen Plus 0728", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.78 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - id: "qwen/qwen3-30b-a3b-instruct-2507", - name: "Qwen: Qwen3 30B A3B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.3, cache_read: 0.04 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-vl-32b-instruct": { - id: "qwen/qwen3-vl-32b-instruct", - name: "Qwen: Qwen3 VL 32B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.104, output: 0.416 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen: Qwen3 235B A22B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen: Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0975, output: 0.78 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - id: "qwen/qwen3-30b-a3b-thinking-2507", - name: "Qwen: Qwen3 30B A3B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen-2.5-7b-instruct": { - id: "qwen/qwen-2.5-7b-instruct", - name: "Qwen: Qwen2.5 7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.1 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen-vl-max": { - id: "qwen/qwen-vl-max", - name: "Qwen: Qwen VL Max", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-coder-flash": { - id: "qwen/qwen3-coder-flash", - name: "Qwen: Qwen3 Coder Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.195, output: 0.975, cache_read: 0.06 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-30b-a3b": { - id: "qwen/qwen3-30b-a3b", - name: "Qwen: Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.28, cache_read: 0.03 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwq-32b": { - id: "qwen/qwq-32b", - name: "Qwen: QwQ 32B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen: Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 1.1 }, - limit: { context: 131072, output: 52429 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "Qwen: Qwen3 Coder Next", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.75, cache_read: 0.035 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - id: "qwen/qwen-2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-11-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2, cache_read: 0.015 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3-vl-30b-a3b-instruct": { - id: "qwen/qwen3-vl-30b-a3b-instruct", - name: "Qwen: Qwen3 VL 30B A3B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen: Qwen3 Coder 30B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "qwen/qwen3-max-thinking": { - id: "qwen/qwen3-max-thinking", - name: "Qwen: Qwen3 Max Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.78, output: 3.9 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen-turbo": { - id: "qwen/qwen-turbo", - name: "Qwen: Qwen-Turbo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0325, output: 0.13, cache_read: 0.01 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-vl-235b-a22b-instruct": { - id: "qwen/qwen3-vl-235b-a22b-instruct", - name: "Qwen: Qwen3 VL 235B A22B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-23", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.88, cache_read: 0.11 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen: Qwen3 Coder 480B A35B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1, cache_read: 0.022 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen-2.5-vl-7b-instruct": { - id: "qwen/qwen-2.5-vl-7b-instruct", - name: "Qwen: Qwen2.5-VL 7B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-28", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen3.5-9b": { - id: "qwen/qwen3.5-9b", - name: "Qwen: Qwen3.5-9B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 256000, output: 32768 }, - }, - "qwen/qwen3-vl-8b-thinking": { - id: "qwen/qwen3-vl-8b-thinking", - name: "Qwen: Qwen3 VL 8B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.117, output: 1.365 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-plus-2025-07-28:thinking": { - id: "qwen/qwen-plus-2025-07-28:thinking", - name: "Qwen: Qwen Plus 0728 (thinking)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.78 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen-2.5-72b-instruct": { - id: "qwen/qwen-2.5-72b-instruct", - name: "Qwen2.5 72B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.39 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen/qwen3-14b": { - id: "qwen/qwen3-14b", - name: "Qwen: Qwen3 14B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24, cache_read: 0.025 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3.5-35b-a3b": { - id: "qwen/qwen3.5-35b-a3b", - name: "Qwen: Qwen3.5-35B-A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1625, output: 1.3 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3.5-plus-02-15": { - id: "qwen/qwen3.5-plus-02-15", - name: "Qwen: Qwen3.5 Plus 2026-02-15", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.26, output: 1.56 }, - limit: { context: 1000000, output: 65536 }, - }, - "alfredpros/codellama-7b-instruct-solidity": { - id: "alfredpros/codellama-7b-instruct-solidity", - name: "AlfredPros: CodeLLaMa 7B Instruct Solidity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 4096, output: 4096 }, - }, - "kwaipilot/kat-coder-pro": { - id: "kwaipilot/kat-coder-pro", - name: "Kwaipilot: KAT-Coder-Pro V1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.207, output: 0.828, cache_read: 0.0414 }, - limit: { context: 256000, output: 128000 }, - }, - "google/gemini-2.5-pro-preview-05-06": { - id: "google/gemini-2.5-pro-preview-05-06", - name: "Google: Gemini 2.5 Pro Preview 05-06", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-3.1-pro-preview-customtools": { - id: "google/gemini-3.1-pro-preview-customtools", - name: "Google: Gemini 3.1 Pro Preview Custom Tools", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-001": { - id: "google/gemini-2.0-flash-001", - name: "Google: Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-11", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025, cache_write: 0.083333 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Google: Gemma 3n 4B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 32768, output: 6554 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Google: Gemini 3.1 Flash Lite Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, reasoning: 1.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Google: Gemini 3.1 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Google: Gemini 3 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, reasoning: 3, cache_read: 0.05, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Google: Gemini 3 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-18", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, cache_read: 0.2, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Google: Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-9b-it": { - id: "google/gemma-2-9b-it", - name: "Google: Gemma 2 9B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-06-28", - last_updated: "2024-06-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 8192, output: 1639 }, - }, - "google/gemini-3-pro-image-preview": { - id: "google/gemini-3-pro-image-preview", - name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 65536, output: 32768 }, - }, - "google/gemini-2.5-flash-image": { - id: "google/gemini-2.5-flash-image", - name: "Google: Nano Banana (Gemini 2.5 Flash Image)", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-08", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Google: Gemma 3 12B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.13, cache_read: 0.015 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Google: Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, reasoning: 2.5, cache_read: 0.03, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-3.1-flash-image-preview": { - id: "google/gemini-3.1-flash-image-preview", - name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 65536, output: 65536 }, - }, - "google/gemma-3-4b-it": { - id: "google/gemma-3-4b-it", - name: "Google: Gemma 3 4B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.08 }, - limit: { context: 131072, output: 19200 }, - }, - "google/gemini-2.5-pro-preview": { - id: "google/gemini-2.5-pro-preview", - name: "Google: Gemini 2.5 Pro Preview 06-05", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-05", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-27b-it": { - id: "google/gemma-2-27b-it", - name: "Google: Gemma 2 27B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-06-24", - last_updated: "2024-06-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 0.65 }, - limit: { context: 8192, output: 2048 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Google: Gemma 3 27B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11, cache_read: 0.02 }, - limit: { context: 128000, output: 65536 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Google: Gemini 2.5 Flash Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-2.0-flash-lite-001": { - id: "google/gemini-2.0-flash-lite-001", - name: "Google: Gemini 2.0 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-11", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "MoonshotAI: Kimi K2.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.2 }, - limit: { context: 262144, output: 65535 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "MoonshotAI: Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.15 }, - limit: { context: 131072, output: 26215 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "MoonshotAI: Kimi K2 0711", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131000, output: 26215 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "MoonshotAI: Kimi K2 Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.47, output: 2, cache_read: 0.2 }, - limit: { context: 131072, output: 65535 }, - }, - "aion-labs/aion-1.0": { - id: "aion-labs/aion-1.0", - name: "AionLabs: Aion-1.0", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 4, output: 8 }, - limit: { context: 131072, output: 32768 }, - }, - "aion-labs/aion-rp-llama-3.1-8b": { - id: "aion-labs/aion-rp-llama-3.1-8b", - name: "AionLabs: Aion-RP 1.0 (8B)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.6 }, - limit: { context: 32768, output: 32768 }, - }, - "aion-labs/aion-2.0": { - id: "aion-labs/aion-2.0", - name: "AionLabs: Aion-2.0", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.6 }, - limit: { context: 131072, output: 32768 }, - }, - "aion-labs/aion-1.0-mini": { - id: "aion-labs/aion-1.0-mini", - name: "AionLabs: Aion-1.0-Mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 1.4 }, - limit: { context: 131072, output: 32768 }, - }, - "thedrummer/unslopnemo-12b": { - id: "thedrummer/unslopnemo-12b", - name: "TheDrummer: UnslopNemo 12B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "thedrummer/cydonia-24b-v4.1": { - id: "thedrummer/cydonia-24b-v4.1", - name: "TheDrummer: Cydonia 24B V4.1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "thedrummer/skyfall-36b-v2": { - id: "thedrummer/skyfall-36b-v2", - name: "TheDrummer: Skyfall 36B V2", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "thedrummer/rocinante-12b": { - id: "thedrummer/rocinante-12b", - name: "TheDrummer: Rocinante 12B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.43 }, - limit: { context: 32768, output: 32768 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Anthropic: Claude Opus 4.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.7-sonnet:thinking": { - id: "anthropic/claude-3.7-sonnet:thinking", - name: "Anthropic: Claude 3.7 Sonnet (thinking)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Anthropic: Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Anthropic: Claude Opus 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Anthropic: Claude 3.5 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Anthropic: Claude Sonnet 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Anthropic: Claude Sonnet 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Anthropic: Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Anthropic: Claude 3 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-03-07", - last_updated: "2024-03-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Anthropic: Claude Opus 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Anthropic: Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Anthropic: Claude Haiku 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Anthropic: Claude Sonnet 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 1000000, output: 128000 }, - }, - "switchpoint/router": { - id: "switchpoint/router", - name: "Switchpoint Router", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-07-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 3.4 }, - limit: { context: 131072, output: 32768 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "Xiaomi: MiMo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29, cache_read: 0.045 }, - limit: { context: 262144, output: 65536 }, - }, - "bytedance/ui-tars-1.5-7b": { - id: "bytedance/ui-tars-1.5-7b", - name: "ByteDance: UI-TARS 7B ", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-07-23", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, output: 2048 }, - }, - "tngtech/deepseek-r1t2-chimera": { - id: "tngtech/deepseek-r1t2-chimera", - name: "TNG: DeepSeek R1T2 Chimera", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-08", - last_updated: "2025-07-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85, cache_read: 0.125 }, - limit: { context: 163840, output: 163840 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "Meituan: LongCat Flash Chat", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8, cache_read: 0.2 }, - limit: { context: 131072, output: 131072 }, - }, - }, - }, - "sap-ai-core": { - id: "sap-ai-core", - env: ["AICORE_SERVICE_KEY"], - npm: "@jerome-benoit/sap-ai-provider-v2", - name: "SAP AI Core", - doc: "https://help.sap.com/docs/sap-ai-core", - models: { - "anthropic--claude-4.6-opus": { - id: "anthropic--claude-4.6-opus", - name: "anthropic--claude-4.6-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic--claude-3-haiku": { - id: "anthropic--claude-3-haiku", - name: "anthropic--claude-3-haiku", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic--claude-3-opus": { - id: "anthropic--claude-3-opus", - name: "anthropic--claude-3-opus", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "gpt-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic--claude-3.7-sonnet": { - id: "anthropic--claude-3.7-sonnet", - name: "anthropic--claude-3.7-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "sonar-pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic--claude-4.5-sonnet": { - id: "anthropic--claude-4.5-sonnet", - name: "anthropic--claude-4.5-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic--claude-4.6-sonnet": { - id: "anthropic--claude-4.6-sonnet", - name: "anthropic--claude-4.6-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "sonar-deep-research", - family: "sonar-deep-research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-02-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, reasoning: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic--claude-4.5-opus": { - id: "anthropic--claude-4.5-opus", - name: "anthropic--claude-4.5-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - sonar: { - id: "sonar", - name: "sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic--claude-4-opus": { - id: "anthropic--claude-4-opus", - name: "anthropic--claude-4-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic--claude-3-sonnet": { - id: "anthropic--claude-3-sonnet", - name: "anthropic--claude-3-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic--claude-4-sonnet": { - id: "anthropic--claude-4-sonnet", - name: "anthropic--claude-4-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "gemini-2.5-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic--claude-4.5-haiku": { - id: "anthropic--claude-4.5-haiku", - name: "anthropic--claude-4.5-haiku", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "gpt-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "gpt-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "gpt-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "anthropic--claude-3.5-sonnet": { - id: "anthropic--claude-3.5-sonnet", - name: "anthropic--claude-3.5-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - }, - }, - morph: { - id: "morph", - env: ["MORPH_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.morphllm.com/v1", - name: "Morph", - doc: "https://docs.morphllm.com/api-reference/introduction", - models: { - auto: { - id: "auto", - name: "Auto", - family: "auto", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 1.55 }, - limit: { context: 32000, output: 32000 }, - }, - "morph-v3-fast": { - id: "morph-v3-fast", - name: "Morph v3 Fast", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 16000, output: 16000 }, - }, - "morph-v3-large": { - id: "morph-v3-large", - name: "Morph v3 Large", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 32000, output: 32000 }, - }, - }, - }, - "cloudflare-ai-gateway": { - id: "cloudflare-ai-gateway", - env: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"], - npm: "ai-gateway-provider", - name: "Cloudflare AI Gateway", - doc: "https://developers.cloudflare.com/ai-gateway/", - models: { - "workers-ai/@cf/myshell-ai/melotts": { - id: "workers-ai/@cf/myshell-ai/melotts", - name: "MyShell MeloTTS", - family: "melotts", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { - id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", - name: "IBM Granite 4.0 H Micro", - family: "granite", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/huggingface/distilbert-sst-2-int8": { - id: "workers-ai/@cf/huggingface/distilbert-sst-2-int8", - name: "DistilBERT SST-2 INT8", - family: "distilbert", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.026, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/zai-org/glm-4.7-flash": { - id: "workers-ai/@cf/zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "workers-ai/@cf/pipecat-ai/smart-turn-v2": { - id: "workers-ai/@cf/pipecat-ai/smart-turn-v2", - name: "Pipecat Smart Turn v2", - family: "smart-turn", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { - id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/facebook/bart-large-cnn": { - id: "workers-ai/@cf/facebook/bart-large-cnn", - name: "BART Large CNN", - family: "bart", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it": { - id: "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it", - name: "Gemma SEA-LION v4 27B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { - id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { - id: "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 4.88 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/openai/gpt-oss-20b": { - id: "workers-ai/@cf/openai/gpt-oss-20b", - name: "GPT OSS 20B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/openai/gpt-oss-120b": { - id: "workers-ai/@cf/openai/gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1": { - id: "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1", - name: "Mistral 7B Instruct v0.1", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { - id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3-8b-instruct-awq": { - id: "workers-ai/@cf/meta/llama-3-8b-instruct-awq", - name: "Llama 3 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-guard-3-8b": { - id: "workers-ai/@cf/meta/llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 0.03 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/m2m100-1.2b": { - id: "workers-ai/@cf/meta/m2m100-1.2b", - name: "M2M100 1.2B", - family: "m2m", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-2-7b-chat-fp16": { - id: "workers-ai/@cf/meta/llama-2-7b-chat-fp16", - name: "Llama 2 7B Chat FP16", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 6.67 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049, output: 0.68 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { - id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", - name: "Llama 3.3 70B Instruct FP8 Fast", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.25 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-1b-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8", - name: "Llama 3.1 8B Instruct FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.29 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-3b-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq", - name: "Llama 3.1 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3-8b-instruct": { - id: "workers-ai/@cf/meta/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.83 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.8299999999999998 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct": { - id: "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct", - name: "Qwen 2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen3-embedding-0.6b": { - id: "workers-ai/@cf/qwen/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwq-32b": { - id: "workers-ai/@cf/qwen/qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { - id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/google/gemma-3-12b-it": { - id: "workers-ai/@cf/google/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/moonshotai/kimi-k2.5": { - id: "workers-ai/@cf/moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B": { - id: "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B", - name: "IndicTrans2 EN-Indic 1B", - family: "indictrans", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/pfnet/plamo-embedding-1b": { - id: "workers-ai/@cf/pfnet/plamo-embedding-1b", - name: "PLaMo Embedding 1B", - family: "plamo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.019, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-small-en-v1.5": { - id: "workers-ai/@cf/baai/bge-small-en-v1.5", - name: "BGE Small EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-large-en-v1.5": { - id: "workers-ai/@cf/baai/bge-large-en-v1.5", - name: "BGE Large EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-reranker-base": { - id: "workers-ai/@cf/baai/bge-reranker-base", - name: "BGE Reranker Base", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0031, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-base-en-v1.5": { - id: "workers-ai/@cf/baai/bge-base-en-v1.5", - name: "BGE Base EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.067, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-m3": { - id: "workers-ai/@cf/baai/bge-m3", - name: "BGE M3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/aura-2-en": { - id: "workers-ai/@cf/deepgram/aura-2-en", - name: "Deepgram Aura 2 (EN)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/aura-2-es": { - id: "workers-ai/@cf/deepgram/aura-2-es", - name: "Deepgram Aura 2 (ES)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/nova-3": { - id: "workers-ai/@cf/deepgram/nova-3", - name: "Deepgram Nova 3", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5-turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2021-09-01", - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4": { - id: "openai/gpt-4", - name: "GPT-4", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "anthropic/claude-opus-4-1": { - id: "anthropic/claude-opus-4-1", - name: "Claude Opus 4.1 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3-5-haiku": { - id: "anthropic/claude-3-5-haiku", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-sonnet": { - id: "anthropic/claude-3-sonnet", - name: "Claude Sonnet 3", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-3-opus": { - id: "anthropic/claude-3-opus", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - }, - }, - "github-copilot": { - id: "github-copilot", - env: ["GITHUB_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.githubcopilot.com", - name: "GitHub Copilot", - doc: "https://docs.github.com/en/copilot", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1-Codex-max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "claude-opus-4.6": { - id: "claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 64000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 216000, input: 128000, output: 16000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-27", - last_updated: "2025-08-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "claude-sonnet-4.5": { - id: "claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 32000 }, - }, - "claude-opus-41": { - id: "claude-opus-41", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 80000, output: 16000 }, - }, - "claude-opus-4.5": { - id: "claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 160000, input: 128000, output: 32000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 64000, output: 4096 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "claude-haiku-4.5": { - id: "claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 32000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 64000, output: 16384 }, - }, - "claude-sonnet-4.6": { - id: "claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, input: 128000, output: 32000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - }, - }, - mixlayer: { - id: "mixlayer", - env: ["MIXLAYER_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://models.mixlayer.ai/v1", - name: "Mixlayer", - doc: "https://docs.mixlayer.com", - models: { - "qwen/qwen3.5-122b-a10b": { - id: "qwen/qwen3.5-122b-a10b", - name: "Qwen3.5 122B A10B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 3.2 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3.5-27b": { - id: "qwen/qwen3.5-27b", - name: "Qwen3.5 27B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3.5-9b": { - id: "qwen/qwen3.5-9b", - name: "Qwen3.5 9B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3.5-35b-a3b": { - id: "qwen/qwen3.5-35b-a3b", - name: "Qwen3.5 35B A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.3 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - "xiaomi-token-plan-sgp": { - id: "xiaomi-token-plan-sgp", - env: ["XIAOMI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://token-plan-sgp.xiaomimimo.com/v1", - name: "Xiaomi Token Plan (Singapore)", - doc: "https://platform.xiaomimimo.com/#/docs", - models: { - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1000000, output: 128000 }, - }, - "mimo-v2-tts": { - id: "mimo-v2-tts", - name: "MiMo-V2-TTS", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8000, output: 16000 }, - }, - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 256000, output: 128000 }, - }, - }, - }, - zai: { - id: "zai", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.z.ai/api/paas/v4", - name: "Z.AI", - doc: "https://docs.z.ai/guides/overview/pricing", - models: { - "glm-5v-turbo": { - id: "glm-5v-turbo", - name: "glm-5v-turbo", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5.1": { - id: "glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 4.4, cache_read: 0.26, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - }, - }, - opencode: { - id: "opencode", - env: ["OPENCODE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://opencode.ai/zen/v1", - name: "OpenCode Zen", - doc: "https://opencode.ai/docs/zen", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.08 }, - limit: { context: 262144, output: 65536 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-free": { - id: "glm-4.7-free", - name: "GLM-4.7 Free", - family: "glm-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "gemini-3.1-pro": { - id: "gemini-3.1-pro", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/google" }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "kimi-k2.5-free": { - id: "kimi-k2.5-free", - name: "Kimi K2.5 Free", - family: "kimi-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "minimax-m2.5-free": { - id: "minimax-m2.5-free", - name: "MiniMax M2.5 Free", - family: "minimax-free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "big-pickle": { - id: "big-pickle", - name: "Big Pickle", - family: "big-pickle", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-10-17", - last_updated: "2025-10-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-3-5-haiku": { - id: "claude-3-5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "glm-5.1": { - id: "glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gemini-3-flash": { - id: "gemini-3-flash", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/google" }, - }, - "trinity-large-preview-free": { - id: "trinity-large-preview-free", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - status: "deprecated", - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "glm-5-free": { - id: "glm-5-free", - name: "GLM-5 Free", - family: "glm-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.1-free": { - id: "minimax-m2.1-free", - name: "MiniMax M2.1 Free", - family: "minimax-free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - provider: { npm: "@ai-sdk/anthropic" }, - }, - "qwen3.6-plus-free": { - id: "qwen3.6-plus-free", - name: "Qwen3.6 Plus Free", - family: "qwen-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-30", - last_updated: "2026-03-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1048576, output: 64000 }, - status: "deprecated", - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "gemini-3-pro": { - id: "gemini-3-pro", - name: "Gemini 3 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - status: "deprecated", - provider: { npm: "@ai-sdk/google" }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "grok-code": { - id: "grok-code", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-20", - last_updated: "2025-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 256000, output: 256000 }, - status: "deprecated", - }, - "mimo-v2-flash-free": { - id: "mimo-v2-flash-free", - name: "MiMo V2 Flash Free", - family: "mimo-flash-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 65536 }, - status: "deprecated", - }, - "gpt-5.3-codex-spark": { - id: "gpt-5.3-codex-spark", - name: "GPT-5.3 Codex Spark", - family: "gpt-codex-spark", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 128000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "qwen3-coder": { - id: "qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.8 }, - limit: { context: 262144, output: 65536 }, - status: "deprecated", - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "mimo-v2-pro-free": { - id: "mimo-v2-pro-free", - name: "MiMo V2 Pro Free", - family: "mimo-pro-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1048576, output: 64000 }, - status: "deprecated", - }, - "nemotron-3-super-free": { - id: "nemotron-3-super-free", - name: "Nemotron 3 Super Free", - family: "nemotron-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 128000 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "mimo-v2-omni-free": { - id: "mimo-v2-omni-free", - name: "MiMo V2 Omni Free", - family: "mimo-omni-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 64000 }, - status: "deprecated", - }, - }, - }, - stepfun: { - id: "stepfun", - env: ["STEPFUN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.stepfun.com/v1", - name: "StepFun", - doc: "https://platform.stepfun.com/docs/zh/overview/concept", - models: { - "step-3.5-flash-2603": { - id: "step-3.5-flash-2603", - name: "Step 3.5 Flash 2603", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "step-1-32k": { - id: "step-1-32k", - name: "Step 1 (32K)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-01", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.05, output: 9.59, cache_read: 0.41 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "step-3.5-flash": { - id: "step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.096, output: 0.288, cache_read: 0.019 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "step-2-16k": { - id: "step-2-16k", - name: "Step 2 (16K)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-01", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5.21, output: 16.44, cache_read: 1.04 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - }, - }, - nebius: { - id: "nebius", - env: ["NEBIUS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.tokenfactory.nebius.com/v1", - name: "Nebius Token Factory", - doc: "https://docs.tokenfactory.nebius.com/", - models: { - "NousResearch/Hermes-4-70B": { - id: "NousResearch/Hermes-4-70B", - name: "Hermes-4-70B", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, reasoning: 0.4, cache_read: 0.013, cache_write: 0.16 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "NousResearch/Hermes-4-405B": { - id: "NousResearch/Hermes-4-405B", - name: "Hermes-4-405B", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, reasoning: 3, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "black-forest-labs/flux-schnell": { - id: "black-forest-labs/flux-schnell", - name: "FLUX.1-schnell", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-07", - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 77, input: 77, output: 0 }, - }, - "black-forest-labs/flux-dev": { - id: "black-forest-labs/flux-dev", - name: "FLUX.1-dev", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-07", - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 77, input: 77, output: 0 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen2.5-VL-72B-Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3-30B-A3B-Thinking-2507", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, reasoning: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "Qwen/Qwen3-32B-fast": { - id: "Qwen/Qwen3-32B-fast", - name: "Qwen3-32B (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen3-Embedding-8B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2025-10", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3-30B-A3B-Instruct-2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 8192 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3-32B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3-Coder-30B-A3B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 8192 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.2, reasoning: 1.2, cache_read: 0.015, cache_write: 0.18 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.8 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen2.5-Coder-7B-fast": { - id: "Qwen/Qwen2.5-Coder-7B-fast", - name: "Qwen2.5-Coder-7B (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-19", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "PrimeIntellect/INTELLECT-3": { - id: "PrimeIntellect/INTELLECT-3", - name: "INTELLECT-3", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-25", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "GLM-4.5", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM-4.5-Air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-4.7-FP8": { - id: "zai-org/GLM-4.7-FP8", - name: "GLM-4.7 (FP8)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-03-01", - last_updated: "2026-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3.2, cache_read: 0.1, cache_write: 1 }, - limit: { context: 200000, input: 200000, output: 16384 }, - }, - "BAAI/bge-en-icl": { - id: "BAAI/bge-en-icl", - name: "BGE-ICL", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-06", - release_date: "2024-07-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "BAAI/bge-multilingual-gemma2": { - id: "BAAI/bge-multilingual-gemma2", - name: "bge-multilingual-gemma2", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-06", - release_date: "2024-07-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 8192, input: 8192, output: 0 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-12-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, cache_read: 0.013, cache_write: 0.16 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct-fast": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", - name: "Meta-Llama-3.1-8B-Instruct (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-07-23", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-fast": { - id: "meta-llama/Llama-3.3-70B-Instruct-fast", - name: "Llama-3.3-70B-Instruct (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-12-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "meta-llama/Llama-Guard-3-8B": { - id: "meta-llama/Llama-Guard-3-8B", - name: "Llama-Guard-3-8B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: false, - knowledge: "2024-04", - release_date: "2024-04-18", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 8192, input: 8000, output: 1024 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "Meta-Llama-3.1-8B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-07-23", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "nvidia/Nemotron-Nano-V2-12b": { - id: "nvidia/Nemotron-Nano-V2-12b", - name: "Nemotron-Nano-V2-12b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.2, cache_read: 0.007, cache_write: 0.08 }, - limit: { context: 32000, input: 30000, output: 4096 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron-3-Super-120B-A12B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": { - id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", - name: "Llama-3.1-Nemotron-Ultra-253B-v1", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": { - id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B", - name: "Nemotron-3-Nano-30B-A3B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24, cache_read: 0.006, cache_write: 0.075 }, - limit: { context: 32000, input: 30000, output: 4096 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek-V3-0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5, cache_read: 0.05, cache_write: 0.1875 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3-0324-fast": { - id: "deepseek-ai/DeepSeek-V3-0324-fast", - name: "DeepSeek-V3-0324 (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.25, cache_read: 0.075, cache_write: 0.28125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1-0528-fast": { - id: "deepseek-ai/DeepSeek-R1-0528-fast", - name: "DeepSeek R1 0528 Fast", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.4, reasoning: 2.4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 128000, input: 120000, output: 32768 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45, reasoning: 0.45, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 163000, input: 160000, output: 16384 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2, cache_read: 0.005, cache_write: 0.06 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6, reasoning: 0.6, cache_read: 0.015, cache_write: 0.18 }, - limit: { context: 128000, input: 124000, output: 8192 }, - }, - "google/gemma-2-2b-it": { - id: "google/gemma-2-2b-it", - name: "Gemma-2-2b-it", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-07-31", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 8192, input: 8000, output: 4096 }, - }, - "google/gemma-2-9b-it-fast": { - id: "google/gemma-2-9b-it-fast", - name: "Gemma-2-9b-it (Fast)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-27", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.0375 }, - limit: { context: 8192, input: 8000, output: 4096 }, - }, - "google/gemma-3-27b-it-fast": { - id: "google/gemma-3-27b-it-fast", - name: "Gemma-3-27b-it (Fast)", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 110000, input: 100000, output: 8192 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma-3-27b-it", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 110000, input: 100000, output: 8192 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi-K2-Thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, reasoning: 2.5, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi-K2-Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-05", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.4, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 200000, input: 190000, output: 8192 }, - }, - "moonshotai/Kimi-K2.5-fast": { - id: "moonshotai/Kimi-K2.5-fast", - name: "Kimi-K2.5-fast", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-15", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.5, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-15", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.5, reasoning: 2.5, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-02-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, reasoning: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "intfloat/e5-mistral-7b-instruct": { - id: "intfloat/e5-mistral-7b-instruct", - name: "e5-mistral-7b-instruct", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2023-12", - release_date: "2024-01-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - }, - }, - poe: { - id: "poe", - env: ["POE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.poe.com/v1", - name: "Poe", - doc: "https://creator.poe.com/docs/external-applications/openai-compatible-api", - models: { - "topazlabs-co/topazlabs": { - id: "topazlabs-co/topazlabs", - name: "TopazLabs", - family: "topazlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 204, output: 0 }, - }, - "novita/kimi-k2.5": { - id: "novita/kimi-k2.5", - name: "kimi-k2.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 262144 }, - }, - "novita/glm-4.7": { - id: "novita/glm-4.7", - name: "glm-4.7", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/glm-5": { - id: "novita/glm-5", - name: "glm-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/minimax-m2.1": { - id: "novita/minimax-m2.1", - name: "minimax-m2.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-26", - last_updated: "2025-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/glm-4.6": { - id: "novita/glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "novita/glm-4.6v": { - id: "novita/glm-4.6v", - name: "glm-4.6v", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 131000, output: 32768 }, - }, - "novita/deepseek-v3.2": { - id: "novita/deepseek-v3.2", - name: "DeepSeek-V3.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4, cache_read: 0.13 }, - limit: { context: 128000, output: 0 }, - }, - "novita/glm-4.7-flash": { - id: "novita/glm-4.7-flash", - name: "glm-4.7-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 65500 }, - }, - "novita/glm-4.7-n": { - id: "novita/glm-4.7-n", - name: "glm-4.7-n", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/kimi-k2-thinking": { - id: "novita/kimi-k2-thinking", - name: "kimi-k2-thinking", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 0 }, - }, - "fireworks-ai/kimi-k2.5-fw": { - id: "fireworks-ai/kimi-k2.5-fw", - name: "Kimi-K2.5-FW", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, input: 245760, output: 16384 }, - }, - "elevenlabs/elevenlabs-v2.5-turbo": { - id: "elevenlabs/elevenlabs-v2.5-turbo", - name: "ElevenLabs-v2.5-Turbo", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-28", - last_updated: "2024-10-28", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "elevenlabs/elevenlabs-v3": { - id: "elevenlabs/elevenlabs-v3", - name: "ElevenLabs-v3", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "elevenlabs/elevenlabs-music": { - id: "elevenlabs/elevenlabs-music", - name: "ElevenLabs-Music", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-29", - last_updated: "2025-08-29", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 2000, output: 0 }, - }, - "cerebras/gpt-oss-120b-cs": { - id: "cerebras/gpt-oss-120b-cs", - name: "gpt-oss-120b-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/llama-3.1-8b-cs": { - id: "cerebras/llama-3.1-8b-cs", - name: "llama-3.1-8b-cs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-13", - last_updated: "2025-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/qwen3-32b-cs": { - id: "cerebras/qwen3-32b-cs", - name: "qwen3-32b-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-15", - last_updated: "2025-05-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/qwen3-235b-2507-cs": { - id: "cerebras/qwen3-235b-2507-cs", - name: "qwen3-235b-2507-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/llama-3.3-70b-cs": { - id: "cerebras/llama-3.3-70b-cs", - name: "llama-3.3-70b-cs", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-13", - last_updated: "2025-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "stabilityai/stablediffusionxl": { - id: "stabilityai/stablediffusionxl", - name: "StableDiffusionXL", - family: "stable-diffusion", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-07-09", - last_updated: "2023-07-09", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 200, output: 0 }, - }, - "xai/grok-code-fast-1": { - id: "xai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-22", - last_updated: "2025-08-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 128000 }, - }, - "xai/grok-4-fast-reasoning": { - id: "xai/grok-4-fast-reasoning", - name: "Grok-4-Fast-Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "xai/grok-4.1-fast-non-reasoning": { - id: "xai/grok-4.1-fast-non-reasoning", - name: "Grok-4.1-Fast-Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok-4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 128000 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4.20-multi-agent": { - id: "xai/grok-4.20-multi-agent", - name: "Grok-4.20-Multi-Agent", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2 }, - limit: { context: 128000, output: 0 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4-fast-non-reasoning": { - id: "xai/grok-4-fast-non-reasoning", - name: "Grok-4-Fast-Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "xai/grok-4.1-fast-reasoning": { - id: "xai/grok-4.1-fast-reasoning", - name: "Grok-4.1-Fast-Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 30000 }, - }, - "runwayml/runway": { - id: "runwayml/runway", - name: "Runway", - family: "runway", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 256, output: 0 }, - }, - "runwayml/runway-gen-4-turbo": { - id: "runwayml/runway-gen-4-turbo", - name: "Runway-Gen-4-Turbo", - family: "runway", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-09", - last_updated: "2025-05-09", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 256, output: 0 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/sora-2-pro": { - id: "openai/sora-2-pro", - name: "Sora-2-Pro", - family: "sora", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/chatgpt-4o-latest": { - id: "openai/chatgpt-4o-latest", - name: "ChatGPT-4o-Latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-14", - last_updated: "2024-08-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.5, output: 14 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5-Chat", - family: "gpt-codex", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 19, output: 150 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-aug": { - id: "openai/gpt-4o-aug", - name: "GPT-4o-Aug", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-11-21", - last_updated: "2024-11-21", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 9, cache_read: 1.1 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-4-classic-0314": { - id: "openai/gpt-4-classic-0314", - name: "GPT-4-Classic-0314", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-26", - last_updated: "2024-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 27, output: 54 }, - limit: { context: 8192, output: 4096 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045, output: 0.36, cache_read: 0.0045 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-10", - last_updated: "2026-02-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4-Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-13", - last_updated: "2023-09-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 9, output: 27 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 18, output: 72 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "o3-mini-high", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.54, cache_read: 0.068 }, - limit: { context: 124096, output: 4096 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "o4-mini-deep-research", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.68, output: 4, cache_read: 0.068 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/dall-e-3": { - id: "openai/dall-e-3", - name: "DALL-E-3", - family: "dall-e", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 800, output: 0 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4, cache_read: 0.25 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4-Nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 1.1, cache_read: 0.018 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-image-1": { - id: "openai/gpt-image-1", - name: "GPT-Image-1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-31", - last_updated: "2025-03-31", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-image-1-mini": { - id: "openai/gpt-image-1-mini", - name: "GPT-Image-1-Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2024-12-18", - last_updated: "2024-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 14, output: 54 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - cost: { input: 27, output: 160 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5-Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-13", - last_updated: "2023-09-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 1.4 }, - limit: { context: 16384, output: 2048 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9, output: 36, cache_read: 2.2 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "o1-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-03-19", - last_updated: "2025-03-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 140, output: 540 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-search": { - id: "openai/gpt-4o-search", - name: "GPT-4o-Search", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 9 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "pdf"], output: ["image"] }, - open_weights: false, - cost: { input: 2.2, output: 14, cache_read: 0.22 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.3-codex-spark": { - id: "openai/gpt-5.3-codex-spark", - name: "GPT-5.3-Codex-Spark", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-04", - last_updated: "2026-03-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-3.5-turbo-raw": { - id: "openai/gpt-3.5-turbo-raw", - name: "GPT-3.5-Turbo-Raw", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-27", - last_updated: "2023-09-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 1.4 }, - limit: { context: 4524, output: 2048 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36, cache_read: 0.022 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5-Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 14, output: 110 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/sora-2": { - id: "openai/sora-2", - name: "Sora-2", - family: "sora", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-instant": { - id: "openai/gpt-5.2-instant", - name: "GPT-5.2-Instant", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-mini-search": { - id: "openai/gpt-4o-mini-search", - name: "GPT-4o-mini-Search", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.54 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-image-1.5": { - id: "openai/gpt-image-1.5", - name: "gpt-image-1.5", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "GPT-3.5-Turbo-Instruct", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-20", - last_updated: "2023-09-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 1.8 }, - limit: { context: 3500, output: 1024 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.1-instant": { - id: "openai/gpt-5.1-instant", - name: "GPT-5.1-Instant", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.36, output: 1.4, cache_read: 0.09 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4-classic": { - id: "openai/gpt-4-classic", - name: "GPT-4-Classic", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-03-25", - last_updated: "2024-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 27, output: 54 }, - limit: { context: 8192, output: 4096 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.3-instant": { - id: "openai/gpt-5.3-instant", - name: "GPT-5.3-Instant", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "google/veo-3-fast": { - id: "google/veo-3-fast", - name: "Veo-3-Fast", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-13", - last_updated: "2025-10-13", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/veo-3.1-fast": { - id: "google/veo-3.1-fast", - name: "Veo-3.1-Fast", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-3.1-pro": { - id: "google/gemini-3.1-pro", - name: "Gemini-3.1-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/imagen-3-fast": { - id: "google/imagen-3-fast", - name: "Imagen-3-Fast", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-17", - last_updated: "2024-10-17", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.0-flash": { - id: "google/gemini-2.0-flash", - name: "Gemini-2.0-Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.42 }, - limit: { context: 990000, output: 8192 }, - }, - "google/gemini-deep-research": { - id: "google/gemini-deep-research", - name: "gemini-deep-research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 9.6 }, - limit: { context: 1048576, output: 0 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini-2.5-Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.87, output: 7, cache_read: 0.087 }, - limit: { context: 1065535, output: 65535 }, - }, - "google/imagen-3": { - id: "google/imagen-3", - name: "Imagen-3", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-15", - last_updated: "2024-10-15", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/nano-banana": { - id: "google/nano-banana", - name: "Nano-Banana", - family: "nano-banana", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, - limit: { context: 65536, output: 0 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini-2.5-Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-26", - last_updated: "2025-04-26", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, - limit: { context: 1065535, output: 65535 }, - }, - "google/gemini-3.1-flash-lite": { - id: "google/gemini-3.1-flash-lite", - name: "Gemini-3.1-Flash-Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash": { - id: "google/gemini-3-flash", - name: "Gemini-3-Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-07", - last_updated: "2025-10-07", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, cache_read: 0.04 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/veo-3.1": { - id: "google/veo-3.1", - name: "Veo-3.1", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/lyria": { - id: "google/lyria", - name: "Lyria", - family: "lyria", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "google/imagen-4-ultra": { - id: "google/imagen-4-ultra", - name: "Imagen-4-Ultra", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-24", - last_updated: "2025-05-24", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/nano-banana-pro": { - id: "google/nano-banana-pro", - name: "Nano-Banana-Pro", - family: "nano-banana", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 65536, output: 0 }, - }, - "google/gemini-3-pro": { - id: "google/gemini-3-pro", - name: "Gemini-3-Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 9.6, cache_read: 0.16 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/imagen-4-fast": { - id: "google/imagen-4-fast", - name: "Imagen-4-Fast", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/veo-3": { - id: "google/veo-3", - name: "Veo-3", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini-2.5-Flash-Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-19", - last_updated: "2025-06-19", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 1024000, output: 64000 }, - }, - "google/imagen-4": { - id: "google/imagen-4", - name: "Imagen-4", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemma-4-31b": { - id: "google/gemma-4-31b", - name: "Gemma-4-31B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 8192 }, - }, - "google/gemini-2.0-flash-lite": { - id: "google/gemini-2.0-flash-lite", - name: "Gemini-2.0-Flash-Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.052, output: 0.21 }, - limit: { context: 990000, output: 8192 }, - }, - "google/veo-2": { - id: "google/veo-2", - name: "Veo-2", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-02", - last_updated: "2024-12-02", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "lumalabs/ray2": { - id: "lumalabs/ray2", - name: "Ray2", - family: "ray", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 5000, output: 0 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude-Opus-4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, - limit: { context: 196608, output: 32000 }, - }, - "anthropic/claude-sonnet-3.5": { - id: "anthropic/claude-sonnet-3.5", - name: "Claude-Sonnet-3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-haiku-3": { - id: "anthropic/claude-haiku-3", - name: "Claude-Haiku-3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-03-09", - last_updated: "2024-03-09", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 1.1, cache_read: 0.021, cache_write: 0.26 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude-Opus-4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, - limit: { context: 983040, output: 128000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude-Sonnet-4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude-Sonnet-4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 32768 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude-Opus-4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-21", - last_updated: "2025-11-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, - limit: { context: 196608, output: 64000 }, - }, - "anthropic/claude-sonnet-3.7": { - id: "anthropic/claude-sonnet-3.7", - name: "Claude-Sonnet-3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 196608, output: 128000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude-Opus-4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, - limit: { context: 192512, output: 28672 }, - }, - "anthropic/claude-haiku-3.5": { - id: "anthropic/claude-haiku-3.5", - name: "Claude-Haiku-3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.68, output: 3.4, cache_read: 0.068, cache_write: 0.85 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude-Haiku-4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 4.3, cache_read: 0.085, cache_write: 1.1 }, - limit: { context: 192000, output: 64000 }, - }, - "anthropic/claude-sonnet-3.5-june": { - id: "anthropic/claude-sonnet-3.5-june", - name: "Claude-Sonnet-3.5-June", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-11-18", - last_updated: "2024-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude-Sonnet-4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 128000 }, - }, - "ideogramai/ideogram": { - id: "ideogramai/ideogram", - name: "Ideogram", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-04-03", - last_updated: "2024-04-03", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2": { - id: "ideogramai/ideogram-v2", - name: "Ideogram-v2", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-21", - last_updated: "2024-08-21", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2a-turbo": { - id: "ideogramai/ideogram-v2a-turbo", - name: "Ideogram-v2a-Turbo", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2a": { - id: "ideogramai/ideogram-v2a", - name: "Ideogram-v2a", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "trytako/tako": { - id: "trytako/tako", - name: "Tako", - family: "tako", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 2048, output: 0 }, - }, - "poetools/claude-code": { - id: "poetools/claude-code", - name: "claude-code", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-27", - last_updated: "2025-11-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - }, - }, - helicone: { - id: "helicone", - env: ["HELICONE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://ai-gateway.helicone.ai/v1", - name: "Helicone", - doc: "https://helicone.ai/models", - models: { - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 40 }, - limit: { context: 128000, output: 16400 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "xAI Grok 4.1 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gemma2-9b-it": { - id: "gemma2-9b-it", - name: "Google Gemma 2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-25", - last_updated: "2024-06-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Meta Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.39 }, - limit: { context: 128000, output: 16400 }, - }, - "llama-4-scout": { - id: "llama-4-scout", - name: "Meta Llama 4 Scout 17B 16E", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 131072, output: 8192 }, - }, - "chatgpt-4o-latest": { - id: "chatgpt-4o-latest", - name: "OpenAI ChatGPT-4o", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-14", - last_updated: "2024-08-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 20, cache_read: 2.5 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-3.5-sonnet-v2": { - id: "claude-3.5-sonnet-v2", - name: "Anthropic: Claude 3.5 Sonnet v2", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "hermes-2-pro-llama-3-8b": { - id: "hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 131072, output: 131072 }, - }, - "claude-3.7-sonnet": { - id: "claude-3.7-sonnet", - name: "Anthropic: Claude 3.7 Sonnet", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-02", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "llama-prompt-guard-2-22m": { - id: "llama-prompt-guard-2-22m", - name: "Meta Llama Prompt Guard 2 22M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 512, output: 2 }, - }, - "o1-mini": { - id: "o1-mini", - name: "OpenAI: o1-mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-4.1-mini-2025-04-14": { - id: "gpt-4.1-mini-2025-04-14", - name: "OpenAI GPT-4.1 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.13 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.59 }, - limit: { context: 131072, output: 40960 }, - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Meta Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.7899999999999999 }, - limit: { context: 131072, output: 32678 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "OpenAI GPT-5 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "OpenAI GPT-5 Nano", - family: "gpt-nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.39999999999999997, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Google Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.19999999999999998 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Anthropic: Claude 3 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-03-07", - last_updated: "2024-03-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "llama-4-maverick": { - id: "llama-4-maverick", - name: "Meta Llama 4 Maverick 17B 128E", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 8192 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Anthropic: Claude Sonnet 4.5 (20250929)", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Google Gemini 2.5 Pro", - family: "gemini-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.3125, cache_write: 1.25 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-4.5-opus": { - id: "claude-4.5-opus", - name: "Anthropic: Claude Opus 4.5", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "xAI Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 30000 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Perplexity Sonar Pro", - family: "sonar-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 4096 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral-Large", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "o3-pro": { - id: "o3-pro", - name: "OpenAI o3 Pro", - family: "o-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Anthropic: Claude Opus 4.1", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "OpenAI GPT-4o-mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-4.5-haiku": { - id: "claude-4.5-haiku", - name: "Anthropic: Claude 4.5 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, - limit: { context: 200000, output: 8192 }, - }, - "kimi-k2-0711": { - id: "kimi-k2-0711", - name: "Kimi K2 (07/11)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5700000000000001, output: 2.3 }, - limit: { context: 131072, output: 16384 }, - }, - "o4-mini": { - id: "o4-mini", - name: "OpenAI o4 Mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, - limit: { context: 200000, output: 100000 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Sonar Deep Research", - family: "sonar-deep-research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 4096 }, - }, - "gemma-3-12b-it": { - id: "gemma-3-12b-it", - name: "Google Gemma 3 12B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, - limit: { context: 131072, output: 8192 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Google Gemini 2.5 Flash", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.3 }, - limit: { context: 1048576, output: 65535 }, - }, - "deepseek-tng-r1t2-chimera": { - id: "deepseek-tng-r1t2-chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-02", - last_updated: "2025-07-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 130000, output: 163840 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "OpenAI: GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Anthropic: Claude Sonnet 4", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "xAI Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-25", - last_updated: "2024-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "OpenAI GPT-5.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, - limit: { context: 128000, output: 64000 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "xAI: Grok 4 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - o1: { - id: "o1", - name: "OpenAI: o1", - family: "o", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "llama-3.1-8b-instant": { - id: "llama-3.1-8b-instant", - name: "Meta Llama 3.1 8B Instant", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.08 }, - limit: { context: 131072, output: 32678 }, - }, - "o3-mini": { - id: "o3-mini", - name: "OpenAI o3 Mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2023-10", - release_date: "2023-10-01", - last_updated: "2023-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - sonar: { - id: "sonar", - name: "Perplexity Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127000, output: 4096 }, - }, - "kimi-k2-0905": { - id: "kimi-k2-0905", - name: "Kimi K2 (09/05)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2, cache_read: 0.39999999999999997 }, - limit: { context: 262144, output: 16384 }, - }, - "mistral-small": { - id: "mistral-small", - name: "Mistral Small", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-02", - release_date: "2024-02-26", - last_updated: "2024-02-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 75, output: 200 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.29 }, - limit: { context: 41000, output: 41000 }, - }, - "codex-mini-latest": { - id: "codex-mini-latest", - name: "OpenAI Codex Mini Latest", - family: "gpt-codex-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "grok-4": { - id: "grok-4", - name: "xAI Grok 4", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-09", - last_updated: "2024-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 256000 }, - }, - "qwen3-235b-a22b-thinking": { - id: "qwen3-235b-a22b-thinking", - name: "Qwen3 235B A22B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.9000000000000004 }, - limit: { context: 262144, output: 81920 }, - }, - "qwen2.5-coder-7b-fast": { - id: "qwen2.5-coder-7b-fast", - name: "Qwen2.5 Coder 7B fast", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-15", - last_updated: "2024-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 32000, output: 8192 }, - }, - "llama-3.1-8b-instruct-turbo": { - id: "llama-3.1-8b-instruct-turbo", - name: "Meta Llama 3.1 8B Instruct Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 16384 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "Zai GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.44999999999999996, output: 1.5 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "OpenAI: GPT-5 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Anthropic: Claude Opus 4.1 (20250805)", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "OpenAI GPT-5.1 Chat", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Anthropic: Claude 4.5 Haiku (20251001)", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, - limit: { context: 200000, output: 8192 }, - }, - "sonar-reasoning": { - id: "sonar-reasoning", - name: "Perplexity Sonar Reasoning", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 127000, output: 4096 }, - }, - "claude-opus-4": { - id: "claude-opus-4", - name: "Anthropic: Claude Opus 4", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "llama-prompt-guard-2-86m": { - id: "llama-prompt-guard-2-86m", - name: "Meta Llama Prompt Guard 2 86M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 512, output: 2 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "OpenAI GPT-4.1 Nano", - family: "gpt-nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09999999999999999, output: 0.39999999999999997, cache_read: 0.024999999999999998 }, - limit: { context: 1047576, output: 32768 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09999999999999999, output: 0.3 }, - limit: { context: 262144, output: 262144 }, - }, - "claude-3.5-haiku": { - id: "claude-3.5-haiku", - name: "Anthropic: Claude 3.5 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7999999999999999, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "xAI Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 131072 }, - }, - o3: { - id: "o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "OpenAI GPT-OSS 20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.19999999999999998 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "OpenAI: GPT-5 Pro", - family: "gpt-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 128000, output: 32768 }, - }, - "llama-guard-4": { - id: "llama-guard-4", - name: "Meta Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.21 }, - limit: { context: 131072, output: 1024 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "OpenAI GPT-4o", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-vl-235b-a22b-instruct": { - id: "qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Google Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.09999999999999999, - output: 0.39999999999999997, - cache_read: 0.024999999999999998, - cache_write: 0.09999999999999999, - }, - limit: { context: 1048576, output: 65535 }, - }, - "qwen3-coder": { - id: "qwen3-coder", - name: "Qwen3 Coder 480B A35B Instruct Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 0.95 }, - limit: { context: 262144, output: 16384 }, - }, - "gpt-5": { - id: "gpt-5", - name: "OpenAI GPT-5", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "ernie-4.5-21b-a3b-thinking": { - id: "ernie-4.5-21b-a3b-thinking", - name: "Baidu Ernie 4.5 21B A3B Thinking", - family: "ernie", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 128000, output: 8000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "OpenAI GPT-OSS 120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "OpenAI GPT-5 Chat Latest", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-09", - release_date: "2024-09-30", - last_updated: "2024-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-4.5-sonnet": { - id: "claude-4.5-sonnet", - name: "Anthropic: Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, - limit: { context: 128000, output: 8192 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Meta Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.049999999999999996 }, - limit: { context: 16384, output: 16384 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "OpenAI GPT-4.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 2 }, - limit: { context: 256000, output: 262144 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "OpenAI GPT-4.1 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-v3.1-terminus": { - id: "deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1, cache_read: 0.21600000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "OpenAI: GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-3": { - id: "grok-3", - name: "xAI Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 131072 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "xAI Grok 4 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Perplexity Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 4096 }, - }, - }, - }, - "ollama-cloud": { - id: "ollama-cloud", - env: ["OLLAMA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://ollama.com/v1", - name: "Ollama Cloud", - doc: "https://docs.ollama.com/cloud", - models: { - "minimax-m2.7": { - id: "minimax-m2.7", - name: "minimax-m2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "gpt-oss:20b": { - id: "gpt-oss:20b", - name: "gpt-oss:20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 32768 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "kimi-k2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "glm-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-22", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "gemma4:31b": { - id: "gemma4:31b", - name: "gemma4:31b", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - knowledge: "2025-01", - release_date: "2026-04-02", - last_updated: "2026-04-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 8192 }, - }, - "gpt-oss:120b": { - id: "gpt-oss:120b", - name: "gpt-oss:120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 32768 }, - }, - "qwen3.5:397b": { - id: "qwen3.5:397b", - name: "qwen3.5:397b", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - release_date: "2026-02-15", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 81920 }, - }, - "deepseek-v3.1:671b": { - id: "deepseek-v3.1:671b", - name: "deepseek-v3.1:671b", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-21", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 163840 }, - }, - "glm-5": { - id: "glm-5", - name: "glm-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "qwen3-vl:235b-instruct": { - id: "qwen3-vl:235b-instruct", - name: "qwen3-vl:235b-instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-09-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 131072 }, - }, - "gemma3:4b": { - id: "gemma3:4b", - name: "gemma3:4b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2026-04-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 1048576, output: 65536 }, - }, - "ministral-3:14b": { - id: "ministral-3:14b", - name: "ministral-3:14b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "minimax-m2", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-10-23", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 128000 }, - }, - "qwen3-next:80b": { - id: "qwen3-next:80b", - name: "qwen3-next:80b", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-09-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-vl:235b": { - id: "qwen3-vl:235b", - name: "qwen3-vl:235b", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2025-09-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 32768 }, - }, - "rnj-1:8b": { - id: "rnj-1:8b", - name: "rnj-1:8b", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-06", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 32768, output: 4096 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "minimax-m2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-23", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "glm-5.1": { - id: "glm-5.1", - name: "glm-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-03-27", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "mistral-large-3:675b": { - id: "mistral-large-3:675b", - name: "mistral-large-3:675b", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-12-02", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "ministral-3:8b": { - id: "ministral-3:8b", - name: "ministral-3:8b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "gemma3:12b": { - id: "gemma3:12b", - name: "gemma3:12b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "qwen3-coder:480b": { - id: "qwen3-coder:480b", - name: "qwen3-coder:480b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-22", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "nemotron-3-nano:30b": { - id: "nemotron-3-nano:30b", - name: "nemotron-3-nano:30b", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 1048576, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "glm-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-09-29", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "ministral-3:3b": { - id: "ministral-3:3b", - name: "ministral-3:3b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-10-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "gemma3:27b": { - id: "gemma3:27b", - name: "gemma3:27b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2025-07-27", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "devstral-2:123b": { - id: "devstral-2:123b", - name: "devstral-2:123b", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-09", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "cogito-2.1:671b": { - id: "cogito-2.1:671b", - name: "cogito-2.1:671b", - family: "cogito", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-11-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 32000 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "qwen3-coder-next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2026-02-02", - last_updated: "2026-02-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "nemotron-3-super": { - id: "nemotron-3-super", - name: "nemotron-3-super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "minimax-m2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "deepseek-v3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-06-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 65536 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "kimi-k2-thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "devstral-small-2:24b": { - id: "devstral-small-2:24b", - name: "devstral-small-2:24b", - family: "devstral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-12-09", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2:1t": { - id: "kimi-k2:1t", - name: "kimi-k2:1t", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - "zai-coding-plan": { - id: "zai-coding-plan", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.z.ai/api/coding/paas/v4", - name: "Z.AI Coding Plan", - doc: "https://docs.z.ai/devpack/overview", - models: { - "glm-5v-turbo": { - id: "glm-5v-turbo", - name: "glm-5v-turbo", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5.1": { - id: "glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - }, - }, - "amazon-bedrock": { - id: "amazon-bedrock", - env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"], - npm: "@ai-sdk/amazon-bedrock", - name: "Amazon Bedrock", - doc: "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", - models: { - "anthropic.claude-opus-4-1-20250805-v1:0": { - id: "anthropic.claude-opus-4-1-20250805-v1:0", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic.claude-3-5-sonnet-20241022-v2:0": { - id: "anthropic.claude-3-5-sonnet-20241022-v2:0", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "openai.gpt-oss-safeguard-120b": { - id: "openai.gpt-oss-safeguard-120b", - name: "GPT OSS Safeguard 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia.nemotron-nano-3-30b": { - id: "nvidia.nemotron-nano-3-30b", - name: "NVIDIA Nemotron Nano 3 30B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 128000, output: 4096 }, - }, - "meta.llama3-2-90b-instruct-v1:0": { - id: "meta.llama3-2-90b-instruct-v1:0", - name: "Llama 3.2 90B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia.nemotron-super-3-120b": { - id: "nvidia.nemotron-super-3-120b", - name: "NVIDIA Nemotron 3 Super 120B A12B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.65 }, - limit: { context: 262144, output: 131072 }, - }, - "writer.palmyra-x5-v1:0": { - id: "writer.palmyra-x5-v1:0", - name: "Palmyra X5", - family: "palmyra", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 6 }, - limit: { context: 1040000, output: 8192 }, - }, - "mistral.ministral-3-8b-instruct": { - id: "mistral.ministral-3-8b-instruct", - name: "Ministral 3 8B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-3-5-sonnet-20240620-v1:0": { - id: "anthropic.claude-3-5-sonnet-20240620-v1:0", - name: "Claude Sonnet 3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "mistral.ministral-3-3b-instruct": { - id: "mistral.ministral-3-3b-instruct", - name: "Ministral 3 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 256000, output: 8192 }, - }, - "eu.anthropic.claude-opus-4-6-v1": { - id: "eu.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (EU)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "amazon.nova-premier-v1:0": { - id: "amazon.nova-premier-v1:0", - name: "Nova Premier", - family: "nova", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 12.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "eu.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "eu.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.devstral-2-123b": { - id: "mistral.devstral-2-123b", - name: "Devstral 2 123B", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, output: 8192 }, - }, - "us.anthropic.claude-opus-4-20250514-v1:0": { - id: "us.anthropic.claude-opus-4-20250514-v1:0", - name: "Claude Opus 4 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "global.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "global.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (Global)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.voxtral-small-24b-2507": { - id: "mistral.voxtral-small-24b-2507", - name: "Voxtral Small 24B 2507", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 32000, output: 8192 }, - }, - "google.gemma-3-12b-it": { - id: "google.gemma-3-12b-it", - name: "Google Gemma 3 12B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, - limit: { context: 131072, output: 8192 }, - }, - "amazon.nova-pro-v1:0": { - id: "amazon.nova-pro-v1:0", - name: "Nova Pro", - family: "nova-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, - limit: { context: 300000, output: 8192 }, - }, - "anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "minimax.minimax-m2": { - id: "minimax.minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204608, output: 128000 }, - }, - "mistral.pixtral-large-2502-v1:0": { - id: "mistral.pixtral-large-2502-v1:0", - name: "Pixtral Large (25.02)", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-08", - last_updated: "2025-04-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 8192 }, - }, - "meta.llama4-maverick-17b-instruct-v1:0": { - id: "meta.llama4-maverick-17b-instruct-v1:0", - name: "Llama 4 Maverick 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.97 }, - limit: { context: 1000000, output: 16384 }, - }, - "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "us.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (US)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "amazon.nova-micro-v1:0": { - id: "amazon.nova-micro-v1:0", - name: "Nova Micro", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, - limit: { context: 128000, output: 8192 }, - }, - "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-sonnet-4-6": { - id: "anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "openai.gpt-oss-20b-1:0": { - id: "openai.gpt-oss-20b-1:0", - name: "gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "us.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "zai.glm-5": { - id: "zai.glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 101376 }, - }, - "qwen.qwen3-32b-v1:0": { - id: "qwen.qwen3-32b-v1:0", - name: "Qwen3 32B (dense)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 16384, output: 16384 }, - }, - "deepseek.v3.2": { - id: "deepseek.v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 1.85 }, - limit: { context: 163840, output: 81920 }, - }, - "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (EU)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "zai.glm-4.7-flash": { - id: "zai.glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 131072 }, - }, - "amazon.nova-2-lite-v1:0": { - id: "amazon.nova-2-lite-v1:0", - name: "Nova 2 Lite", - family: "nova", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 2.75 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-opus-4-5-20251101-v1:0": { - id: "anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-coder-480b-a35b-v1:0": { - id: "qwen.qwen3-coder-480b-a35b-v1:0", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.8 }, - limit: { context: 131072, output: 65536 }, - }, - "meta.llama3-2-1b-instruct-v1:0": { - id: "meta.llama3-2-1b-instruct-v1:0", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 4096 }, - }, - "amazon.nova-lite-v1:0": { - id: "amazon.nova-lite-v1:0", - name: "Nova Lite", - family: "nova-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, - limit: { context: 300000, output: 8192 }, - }, - "meta.llama3-1-8b-instruct-v1:0": { - id: "meta.llama3-1-8b-instruct-v1:0", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 4096 }, - }, - "global.anthropic.claude-sonnet-4-6": { - id: "global.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "us.anthropic.claude-sonnet-4-6": { - id: "us.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "global.anthropic.claude-opus-4-6-v1": { - id: "global.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (Global)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "google.gemma-3-27b-it": { - id: "google.gemma-3-27b-it", - name: "Google Gemma 3 27B Instruct", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-27", - last_updated: "2025-07-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 202752, output: 8192 }, - }, - "global.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (Global)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "google.gemma-3-4b-it": { - id: "google.gemma-3-4b-it", - name: "Gemma 3 4B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.08 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-opus-4-6-v1": { - id: "us.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "meta.llama4-scout-17b-instruct-v1:0": { - id: "meta.llama4-scout-17b-instruct-v1:0", - name: "Llama 4 Scout 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 3500000, output: 16384 }, - }, - "us.anthropic.claude-opus-4-1-20250805-v1:0": { - id: "us.anthropic.claude-opus-4-1-20250805-v1:0", - name: "Claude Opus 4.1 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "deepseek.v3-v1:0": { - id: "deepseek.v3-v1:0", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 163840, output: 81920 }, - }, - "mistral.magistral-small-2509": { - id: "mistral.magistral-small-2509", - name: "Magistral Small 1.2", - family: "magistral", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 40000 }, - }, - "qwen.qwen3-next-80b-a3b": { - id: "qwen.qwen3-next-80b-a3b", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "zai.glm-4.7": { - id: "zai.glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "moonshot.kimi-k2-thinking": { - id: "moonshot.kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 256000, output: 256000 }, - }, - "us.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "us.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.ministral-3-14b-instruct": { - id: "mistral.ministral-3-14b-instruct", - name: "Ministral 14B 3.0", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-3-haiku-20240307-v1:0": { - id: "anthropic.claude-3-haiku-20240307-v1:0", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-02", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25 }, - limit: { context: 200000, output: 4096 }, - }, - "global.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "global.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "deepseek.r1-v1:0": { - id: "deepseek.r1-v1:0", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 32768 }, - }, - "meta.llama3-1-405b-instruct-v1:0": { - id: "meta.llama3-1-405b-instruct-v1:0", - name: "Llama 3.1 405B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 2.4 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral.voxtral-mini-3b-2507": { - id: "mistral.voxtral-mini-3b-2507", - name: "Voxtral Mini 3B 2507", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["audio", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 4096 }, - }, - "eu.anthropic.claude-sonnet-4-6": { - id: "eu.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "openai.gpt-oss-120b-1:0": { - id: "openai.gpt-oss-120b-1:0", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia.nemotron-nano-12b-v2": { - id: "nvidia.nemotron-nano-12b-v2", - name: "NVIDIA Nemotron Nano 12B v2 VL BF16", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "minimax.minimax-m2.5": { - id: "minimax.minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 98304 }, - }, - "meta.llama3-3-70b-instruct-v1:0": { - id: "meta.llama3-3-70b-instruct-v1:0", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "meta.llama3-1-70b-instruct-v1:0": { - id: "meta.llama3-1-70b-instruct-v1:0", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "meta.llama3-2-3b-instruct-v1:0": { - id: "meta.llama3-2-3b-instruct-v1:0", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 131000, output: 4096 }, - }, - "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-opus-4-20250514-v1:0": { - id: "anthropic.claude-opus-4-20250514-v1:0", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "eu.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (EU)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-sonnet-4-20250514-v1:0": { - id: "anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-2-11b-instruct-v1:0": { - id: "meta.llama3-2-11b-instruct-v1:0", - name: "Llama 3.2 11B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.16 }, - limit: { context: 128000, output: 4096 }, - }, - "moonshotai.kimi-k2.5": { - id: "moonshotai.kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 256000, output: 256000 }, - }, - "openai.gpt-oss-safeguard-20b": { - id: "openai.gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-opus-4-6-v1": { - id: "anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "qwen.qwen3-coder-30b-a3b-v1:0": { - id: "qwen.qwen3-coder-30b-a3b-v1:0", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 131072 }, - }, - "minimax.minimax-m2.1": { - id: "minimax.minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen.qwen3-vl-235b-a22b": { - id: "qwen.qwen3-vl-235b-a22b", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen.qwen3-coder-next": { - id: "qwen.qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.8 }, - limit: { context: 131072, output: 65536 }, - }, - "anthropic.claude-3-5-haiku-20241022-v1:0": { - id: "anthropic.claude-3-5-haiku-20241022-v1:0", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "nvidia.nemotron-nano-9b-v2": { - id: "nvidia.nemotron-nano-9b-v2", - name: "NVIDIA Nemotron Nano 9B v2", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.23 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral.mistral-large-3-675b-instruct": { - id: "mistral.mistral-large-3-675b-instruct", - name: "Mistral Large 3", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 8192 }, - }, - "qwen.qwen3-235b-a22b-2507-v1:0": { - id: "qwen.qwen3-235b-a22b-2507-v1:0", - name: "Qwen3 235B A22B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 262144, output: 131072 }, - }, - "anthropic.claude-3-7-sonnet-20250219-v1:0": { - id: "anthropic.claude-3-7-sonnet-20250219-v1:0", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "writer.palmyra-x4-v1:0": { - id: "writer.palmyra-x4-v1:0", - name: "Palmyra X4", - family: "palmyra", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 122880, output: 8192 }, - }, - }, - }, - "the-grid-ai": { - id: "the-grid-ai", - env: ["THEGRIDAI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.thegrid.ai/v1", - name: "The Grid AI", - doc: "https://thegrid.ai/docs", - models: { - "text-prime": { - id: "text-prime", - name: "Text Prime", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 30000 }, - status: "beta", - }, - "text-standard": { - id: "text-standard", - name: "Text Standard", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - status: "beta", - }, - "text-max": { - id: "text-max", - name: "Text Max", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-24", - last_updated: "2026-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 128000 }, - status: "beta", - }, - }, - }, - baseten: { - id: "baseten", - env: ["BASETEN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://inference.baseten.co/v1", - name: "Baseten", - doc: "https://docs.baseten.co/development/model-apis/overview", - models: { - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 200000 }, - }, - "nvidia/Nemotron-120B-A12B": { - id: "nvidia/Nemotron-120B-A12B", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.75 }, - limit: { context: 262144, output: 32678 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 164000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.77, output: 0.77 }, - limit: { context: 164000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-01", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 163800, output: 131100 }, - status: "deprecated", - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 128000, output: 128000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-09-05", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-30", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 8192 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204000, output: 204000 }, - }, - }, - }, - "zhipuai-coding-plan": { - id: "zhipuai-coding-plan", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://open.bigmodel.cn/api/coding/paas/v4", - name: "Zhipu AI Coding Plan", - doc: "https://docs.bigmodel.cn/cn/coding-plan/overview", - models: { - "glm-5v-turbo": { - id: "glm-5v-turbo", - name: "glm-5v-turbo", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5.1": { - id: "glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.6v-flash": { - id: "glm-4.6v-flash", - name: "GLM-4.6V-Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "alibaba-coding-plan": { - id: "alibaba-coding-plan", - env: ["ALIBABA_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding-intl.dashscope.aliyuncs.com/v1", - name: "Alibaba Coding Plan", - doc: "https://www.alibabacloud.com/help/en/model-studio/coding-plan", - models: { - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 196608, input: 196601, output: 24576 }, - }, - "qwen3.6-plus": { - id: "qwen3.6-plus", - name: "Qwen3.6 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - }, - }, - venice: { - id: "venice", - env: ["VENICE_API_KEY"], - npm: "venice-ai-sdk-provider", - name: "Venice AI", - doc: "https://docs.venice.ai", - models: { - "openai-gpt-4o-mini-2024-07-18": { - id: "openai-gpt-4o-mini-2024-07-18", - name: "GPT-4o Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-28", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1875, output: 0.75, cache_read: 0.09375 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-next-80b": { - id: "qwen3-next-80b", - name: "Qwen 3 Next 80b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.9 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen 3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-41-fast": { - id: "grok-41-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-12-01", - last_updated: "2026-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.57, cache_read: 0.06 }, - limit: { context: 1000000, output: 30000 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.6, output: 18, cache_read: 0.36, cache_write: 4.5 }, - limit: { context: 1000000, output: 64000 }, - }, - "nvidia-nemotron-cascade-2-30b-a3b": { - id: "nvidia-nemotron-cascade-2-30b-a3b", - name: "Nemotron Cascade 2 30B A3B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-24", - last_updated: "2026-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.8 }, - limit: { context: 256000, output: 32768 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-19", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 3.75, cache_read: 0.07 }, - limit: { context: 256000, output: 65536 }, - }, - "qwen3-coder-480b-a35b-instruct-turbo": { - id: "qwen3-coder-480b-a35b-instruct-turbo", - name: "Qwen 3 Coder 480B Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, - limit: { context: 256000, output: 65536 }, - }, - "qwen3-5-397b-a17b": { - id: "qwen3-5-397b-a17b", - name: "Qwen 3.5 397B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-04-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5 }, - limit: { context: 128000, output: 32768 }, - }, - "zai-org-glm-4.7": { - id: "zai-org-glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-24", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.65, cache_read: 0.11 }, - limit: { context: 198000, output: 16384 }, - }, - "openai-gpt-54": { - id: "openai-gpt-54", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.13, output: 18.8, cache_read: 0.313 }, - limit: { context: 1000000, output: 131072 }, - }, - "zai-org-glm-4.7-flash": { - id: "zai-org-glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 16384 }, - }, - "nvidia-nemotron-3-nano-30b-a3b": { - id: "nvidia-nemotron-3-nano-30b-a3b", - name: "NVIDIA Nemotron 3 Nano 30B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3 VL 235B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-16", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "openai-gpt-53-codex": { - id: "openai-gpt-53-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-45": { - id: "claude-sonnet-45", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-01-15", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.75, output: 18.75, cache_read: 0.375, cache_write: 4.69 }, - limit: { context: 198000, output: 49500 }, - }, - "openai-gpt-52": { - id: "openai-gpt-52", - name: "GPT-5.2", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-12-13", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 256000, output: 65536 }, - }, - "mistral-small-3-2-24b-instruct": { - id: "mistral-small-3-2-24b-instruct", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-15", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09375, output: 0.25 }, - limit: { context: 256000, output: 16384 }, - }, - "claude-opus-45": { - id: "claude-opus-45", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-06", - last_updated: "2026-01-28", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, - limit: { context: 198000, output: 49500 }, - }, - "grok-4-20-multi-agent-beta": { - id: "grok-4-20-multi-agent-beta", - name: "Grok 4.20 Multi-Agent Beta", - family: "grok-beta", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.27, - output: 6.8, - cache_read: 0.23, - context_over_200k: { input: 4.53, output: 13.6, cache_read: 0.23 }, - }, - limit: { context: 2000000, output: 128000 }, - }, - "minimax-m27": { - id: "minimax-m27", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.375, output: 1.5, cache_read: 0.075 }, - limit: { context: 198000, output: 32768 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen 3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.87, cache_read: 0.03 }, - limit: { context: 256000, output: 10000 }, - }, - "qwen3-5-35b-a3b": { - id: "qwen3-5-35b-a3b", - name: "Qwen 3.5 35B A3B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-25", - last_updated: "2026-03-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3125, output: 1.25, cache_read: 0.15625 }, - limit: { context: 256000, output: 65536 }, - }, - "mercury-2": { - id: "mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-20", - last_updated: "2026-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3125, output: 0.9375, cache_read: 0.03125 }, - limit: { context: 128000, output: 50000 }, - }, - "google-gemma-3-27b-it": { - id: "google-gemma-3-27b-it", - name: "Google Gemma 3 27B Instruct", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-04", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 198000, output: 16384 }, - }, - "olafangensan-glm-4.7-flash-heretic": { - id: "olafangensan-glm-4.7-flash-heretic", - name: "GLM 4.7 Flash Heretic", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.8 }, - limit: { context: 200000, output: 24000 }, - }, - "openai-gpt-52-codex": { - id: "openai-gpt-52-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-01-15", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 256000, output: 65536 }, - }, - "venice-uncensored-role-play": { - id: "venice-uncensored-role-play", - name: "Venice Role Play Uncensored", - family: "venice", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-20", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 128000, output: 4096 }, - }, - "zai-org-glm-5": { - id: "zai-org-glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 198000, output: 32000 }, - }, - "zai-org-glm-4.6": { - id: "zai-org-glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2024-04-01", - last_updated: "2026-04-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 2.75, cache_read: 0.3 }, - limit: { context: 198000, output: 16384 }, - }, - "mistral-small-2603": { - id: "mistral-small-2603", - name: "Mistral Small 4", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1875, output: 0.75 }, - limit: { context: 256000, output: 65536 }, - }, - "openai-gpt-oss-120b": { - id: "openai-gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-5-9b": { - id: "qwen3-5-9b", - name: "Qwen 3.5 9B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-04-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 256000, output: 32768 }, - }, - "openai-gpt-54-pro": { - id: "openai-gpt-54-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 37.5, output: 225, context_over_200k: { input: 75, output: 337.5 } }, - limit: { context: 1000000, output: 128000 }, - }, - "aion-labs.aion-2-0": { - id: "aion-labs.aion-2-0", - name: "Aion 2.0", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-24", - last_updated: "2026-03-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2, cache_read: 0.25 }, - limit: { context: 128000, output: 32768 }, - }, - "openai-gpt-54-mini": { - id: "openai-gpt-54-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9375, output: 5.625, cache_read: 0.09375 }, - limit: { context: 400000, output: 128000 }, - }, - "google.gemma-4-31b-it": { - id: "google.gemma-4-31b-it", - name: "Google Gemma 4 31B Instruct", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-04-03", - last_updated: "2026-04-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.175, output: 0.5 }, - limit: { context: 256000, output: 8192 }, - }, - "minimax-m25": { - id: "minimax-m25", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.34, output: 1.19, cache_read: 0.04 }, - limit: { context: 198000, output: 32768 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen 3 Coder 480b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 3 }, - limit: { context: 256000, output: 65536 }, - }, - "zai-org-glm-5-1": { - id: "zai-org-glm-5-1", - name: "GLM 5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-07", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.75, output: 5.5, cache_read: 0.325 }, - limit: { context: 200000, output: 24000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, - limit: { context: 1000000, output: 128000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-04", - last_updated: "2026-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.33, output: 0.48, cache_read: 0.16 }, - limit: { context: 160000, output: 32768 }, - }, - "venice-uncensored": { - id: "venice-uncensored", - name: "Venice Uncensored 1.1", - family: "venice", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-03-18", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.9 }, - limit: { context: 32000, output: 8192 }, - }, - "qwen-3-6-plus": { - id: "qwen-3-6-plus", - name: "Qwen 3.6 Plus Uncensored", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-04-06", - last_updated: "2026-04-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.625, - output: 3.75, - cache_read: 0.0625, - cache_write: 0.78, - context_over_200k: { input: 2.5, output: 7.5 }, - }, - limit: { context: 1000000, output: 65536 }, - }, - "google.gemma-4-26b-a4b-it": { - id: "google.gemma-4-26b-a4b-it", - name: "Google Gemma 4 26B A4B Instruct", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1625, output: 0.5 }, - limit: { context: 256000, output: 8192 }, - }, - "openai-gpt-4o-2024-11-20": { - id: "openai-gpt-4o-2024-11-20", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-28", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.125, output: 12.5 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-3.3-70b": { - id: "llama-3.3-70b", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 128000, output: 4096 }, - }, - "kimi-k2-5": { - id: "kimi-k2-5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-01-27", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 3.5, cache_read: 0.11 }, - limit: { context: 256000, output: 65536 }, - }, - "grok-4-20-beta": { - id: "grok-4-20-beta", - name: "Grok 4.20 Beta", - family: "grok-beta", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.27, - output: 6.8, - cache_read: 0.23, - context_over_200k: { input: 4.53, output: 13.6, cache_read: 0.23 }, - }, - limit: { context: 2000000, output: 128000 }, - }, - "minimax-m21": { - id: "minimax-m21", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, - limit: { context: 198000, output: 32768 }, - }, - "llama-3.2-3b": { - id: "llama-3.2-3b", - name: "Llama 3.2 3B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-10-03", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "arcee-trinity-large-thinking": { - id: "arcee-trinity-large-thinking", - name: "Trinity Large Thinking", - family: "trinity", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3125, output: 1.125, cache_read: 0.075 }, - limit: { context: 256000, output: 65536 }, - }, - "hermes-3-llama-3.1-405b": { - id: "hermes-3-llama-3.1-405b", - name: "Hermes 3 Llama 3.1 405b", - family: "hermes", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-25", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.1, output: 3 }, - limit: { context: 128000, output: 16384 }, - }, - "gemini-3-1-pro-preview": { - id: "gemini-3-1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.5, - cache_write: 0.5, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1000000, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-12-10", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 3.2, cache_read: 0.375 }, - limit: { context: 256000, output: 65536 }, - }, - "claude-opus-4-6-fast": { - id: "claude-opus-4-6-fast", - name: "Claude Opus 4.6 Fast", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-04-08", - last_updated: "2026-04-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 36, output: 180, cache_read: 3.6, cache_write: 45 }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - aihubmix: { - id: "aihubmix", - env: ["AIHUBMIX_API_KEY"], - npm: "@aihubmix/ai-sdk-provider", - name: "AIHubMix", - doc: "https://docs.aihubmix.com", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "coding-glm-5-free": { - id: "coding-glm-5-free", - name: "Coding-GLM-5-Free", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 5.5, cache_read: 0.11, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "coding-glm-4.7": { - id: "coding-glm-4.7", - name: "Coding-GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.12 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-07", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, - limit: { context: 204800, output: 131072 }, - }, - "gemini-3-pro-preview-search": { - id: "gemini-3-pro-preview-search", - name: "Gemini 3 Pro Preview Search", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.5 }, - limit: { context: 1000000, output: 65000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.88, output: 2.82 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "Kimi-K2-0905": { - id: "Kimi-K2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5-Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2, cache_read: 0.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.5 }, - limit: { context: 1000000, output: 65000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 5, cache_read: 0.31 }, - limit: { context: 2000000, output: 65000 }, - }, - "coding-minimax-m2.1-free": { - id: "coding-minimax-m2.1-free", - name: "Coding MiniMax M2.1 Free", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 82.5, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "deepseek-v3.2-fast": { - id: "deepseek-v3.2-fast", - name: "DeepSeek-V3.2-Fast", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.1, output: 3.29 }, - limit: { context: 128000, output: 128000 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.15 }, - limit: { context: 204800, output: 131072 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-09", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.75 }, - limit: { context: 200000, output: 65536 }, - }, - "deepseek-v3.2-think": { - id: "deepseek-v3.2-think", - name: "DeepSeek-V3.2-Think", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 131000, output: 64000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.02 }, - limit: { context: 1000000, output: 65000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-6-think": { - id: "claude-opus-4-6-think", - name: "Claude Opus 4.6 Think", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 128000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 32000 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.41 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 1.37 }, - limit: { context: 262144, output: 65536 }, - }, - "coding-glm-4.7-free": { - id: "coding-glm-4.7-free", - name: "Coding GLM 4.7 Free", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.55 }, - limit: { context: 262144, input: 262144, output: 65536 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.82, output: 3.29 }, - limit: { context: 262144, output: 131000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.15 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 131000, output: 64000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5-Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 7, output: 28, cache_read: 3.5 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.3, output: 16.5, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 20, cache_read: 2.5 }, - limit: { context: 400000, output: 128000 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen 3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.66 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-6-think": { - id: "claude-sonnet-4-6-think", - name: "Claude Sonnet 4.6 Think", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - cerebras: { - id: "cerebras", - env: ["CEREBRAS_API_KEY"], - npm: "@ai-sdk/cerebras", - name: "Cerebras", - doc: "https://inference-docs.cerebras.ai/models/overview", - models: { - "llama3.1-8b": { - id: "llama3.1-8b", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 32000, output: 8000 }, - }, - "qwen-3-235b-a22b-instruct-2507": { - id: "qwen-3-235b-a22b-instruct-2507", - name: "Qwen 3 235B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.2 }, - limit: { context: 131000, output: 32000 }, - }, - "zai-glm-4.7": { - id: "zai-glm-4.7", - name: "Z.AI GLM-4.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.25, output: 2.75, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 40000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.69 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - firmware: { - id: "firmware", - env: ["FIRMWARE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://app.frogbot.ai/api/v1", - name: "Firmware", - doc: "https://docs.frogbot.ai", - models: { - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi-K2.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 128000 }, - }, - "gpt-5-4": { - id: "gpt-5-4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 272000, output: 128000 }, - }, - "deepseek-v3-2": { - id: "deepseek-v3-2", - name: "DeepSeek v3.2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 1.68, cache_read: 0.28 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-17", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "zai-glm-5-1": { - id: "zai-glm-5-1", - name: "GLM-5", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-02-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, - limit: { context: 198000, output: 8192 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-17", - last_updated: "2025-07-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075 }, - limit: { context: 1048576, output: 65536 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 128000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen-3-6-plus": { - id: "qwen-3-6-plus", - name: "Qwen 3.6 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.1 }, - limit: { context: 1000000, output: 64000 }, - }, - "minimax-m2-5": { - id: "minimax-m2-5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-01-15", - last_updated: "2025-02-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 192000, output: 8192 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-3-1-pro-preview": { - id: "gemini-3-1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "gpt-5-3-codex": { - id: "gpt-5-3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2026-01-31", - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - }, - }, - lmstudio: { - id: "lmstudio", - env: ["LMSTUDIO_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "http://127.0.0.1:1234/v1", - name: "LMStudio", - doc: "https://lmstudio.ai/models", - models: { - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-coder-30b": { - id: "qwen/qwen3-coder-30b", - name: "Qwen3 Coder 30B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-2507": { - id: "qwen/qwen3-30b-a3b-2507", - name: "Qwen3 30B A3B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - }, - }, - lucidquery: { - id: "lucidquery", - env: ["LUCIDQUERY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://lucidquery.com/api/v1", - name: "LucidQuery AI", - doc: "https://lucidquery.com/api/docs", - models: { - "lucidnova-rf1-100b": { - id: "lucidnova-rf1-100b", - name: "LucidNova RF1 100B", - family: "nova", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-09-16", - release_date: "2024-12-28", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 5 }, - limit: { context: 120000, output: 8000 }, - }, - "lucidquery-nexus-coder": { - id: "lucidquery-nexus-coder", - name: "LucidQuery Nexus Coder", - family: "lucid", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-01", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 5 }, - limit: { context: 250000, output: 60000 }, - }, - }, - }, - "moonshotai-cn": { - id: "moonshotai-cn", - env: ["MOONSHOT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.moonshot.cn/v1", - name: "Moonshot AI (China)", - doc: "https://platform.moonshot.cn/docs/api/chat", - models: { - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0711-preview": { - id: "kimi-k2-0711-preview", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 131072, output: 16384 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 10, cache_read: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - "azure-cognitive-services": { - id: "azure-cognitive-services", - env: ["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME", "AZURE_COGNITIVE_SERVICES_API_KEY"], - npm: "@ai-sdk/azure", - name: "Azure Cognitive Services", - doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - models: { - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "mai-ds-r1": { - id: "mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "codestral-2501": { - id: "codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "gpt-3.5-turbo-instruct": { - id: "gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-09-21", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "phi-4-reasoning-plus": { - id: "phi-4-reasoning-plus", - name: "Phi-4-reasoning-plus", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "cohere-embed-v3-english": { - id: "cohere-embed-v3-english", - name: "Embed v3 English", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "gpt-4-32k": { - id: "gpt-4-32k", - name: "GPT-4 32K", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 32768, output: 32768 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 272000, output: 128000 }, - }, - "phi-4": { - id: "phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere-command-r-plus-08-2024": { - id: "cohere-command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-3.5-turbo-0613": { - id: "gpt-3.5-turbo-0613", - name: "GPT-3.5 Turbo 0613", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16384, output: 16384 }, - }, - "phi-3-medium-128k-instruct": { - id: "phi-3-medium-128k-instruct", - name: "Phi-3-medium-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "phi-3-small-128k-instruct": { - id: "phi-3-small-128k-instruct", - name: "Phi-3-small-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-3.5-turbo-0301": { - id: "gpt-3.5-turbo-0301", - name: "GPT-3.5 Turbo 0301", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "phi-4-mini": { - id: "phi-4-mini", - name: "Phi-4-mini", - family: "phi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "meta-llama-3-8b-instruct": { - id: "meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 8192, output: 8192 }, - }, - "phi-4-mini-reasoning": { - id: "phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "meta-llama-3.1-70b-instruct": { - id: "meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 128000, output: 32768 }, - }, - "phi-3-mini-4k-instruct": { - id: "phi-3-mini-4k-instruct", - name: "Phi-3-mini-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 4096, output: 1024 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 131072, output: 131072 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-3.5-turbo-1106": { - id: "gpt-3.5-turbo-1106", - name: "GPT-3.5 Turbo 1106", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 16384, output: 16384 }, - }, - "model-router": { - id: "model-router", - name: "Model Router", - family: "model-router", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-05-19", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "mistral-small-2503": { - id: "mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 32768 }, - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "Grok 4 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 272000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "cohere-embed-v3-multilingual": { - id: "cohere-embed-v3-multilingual", - name: "Embed v3 Multilingual", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 66, cache_read: 8.25 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-3.5-turbo-0125": { - id: "gpt-3.5-turbo-0125", - name: "GPT-3.5 Turbo 0125", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16384, output: 16384 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "cohere-embed-v-4-0": { - id: "cohere-embed-v-4-0", - name: "Embed v4", - family: "cohere-embed", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0 }, - limit: { context: 128000, output: 1536 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4-turbo-vision": { - id: "gpt-4-turbo-vision", - name: "GPT-4 Turbo Vision", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.1-chat": { - id: "gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "meta-llama-3.1-405b-instruct": { - id: "meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 5.33, output: 16 }, - limit: { context: 128000, output: 32768 }, - }, - "llama-3.2-11b-vision-instruct": { - id: "llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.37, output: 0.37 }, - limit: { context: 128000, output: 8192 }, - }, - "cohere-command-a": { - id: "cohere-command-a", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "cohere-command-r-08-2024": { - id: "cohere-command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-v3.2-speciale": { - id: "deepseek-v3.2-speciale", - name: "DeepSeek-V3.2-Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "llama-3.2-90b-vision-instruct": { - id: "llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.04, output: 2.04 }, - limit: { context: 128000, output: 8192 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "phi-3-small-8k-instruct": { - id: "phi-3-small-8k-instruct", - name: "Phi-3-small-instruct (8k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 8192, output: 2048 }, - }, - "meta-llama-3-70b-instruct": { - id: "meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - }, - "phi-4-reasoning": { - id: "phi-4-reasoning", - name: "Phi-4-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "phi-3-mini-128k-instruct": { - id: "phi-3-mini-128k-instruct", - name: "Phi-3-mini-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "phi-3.5-moe-instruct": { - id: "phi-3.5-moe-instruct", - name: "Phi-3.5-MoE-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.64 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5-chat": { - id: "gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-10-24", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, output: 16384 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.14, output: 4.56 }, - limit: { context: 131072, output: 131072 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 32768 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", - shape: "completions", - }, - }, - "meta-llama-3.1-8b-instruct": { - id: "meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 128000, output: 32768 }, - }, - "ministral-3b": { - id: "ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 8192 }, - }, - "phi-3-medium-4k-instruct": { - id: "phi-3-medium-4k-instruct", - name: "Phi-3-medium-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 4096, output: 1024 }, - }, - "llama-4-scout-17b-16e-instruct": { - id: "llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.78 }, - limit: { context: 128000, output: 8192 }, - }, - "phi-3.5-mini-instruct": { - id: "phi-3.5-mini-instruct", - name: "Phi-3.5-mini-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-4-multimodal": { - id: "phi-4-multimodal", - name: "Phi-4-multimodal", - family: "phi", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.32, input_audio: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "codex-mini": { - id: "codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.2-chat": { - id: "gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - }, - }, - cohere: { - id: "cohere", - env: ["COHERE_API_KEY"], - npm: "@ai-sdk/cohere", - name: "Cohere", - doc: "https://docs.cohere.com/docs/models", - models: { - "command-a-reasoning-08-2025": { - id: "command-a-reasoning-08-2025", - name: "Command A Reasoning", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 32000 }, - }, - "command-r7b-12-2024": { - id: "command-r7b-12-2024", - name: "Command R7B", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-02-27", - last_updated: "2024-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "c4ai-aya-vision-8b": { - id: "c4ai-aya-vision-8b", - name: "Aya Vision 8B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 16000, output: 4000 }, - }, - "command-r-plus-08-2024": { - id: "command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "c4ai-aya-expanse-8b": { - id: "c4ai-aya-expanse-8b", - name: "Aya Expanse 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-24", - last_updated: "2024-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 8000, output: 4000 }, - }, - "command-r7b-arabic-02-2025": { - id: "command-r7b-arabic-02-2025", - name: "Command R7B Arabic", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-vision-07-2025": { - id: "command-a-vision-07-2025", - name: "Command A Vision", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 8000 }, - }, - "c4ai-aya-vision-32b": { - id: "c4ai-aya-vision-32b", - name: "Aya Vision 32B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 16000, output: 4000 }, - }, - "command-a-translate-08-2025": { - id: "command-a-translate-08-2025", - name: "Command A Translate", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 8000 }, - }, - "command-r-08-2024": { - id: "command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "c4ai-aya-expanse-32b": { - id: "c4ai-aya-expanse-32b", - name: "Aya Expanse 32B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-24", - last_updated: "2024-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 128000, output: 4000 }, - }, - "command-a-03-2025": { - id: "command-a-03-2025", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - }, - }, - "cloudferro-sherlock": { - id: "cloudferro-sherlock", - env: ["CLOUDFERRO_SHERLOCK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api-sherlock.cloudferro.com/openai/v1/", - name: "CloudFerro Sherlock", - doc: "https://docs.sherlock.cloudferro.com/", - models: { - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10-09", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.92, output: 2.92 }, - limit: { context: 70000, output: 70000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.92, output: 2.92 }, - limit: { context: 131000, output: 131000 }, - }, - "speakleash/Bielik-11B-v3.0-Instruct": { - id: "speakleash/Bielik-11B-v3.0-Instruct", - name: "Bielik 11B v3.0 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 0.67 }, - limit: { context: 32000, output: 32000 }, - }, - "speakleash/Bielik-11B-v2.6-Instruct": { - id: "speakleash/Bielik-11B-v2.6-Instruct", - name: "Bielik 11B v2.6 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 0.67 }, - limit: { context: 32000, output: 32000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196000, output: 196000 }, - }, - }, - }, - "kuae-cloud-coding-plan": { - id: "kuae-cloud-coding-plan", - env: ["KUAE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding-plan-endpoint.kuaecloud.net/v1", - name: "KUAE Cloud Coding Plan", - doc: "https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/", - models: { - "GLM-4.7": { - id: "GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - xai: { - id: "xai", - env: ["XAI_API_KEY"], - npm: "@ai-sdk/xai", - name: "xAI", - doc: "https://docs.x.ai/docs/models", - models: { - "grok-2-1212": { - id: "grok-2-1212", - name: "Grok 2 (1212)", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-12-12", - last_updated: "2024-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-vision-beta": { - id: "grok-vision-beta", - name: "Grok Vision Beta", - family: "grok-vision", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15, cache_read: 5 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-3-mini-fast": { - id: "grok-3-mini-fast", - name: "Grok 3 Mini Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-mini-latest": { - id: "grok-3-mini-latest", - name: "Grok 3 Mini Latest", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-fast": { - id: "grok-3-fast", - name: "Grok 3 Fast", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-2-vision-latest": { - id: "grok-2-vision-latest", - name: "Grok 2 Vision Latest", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-4.20-0309-reasoning": { - id: "grok-4.20-0309-reasoning", - name: "Grok 4.20 (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3-mini-fast-latest": { - id: "grok-3-mini-fast-latest", - name: "Grok 3 Mini Fast Latest", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast": { - id: "grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3-latest": { - id: "grok-3-latest", - name: "Grok 3 Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-2": { - id: "grok-2", - name: "Grok 2", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "grok-4.20-0309-non-reasoning": { - id: "grok-4.20-0309-non-reasoning", - name: "Grok 4.20 (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3-fast-latest": { - id: "grok-3-fast-latest", - name: "Grok 3 Fast Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4.20-multi-agent-0309": { - id: "grok-4.20-multi-agent-0309", - name: "Grok 4.20 Multi-Agent", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "grok-2-latest": { - id: "grok-2-latest", - name: "Grok 2 Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-beta": { - id: "grok-beta", - name: "Grok Beta", - family: "grok-beta", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15, cache_read: 5 }, - limit: { context: 131072, output: 4096 }, - }, - "grok-2-vision": { - id: "grok-2-vision", - name: "Grok 2 Vision", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-4-1-fast": { - id: "grok-4-1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-2-vision-1212": { - id: "grok-2-vision-1212", - name: "Grok 2 Vision (1212)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - }, - }, - meganova: { - id: "meganova", - env: ["MEGANOVA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.meganova.ai/v1", - name: "Meganova", - doc: "https://docs.meganova.ai", - models: { - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3.5-Plus": { - id: "Qwen/Qwen3.5-Plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 16384, output: 16384 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.56 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.9 }, - limit: { context: 202752, output: 131072 }, - }, - "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 131072, output: 65536 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 32000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 16384 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.88 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.2-Exp": { - id: "deepseek-ai/DeepSeek-V3.2-Exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-10-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.15 }, - limit: { context: 163840, output: 64000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.38 }, - limit: { context: 164000, output: 164000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.6 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.2 }, - limit: { context: 196608, output: 131072 }, - }, - }, - }, - "google-vertex-anthropic": { - id: "google-vertex-anthropic", - env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], - npm: "@ai-sdk/google-vertex/anthropic", - name: "Vertex (Anthropic)", - doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", - models: { - "claude-haiku-4-5@20251001": { - id: "claude-haiku-4-5@20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-6@default": { - id: "claude-sonnet-4-6@default", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-haiku@20241022": { - id: "claude-3-5-haiku@20241022", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-5-sonnet@20241022": { - id: "claude-3-5-sonnet@20241022", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-1@20250805": { - id: "claude-opus-4-1@20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-sonnet-4@20250514": { - id: "claude-sonnet-4@20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-7-sonnet@20250219": { - id: "claude-3-7-sonnet@20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4@20250514": { - id: "claude-opus-4@20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-opus-4-5@20251101": { - id: "claude-opus-4-5@20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-5@20250929": { - id: "claude-sonnet-4-5@20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-6@default": { - id: "claude-opus-4-6@default", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - evroc: { - id: "evroc", - env: ["EVROC_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://models.think.evroc.com/v1", - name: "evroc", - doc: "https://docs.evroc.com/products/think/overview.html", - models: { - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen3 VL 30B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.94 }, - limit: { context: 100000, output: 100000 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen3 Embedding 8B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.12 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", - name: "Qwen3 30B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.42 }, - limit: { context: 64000, output: 64000 }, - }, - "mistralai/devstral-small-2-24b-instruct-2512": { - id: "mistralai/devstral-small-2-24b-instruct-2512", - name: "Devstral Small 2 24B Instruct 2512", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.47 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/Voxtral-Small-24B-2507": { - id: "mistralai/Voxtral-Small-24B-2507", - name: "Voxtral Small 24B", - family: "voxtral", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["audio", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 32000, output: 32000 }, - }, - "mistralai/Magistral-Small-2509": { - id: "mistralai/Magistral-Small-2509", - name: "Magistral Small 1.2 24B", - family: "magistral-small", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 2.36 }, - limit: { context: 131072, output: 131072 }, - }, - "microsoft/Phi-4-multimodal-instruct": { - id: "microsoft/Phi-4-multimodal-instruct", - name: "Phi-4 15B", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.47 }, - limit: { context: 32000, output: 32000 }, - }, - "KBLab/kb-whisper-large": { - id: "KBLab/kb-whisper-large", - name: "KB Whisper", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 448, output: 448 }, - }, - "nvidia/Llama-3.3-70B-Instruct-FP8": { - id: "nvidia/Llama-3.3-70B-Instruct-FP8", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.18, output: 1.18 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/whisper-large-v3": { - id: "openai/whisper-large-v3", - name: "Whisper 3 Large", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 448, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.94 }, - limit: { context: 65536, output: 65536 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 1.47, output: 5.9 }, - limit: { context: 262144, output: 262144 }, - }, - "intfloat/multilingual-e5-large-instruct": { - id: "intfloat/multilingual-e5-large-instruct", - name: "E5 Multi-Lingual Large Embeddings 0.6B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.12 }, - limit: { context: 512, output: 512 }, - }, - }, - }, - synthetic: { - id: "synthetic", - env: ["SYNTHETIC_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.synthetic.new/openai/v1", - name: "Synthetic", - doc: "https://synthetic.new/pricing", - models: { - "hf:meta-llama/Llama-3.1-405B-Instruct": { - id: "hf:meta-llama/Llama-3.1-405B-Instruct", - name: "Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama-4-Scout-17B-16E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 328000, output: 4096 }, - }, - "hf:meta-llama/Llama-3.3-70B-Instruct": { - id: "hf:meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.1-8B-Instruct": { - id: "hf:meta-llama/Llama-3.1-8B-Instruct", - name: "Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.1-70B-Instruct": { - id: "hf:meta-llama/Llama-3.1-70B-Instruct", - name: "Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 524000, output: 4096 }, - }, - "hf:MiniMaxAI/MiniMax-M2": { - id: "hf:MiniMaxAI/MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 196608, output: 131000 }, - }, - "hf:MiniMaxAI/MiniMax-M2.5": { - id: "hf:MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-07", - last_updated: "2026-02-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.6 }, - limit: { context: 191488, output: 65536 }, - }, - "hf:MiniMaxAI/MiniMax-M2.1": { - id: "hf:MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 204800, output: 131072 }, - }, - "hf:Qwen/Qwen3.5-397B-A17B": { - id: "hf:Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5-97B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.6 }, - limit: { context: 262144, output: 65536 }, - status: "beta", - }, - "hf:Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "hf:Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "hf:Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen 3 235B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 3 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen 3 Coder 480B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.1": { - id: "hf:deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3-0324": { - id: "hf:deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 (0324)", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3": { - id: "hf:deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-R1": { - id: "hf:deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-R1-0528": { - id: "hf:deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 (0528)", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 8 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.2": { - id: "hf:deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4, cache_read: 0.27, cache_write: 0 }, - limit: { context: 162816, input: 162816, output: 8000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:openai/gpt-oss-120b": { - id: "hf:openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:moonshotai/Kimi-K2-Thinking": { - id: "hf:moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 262144 }, - }, - "hf:moonshotai/Kimi-K2-Instruct-0905": { - id: "hf:moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 262144, output: 32768 }, - }, - "hf:moonshotai/Kimi-K2.5": { - id: "hf:moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { - id: "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1, cache_read: 0.3 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:nvidia/Kimi-K2.5-NVFP4": { - id: "hf:nvidia/Kimi-K2.5-NVFP4", - name: "Kimi K2.5 (NVFP4)", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:zai-org/GLM-4.7-Flash": { - id: "hf:zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-18", - last_updated: "2026-01-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.06 }, - limit: { context: 196608, output: 65536 }, - }, - "hf:zai-org/GLM-4.7": { - id: "hf:zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 200000, output: 64000 }, - }, - "hf:zai-org/GLM-5": { - id: "hf:zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, cache_read: 1 }, - limit: { context: 196608, output: 65536 }, - }, - "hf:zai-org/GLM-4.6": { - id: "hf:zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - nvidia: { - id: "nvidia", - env: ["NVIDIA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://integrate.api.nvidia.com/v1", - name: "Nvidia", - doc: "https://docs.api.nvidia.com/nim/", - models: { - "black-forest-labs/flux.1-dev": { - id: "black-forest-labs/flux.1-dev", - name: "FLUX.1-dev", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 0 }, - }, - "stepfun-ai/step-3.5-flash": { - id: "stepfun-ai/step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 16384 }, - }, - "mistralai/codestral-22b-instruct-v0.1": { - id: "mistralai/codestral-22b-instruct-v0.1", - name: "Codestral 22b Instruct V0.1", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-29", - last_updated: "2024-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mistral-large-3-675b-instruct-2512": { - id: "mistralai/mistral-large-3-675b-instruct-2512", - name: "Mistral Large 3 675B Instruct 2512", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/devstral-2-123b-instruct-2512": { - id: "mistralai/devstral-2-123b-instruct-2512", - name: "Devstral-2-123B-Instruct-2512", - family: "devstral", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-08", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/ministral-14b-instruct-2512": { - id: "mistralai/ministral-14b-instruct-2512", - name: "Ministral 3 14B Instruct 2512", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-01", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-small-3.1-24b-instruct-2503": { - id: "mistralai/mistral-small-3.1-24b-instruct-2503", - name: "Mistral Small 3.1 24b Instruct 2503", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mamba-codestral-7b-v0.1": { - id: "mistralai/mamba-codestral-7b-v0.1", - name: "Mamba Codestral 7b V0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mistral-large-2-instruct": { - id: "mistralai/mistral-large-2-instruct", - name: "Mistral Large 2 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-4k-instruct": { - id: "microsoft/phi-3-medium-4k-instruct", - name: "Phi 3 Medium 4k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4000, output: 4096 }, - }, - "microsoft/phi-3.5-moe-instruct": { - id: "microsoft/phi-3.5-moe-instruct", - name: "Phi 3.5 Moe Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-17", - last_updated: "2024-08-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-mini-instruct": { - id: "microsoft/phi-4-mini-instruct", - name: "Phi-4-Mini", - family: "phi", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "microsoft/phi-3-small-8k-instruct": { - id: "microsoft/phi-3-small-8k-instruct", - name: "Phi 3 Small 8k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8000, output: 4096 }, - }, - "microsoft/phi-3-vision-128k-instruct": { - id: "microsoft/phi-3-vision-128k-instruct", - name: "Phi 3 Vision 128k Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-19", - last_updated: "2024-05-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-vision-instruct": { - id: "microsoft/phi-3.5-vision-instruct", - name: "Phi 3.5 Vision Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-128k-instruct": { - id: "microsoft/phi-3-small-128k-instruct", - name: "Phi 3 Small 128k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-128k-instruct": { - id: "microsoft/phi-3-medium-128k-instruct", - name: "Phi 3 Medium 128k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1", - name: "Llama 3.3 Nemotron Super 49b V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/nemotron-4-340b-instruct": { - id: "nvidia/nemotron-4-340b-instruct", - name: "Nemotron 4 340b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-06-13", - last_updated: "2024-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama3-chatqa-1.5-70b": { - id: "nvidia/llama3-chatqa-1.5-70b", - name: "Llama3 Chatqa 1.5 70b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-28", - last_updated: "2024-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1.5": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", - name: "Llama 3.3 Nemotron Super 49b V1.5", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/parakeet-tdt-0.6b-v2": { - id: "nvidia/parakeet-tdt-0.6b-v2", - name: "Parakeet TDT 0.6B v2", - family: "parakeet", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "nemotron-3-nano-30b-a3b", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/llama-3.1-nemotron-ultra-253b-v1": { - id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", - name: "Llama-3.1-Nemotron-Ultra-253B-v1", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nvidia-nemotron-nano-9b-v2": { - id: "nvidia/nvidia-nemotron-nano-9b-v2", - name: "nvidia-nemotron-nano-9b-v2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/cosmos-nemotron-34b": { - id: "nvidia/cosmos-nemotron-34b", - name: "Cosmos Nemotron 34B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/llama-embed-nemotron-8b": { - id: "nvidia/llama-embed-nemotron-8b", - name: "Llama Embed Nemotron 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-03", - release_date: "2025-03-18", - last_updated: "2025-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 2048 }, - }, - "nvidia/llama-3.1-nemotron-51b-instruct": { - id: "nvidia/llama-3.1-nemotron-51b-instruct", - name: "Llama 3.1 Nemotron 51b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-22", - last_updated: "2024-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.1-nemotron-70b-instruct": { - id: "nvidia/llama-3.1-nemotron-70b-instruct", - name: "Llama 3.1 Nemotron 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-10-12", - last_updated: "2024-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/nemoretriever-ocr-v1": { - id: "nvidia/nemoretriever-ocr-v1", - name: "NeMo Retriever OCR v1", - family: "nemoretriever", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "deepseek-ai/deepseek-r1": { - id: "deepseek-ai/deepseek-r1", - name: "Deepseek R1", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.1": { - id: "deepseek-ai/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-20", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/deepseek-coder-6.7b-instruct": { - id: "deepseek-ai/deepseek-coder-6.7b-instruct", - name: "Deepseek Coder 6.7b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2023-10-29", - last_updated: "2023-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.2": { - id: "deepseek-ai/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/deepseek-r1-0528": { - id: "deepseek-ai/deepseek-r1-0528", - name: "Deepseek R1 0528", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.1-terminus": { - id: "deepseek-ai/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/whisper-large-v3": { - id: "openai/whisper-large-v3", - name: "Whisper Large v3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS-120B", - family: "gpt-oss", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-04", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "minimaxai/minimax-m2.1": { - id: "minimaxai/minimax-m2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "minimaxai/minimax-m2.5": { - id: "minimaxai/minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm4.7": { - id: "z-ai/glm4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm5": { - id: "z-ai/glm5", - name: "GLM5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 202752, output: 131000 }, - }, - "meta/llama-4-scout-17b-16e-instruct": { - id: "meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17b 16e Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-02", - release_date: "2025-04-02", - last_updated: "2025-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.3-70b-instruct": { - id: "meta/llama-3.3-70b-instruct", - name: "Llama 3.3 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-26", - last_updated: "2024-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama3-8b-instruct": { - id: "meta/llama3-8b-instruct", - name: "Llama3 8b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama3-70b-instruct": { - id: "meta/llama3-70b-instruct", - name: "Llama3 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/codellama-70b": { - id: "meta/codellama-70b", - name: "Codellama 70b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-29", - last_updated: "2024-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11b Vision Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.1-70b-instruct": { - id: "meta/llama-3.1-70b-instruct", - name: "Llama 3.1 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.2-1b-instruct": { - id: "meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-maverick-17b-128e-instruct": { - id: "meta/llama-4-maverick-17b-128e-instruct", - name: "Llama 4 Maverick 17b 128e Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-02", - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.1-405b-instruct": { - id: "meta/llama-3.1-405b-instruct", - name: "Llama 3.1 405b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3-235b-a22b": { - id: "qwen/qwen3-235b-a22b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen2.5-coder-7b-instruct": { - id: "qwen/qwen2.5-coder-7b-instruct", - name: "Qwen2.5 Coder 7b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-17", - last_updated: "2024-09-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen2.5-coder-32b-instruct": { - id: "qwen/qwen2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-06", - last_updated: "2024-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 8192 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwq-32b": { - id: "qwen/qwq-32b", - name: "Qwq 32b", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 66536 }, - }, - "google/gemma-2-2b-it": { - id: "google/gemma-2-2b-it", - name: "Gemma 2 2b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Gemma 3n E4b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-06-03", - last_updated: "2025-06-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-1b-it": { - id: "google/gemma-3-1b-it", - name: "Gemma 3 1b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/codegemma-7b": { - id: "google/codegemma-7b", - name: "Codegemma 7b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-03-21", - last_updated: "2024-03-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-4-31b-it": { - id: "google/gemma-4-31b-it", - name: "Gemma-4-31B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 16384 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Gemma 3 12b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/codegemma-1.1-7b": { - id: "google/codegemma-1.1-7b", - name: "Codegemma 1.1 7b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-04-30", - last_updated: "2024-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3n-e2b-it": { - id: "google/gemma-3n-e2b-it", - name: "Gemma 3n E2b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-06-12", - last_updated: "2025-06-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-2-27b-it": { - id: "google/gemma-2-27b-it", - name: "Gemma 2 27b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-06-24", - last_updated: "2024-06-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma-3-27B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-07", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-01-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "moonshotai/kimi-k2-instruct-0905": { - id: "moonshotai/kimi-k2-instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - inference: { - id: "inference", - env: ["INFERENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://inference.net/v1", - name: "Inference", - doc: "https://inference.net/models", - models: { - "mistral/mistral-nemo-12b-instruct": { - id: "mistral/mistral-nemo-12b-instruct", - name: "Mistral Nemo 12B Instruct", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.038, output: 0.1 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.055, output: 0.055 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-1b-instruct": { - id: "meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-3b-instruct": { - id: "meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.1-8b-instruct": { - id: "meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.025, output: 0.025 }, - limit: { context: 16000, output: 4096 }, - }, - "qwen/qwen-2.5-7b-vision-instruct": { - id: "qwen/qwen-2.5-7b-vision-instruct", - name: "Qwen 2.5 7B Vision Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 125000, output: 4096 }, - }, - "qwen/qwen3-embedding-4b": { - id: "qwen/qwen3-embedding-4b", - name: "Qwen 3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 2048 }, - }, - "google/gemma-3": { - id: "google/gemma-3", - name: "Google Gemma 3", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.3 }, - limit: { context: 125000, output: 4096 }, - }, - "osmosis/osmosis-structure-0.6b": { - id: "osmosis/osmosis-structure-0.6b", - name: "Osmosis Structure 0.6B", - family: "osmosis", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 4000, output: 2048 }, - }, - }, - }, - inception: { - id: "inception", - env: ["INCEPTION_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.inceptionlabs.ai/v1/", - name: "Inception", - doc: "https://platform.inceptionlabs.ai/docs", - models: { - "mercury-edit": { - id: "mercury-edit", - name: "Mercury Edit", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 8192 }, - }, - "mercury-2": { - id: "mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - mercury: { - id: "mercury", - name: "Mercury", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-06-26", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "mercury-coder": { - id: "mercury-coder", - name: "Mercury Coder", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-02-26", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - openai: { - id: "openai", - env: ["OPENAI_API_KEY"], - npm: "@ai-sdk/openai", - name: "OpenAI", - doc: "https://platform.openai.com/docs/models", - models: { - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4o-2024-05-13": { - id: "gpt-4o-2024-05-13", - name: "GPT-4o (2024-05-13)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 4096 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-5.3-chat-latest": { - id: "gpt-5.3-chat-latest", - name: "GPT-5.3 Chat (latest)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2022-12", - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o3-pro": { - id: "o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "o4-mini-deep-research": { - id: "o4-mini-deep-research", - name: "o4-mini-deep-research", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - experimental: { - modes: { - fast: { - cost: { input: 1.5, output: 9, cache_read: 0.15 }, - provider: { body: { service_tier: "priority" } }, - }, - }, - }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-image-1": { - id: "gpt-image-1", - name: "gpt-image-1", - family: "gpt-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-24", - last_updated: "2025-04-24", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, input: 0, output: 0 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-4o-2024-08-06": { - id: "gpt-4o-2024-08-06", - name: "GPT-4o (2024-08-06)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-08-06", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-image-1-mini": { - id: "gpt-image-1-mini", - name: "gpt-image-1-mini", - family: "gpt-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, input: 0, output: 0 }, - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "gpt-3.5-turbo": { - id: "gpt-3.5-turbo", - name: "GPT-3.5-turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2021-09-01", - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, - limit: { context: 16385, output: 4096 }, - }, - "o3-deep-research": { - id: "o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, output: 100000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "o1-pro": { - id: "o1-pro", - name: "o1-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2025-03-19", - last_updated: "2025-03-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, output: 100000 }, - }, - "codex-mini-latest": { - id: "codex-mini-latest", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - experimental: { - modes: { - fast: { cost: { input: 5, output: 30, cache_read: 0.5 }, provider: { body: { service_tier: "priority" } } }, - }, - }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-codex-spark": { - id: "gpt-5.3-codex-spark", - name: "GPT-5.3 Codex Spark", - family: "gpt-codex-spark", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 100000, output: 32000 }, - }, - "chatgpt-image-latest": { - id: "chatgpt-image-latest", - name: "chatgpt-image-latest", - family: "gpt-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, input: 0, output: 0 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 272000, output: 272000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-image-1.5": { - id: "gpt-image-1.5", - name: "gpt-image-1.5", - family: "gpt-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, input: 0, output: 0 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4o-2024-11-20": { - id: "gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - requesty: { - id: "requesty", - env: ["REQUESTY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://router.requesty.ai/v1", - name: "Requesty", - doc: "https://requesty.ai/solution/llm-routing/models", - models: { - "xai/grok-4-fast": { - id: "xai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.2 }, - limit: { context: 2000000, output: 64000 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-09", - last_updated: "2025-09-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 3 }, - limit: { context: 256000, output: 64000 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 16000, output: 4000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4 Mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "GPT-5 Image", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 5, output: 10, cache_read: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "audio", "image", "video"], output: ["text", "audio", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 2.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.55 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-01", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 62000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-3-7-sonnet": { - id: "anthropic/claude-3-7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-1": { - id: "anthropic/claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - }, - }, - vultr: { - id: "vultr", - env: ["VULTR_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.vultrinference.com/v1", - name: "Vultr", - doc: "https://api.vultrinference.com/", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-02-11", - last_updated: "2025-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 194000, output: 4096 }, - }, - "GLM-5-FP8": { - id: "GLM-5-FP8", - name: "GLM 5 FP8", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 3.1 }, - limit: { context: 200000, output: 131072 }, - }, - "DeepSeek-V3.2": { - id: "DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.65 }, - limit: { context: 127000, output: 4096 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 129000, output: 4096 }, - }, - "Kimi-K2.5": { - id: "Kimi-K2.5", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.75 }, - limit: { context: 254000, output: 32768 }, - }, - }, - }, - "alibaba-coding-plan-cn": { - id: "alibaba-coding-plan-cn", - env: ["ALIBABA_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding.dashscope.aliyuncs.com/v1", - name: "Alibaba Coding Plan (China)", - doc: "https://help.aliyun.com/zh/model-studio/coding-plan", - models: { - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 196608, output: 24576 }, - }, - "qwen3.6-plus": { - id: "qwen3.6-plus", - name: "Qwen3.6 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - }, - }, - mistral: { - id: "mistral", - env: ["MISTRAL_API_KEY"], - npm: "@ai-sdk/mistral", - name: "Mistral", - doc: "https://docs.mistral.ai/getting-started/models/", - models: { - "mistral-small-latest": { - id: "mistral-small-latest", - name: "Mistral Small (latest)", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "Mistral Large 3", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "labs-devstral-small-2512": { - id: "labs-devstral-small-2512", - name: "Devstral Small 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "magistral-medium-latest": { - id: "magistral-medium-latest", - name: "Magistral Medium (latest)", - family: "magistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 5 }, - limit: { context: 128000, output: 16384 }, - }, - "open-mixtral-8x7b": { - id: "open-mixtral-8x7b", - name: "Mixtral 8x7B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32000, output: 32000 }, - }, - "pixtral-large-latest": { - id: "pixtral-large-latest", - name: "Pixtral Large (latest)", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 2.1", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 16384 }, - }, - "codestral-latest": { - id: "codestral-latest", - name: "Codestral (latest)", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-05-29", - last_updated: "2025-01-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 4096 }, - }, - "mistral-large-latest": { - id: "mistral-large-latest", - name: "Mistral Large (latest)", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-small-2506": { - id: "mistral-small-2506", - name: "Mistral Small 3.2", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "pixtral-12b": { - id: "pixtral-12b", - name: "Pixtral 12B", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "ministral-8b-latest": { - id: "ministral-8b-latest", - name: "Ministral 8B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-embed": { - id: "mistral-embed", - name: "Mistral Embed", - family: "mistral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8000, output: 3072 }, - }, - "magistral-small": { - id: "magistral-small", - name: "Magistral Small", - family: "magistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-small-2603": { - id: "mistral-small-2603", - name: "Mistral Small 4", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 256000, output: 256000 }, - }, - "ministral-3b-latest": { - id: "ministral-3b-latest", - name: "Ministral 3B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 128000 }, - }, - "open-mixtral-8x22b": { - id: "open-mixtral-8x22b", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 64000, output: 64000 }, - }, - "devstral-small-2505": { - id: "devstral-small-2505", - name: "Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 128000 }, - }, - "devstral-medium-2507": { - id: "devstral-medium-2507", - name: "Devstral Medium", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-medium-latest": { - id: "mistral-medium-latest", - name: "Mistral Medium (latest)", - family: "mistral-medium", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 16384 }, - }, - "open-mistral-7b": { - id: "open-mistral-7b", - name: "Mistral 7B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2023-09-27", - last_updated: "2023-09-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 8000, output: 8000 }, - }, - "devstral-medium-latest": { - id: "devstral-medium-latest", - name: "Devstral 2 (latest)", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "devstral-small-2507": { - id: "devstral-small-2507", - name: "Devstral Small", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-medium-2508": { - id: "mistral-medium-2508", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - ovhcloud: { - id: "ovhcloud", - env: ["OVHCLOUD_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", - name: "OVHcloud AI Endpoints", - doc: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", - models: { - "mixtral-8x7b-instruct-v0.1": { - id: "mixtral-8x7b-instruct-v0.1", - name: "Mixtral-8x7B-Instruct-v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen2.5-coder-32b-instruct": { - id: "qwen2.5-coder-32b-instruct", - name: "Qwen2.5-Coder-32B-Instruct", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.96, output: 0.96 }, - limit: { context: 32768, output: 32768 }, - }, - "meta-llama-3_3-70b-instruct": { - id: "meta-llama-3_3-70b-instruct", - name: "Meta-Llama-3_3-70B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.74, output: 0.74 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-7b-instruct-v0.3": { - id: "mistral-7b-instruct-v0.3", - name: "Mistral-7B-Instruct-v0.3", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.11 }, - limit: { context: 65536, output: 65536 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek-R1-Distill-Llama-70B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-30", - last_updated: "2025-01-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.74, output: 0.74 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3-32B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-16", - last_updated: "2025-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.25 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen2.5-vl-72b-instruct": { - id: "qwen2.5-vl-72b-instruct", - name: "Qwen2.5-VL-72B-Instruct", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-31", - last_updated: "2025-03-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.01, output: 1.01 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder-30B-A3B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.26 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.18 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-small-3.2-24b-instruct-2506": { - id: "mistral-small-3.2-24b-instruct-2506", - name: "Mistral-Small-3.2-24B-Instruct-2506", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-16", - last_updated: "2025-07-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.31 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.47 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-nemo-instruct-2407": { - id: "mistral-nemo-instruct-2407", - name: "Mistral-Nemo-Instruct-2407", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 65536, output: 65536 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama-3.1-8B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-11", - last_updated: "2025-06-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.11 }, - limit: { context: 131072, output: 131072 }, - }, - }, - }, - friendli: { - id: "friendli", - env: ["FRIENDLI_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.friendli.ai/serverless/v1", - name: "Friendli", - doc: "https://friendli.ai/docs/guides/serverless_endpoints/introduction", - models: { - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "zai-org/GLM-5.1": { - id: "zai-org/GLM-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4 }, - limit: { context: 202752, output: 202752 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 202752 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 8000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - }, - }, - cortecs: { - id: "cortecs", - env: ["CORTECS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.cortecs.ai/v1", - name: "Cortecs", - doc: "https://api.cortecs.ai/v1/models", - models: { - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.09, output: 5.43 }, - limit: { context: 200000, output: 200000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.76 }, - limit: { context: 256000, output: 256000 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.551, output: 1.654 }, - limit: { context: 128000, output: 128000 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.23 }, - limit: { context: 198000, output: 198000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.08, output: 3.44 }, - limit: { context: 202752, output: 202752 }, - }, - "nova-pro-v1": { - id: "nova-pro-v1", - name: "Nova Pro 1.0", - family: "nova-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.016, output: 4.061 }, - limit: { context: 300000, output: 5000 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.099, output: 0.33 }, - limit: { context: 16384, output: 16384 }, - }, - "claude-4-5-sonnet": { - id: "claude-4-5-sonnet", - name: "Claude 4.5 Sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.259, output: 16.296 }, - limit: { context: 200000, output: 200000 }, - }, - "kimi-k2-instruct": { - id: "kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-07-11", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.551, output: 2.646 }, - limit: { context: 131000, output: 131000 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-11", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.57 }, - limit: { context: 400000, output: 400000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.654, output: 11.024 }, - limit: { context: 1048576, output: 65535 }, - }, - "claude-opus4-6": { - id: "claude-opus4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5.98, output: 29.89 }, - limit: { context: 1000000, output: 1000000 }, - }, - "devstral-small-2512": { - id: "devstral-small-2512", - name: "Devstral Small 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 262000 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.34, output: 1.34 }, - limit: { context: 196000, output: 196000 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 2.46 }, - limit: { context: 131072, output: 131072 }, - }, - "claude-opus4-5": { - id: "claude-opus4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5.98, output: 29.89 }, - limit: { context: 200000, output: 200000 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.307, output: 16.536 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.164, output: 1.311 }, - limit: { context: 128000, output: 128000 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.34 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next 80B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.158, output: 0.84 }, - limit: { context: 256000, output: 65536 }, - }, - "claude-4-6-sonnet": { - id: "claude-4-6-sonnet", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.59, output: 17.92 }, - limit: { context: 1000000, output: 1000000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.441, output: 1.984 }, - limit: { context: 262000, output: 262000 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.32, output: 1.18 }, - limit: { context: 196608, output: 196608 }, - }, - "intellect-3": { - id: "intellect-3", - name: "INTELLECT 3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.219, output: 1.202 }, - limit: { context: 128000, output: 128000 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.53 }, - limit: { context: 203000, output: 203000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT Oss 120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT 4.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.354, output: 9.417 }, - limit: { context: 1047576, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.656, output: 2.731 }, - limit: { context: 262000, output: 262000 }, - }, - "llama-3.1-405b-instruct": { - id: "llama-3.1-405b-instruct", - name: "Llama 3.1 405B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - }, - }, - siliconflow: { - id: "siliconflow", - env: ["SILICONFLOW_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.siliconflow.com/v1", - name: "SiliconFlow", - doc: "https://cloud.siliconflow.com/models", - models: { - "nex-agi/DeepSeek-V3.1-Nex-N1": { - id: "nex-agi/DeepSeek-V3.1-Nex-N1", - name: "nex-agi/DeepSeek-V3.1-Nex-N1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen/Qwen2.5-VL-72B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen3-VL-32B-Thinking": { - id: "Qwen/Qwen3-VL-32B-Thinking", - name: "Qwen/Qwen3-VL-32B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen/Qwen3-30B-A3B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 131000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Thinking": { - id: "Qwen/Qwen3-VL-235B-A22B-Thinking", - name: "Qwen/Qwen3-VL-235B-A22B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-7B-Instruct": { - id: "Qwen/Qwen2.5-7B-Instruct", - name: "Qwen/Qwen2.5-7B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen/Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen/Qwen3-VL-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "Qwen/QwQ-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.58 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-235B-A22B": { - id: "Qwen/Qwen3-235B-A22B", - name: "Qwen/Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.42 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Captioner": { - id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-VL-8B-Thinking": { - id: "Qwen/Qwen3-VL-8B-Thinking", - name: "Qwen/Qwen3-VL-8B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-VL-7B-Instruct": { - id: "Qwen/Qwen2.5-VL-7B-Instruct", - name: "Qwen/Qwen2.5-VL-7B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-8B": { - id: "Qwen/Qwen3-8B", - name: "Qwen/Qwen3-8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen/Qwen3-30B-A3B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen/Qwen3-235B-A22B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen/Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen/Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen2.5-72B-Instruct-128K": { - id: "Qwen/Qwen2.5-72B-Instruct-128K", - name: "Qwen/Qwen2.5-72B-Instruct-128K", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-32B-Instruct": { - id: "Qwen/Qwen2.5-32B-Instruct", - name: "Qwen/Qwen2.5-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen/Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Thinking": { - id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen/Qwen2.5-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen/Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-14B-Instruct": { - id: "Qwen/Qwen2.5-14B-Instruct", - name: "Qwen/Qwen2.5-14B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Thinking": { - id: "Qwen/Qwen3-VL-30B-A3B-Thinking", - name: "Qwen/Qwen3-VL-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Instruct": { - id: "Qwen/Qwen3-VL-32B-Instruct", - name: "Qwen/Qwen3-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Instruct": { - id: "Qwen/Qwen3-VL-8B-Instruct", - name: "Qwen/Qwen3-VL-8B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.68 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen/Qwen2.5-72B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 33000, output: 4000 }, - }, - "stepfun-ai/Step-3.5-Flash": { - id: "stepfun-ai/Step-3.5-Flash", - name: "stepfun-ai/Step-3.5-Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "zai-org/GLM-4.5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-5V-Turbo": { - id: "zai-org/GLM-5V-Turbo", - name: "zai-org/GLM-5V-Turbo", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "zai-org/GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-5.1": { - id: "zai-org/GLM-5.1", - name: "zai-org/GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-04-08", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4, cache_write: 0 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "zai-org/GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "zai-org/GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "zai-org/GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-07", - last_updated: "2025-12-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "zai-org/GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.9 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.5V": { - id: "zai-org/GLM-4.5V", - name: "zai-org/GLM-4.5V", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 66000, output: 66000 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "meta-llama/Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 33000, output: 4000 }, - }, - "inclusionAI/Ring-flash-2.0": { - id: "inclusionAI/Ring-flash-2.0", - name: "inclusionAI/Ring-flash-2.0", - family: "ring", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-mini-2.0": { - id: "inclusionAI/Ling-mini-2.0", - name: "inclusionAI/Ling-mini-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-flash-2.0": { - id: "inclusionAI/Ling-flash-2.0", - name: "inclusionAI/Ling-flash-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "tencent/Hunyuan-A13B-Instruct": { - id: "tencent/Hunyuan-A13B-Instruct", - name: "tencent/Hunyuan-A13B-Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "tencent/Hunyuan-MT-7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 33000, output: 33000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "deepseek-ai/DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/deepseek-vl2": { - id: "deepseek-ai/deepseek-vl2", - name: "deepseek-ai/deepseek-vl2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 4000, output: 4000 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3.2-Exp": { - id: "deepseek-ai/DeepSeek-V3.2-Exp", - name: "deepseek-ai/DeepSeek-V3.2-Exp", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "openai/gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.18 }, - limit: { context: 131000, output: 8000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "openai/gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.45 }, - limit: { context: 131000, output: 8000 }, - }, - "baidu/ERNIE-4.5-300B-A47B": { - id: "baidu/ERNIE-4.5-300B-A47B", - name: "baidu/ERNIE-4.5-300B-A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "THUDM/GLM-Z1-9B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "THUDM/GLM-4-9B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "THUDM/GLM-4-32B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "THUDM/GLM-Z1-32B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "moonshotai/Kimi-K2-Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 2.29 }, - limit: { context: 131000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "moonshotai/Kimi-K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 3 }, - limit: { context: 262000, output: 262000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMaxAI/MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMaxAI/MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "ByteDance-Seed/Seed-OSS-36B-Instruct": { - id: "ByteDance-Seed/Seed-OSS-36B-Instruct", - name: "ByteDance-Seed/Seed-OSS-36B-Instruct", - family: "seed", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - }, - }, - vercel: { - id: "vercel", - env: ["AI_GATEWAY_API_KEY"], - npm: "@ai-sdk/gateway", - name: "Vercel AI Gateway", - doc: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - models: { - "alibaba/qwen3-coder-plus": { - id: "alibaba/qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1000000, output: 1000000 }, - }, - "alibaba/qwen3-embedding-8b": { - id: "alibaba/qwen3-embedding-8b", - name: "Qwen3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen-3-30b": { - id: "alibaba/qwen-3-30b", - name: "Qwen3-30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.29 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen-3-235b": { - id: "alibaba/qwen-3-235b", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3.5-flash": { - id: "alibaba/qwen3.5-flash", - name: "Qwen 3.5 Flash", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.001, cache_write: 0.125 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen3.6-plus": { - id: "alibaba/qwen3.6-plus", - name: "Qwen 3.6 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.09999999999999999, cache_write: 0.625 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen3-max": { - id: "alibaba/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3-embedding-0.6b": { - id: "alibaba/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen-3-32b": { - id: "alibaba/qwen-3-32b", - name: "Qwen 3.32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-next-80b-a3b-thinking": { - id: "alibaba/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 65536 }, - }, - "alibaba/qwen3-vl-thinking": { - id: "alibaba/qwen3-vl-thinking", - name: "Qwen3 VL Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 8.4 }, - limit: { context: 131072, output: 129024 }, - }, - "alibaba/qwen3-235b-a22b-thinking": { - id: "alibaba/qwen3-235b-a22b-thinking", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.9 }, - limit: { context: 262114, output: 262114 }, - }, - "alibaba/qwen3-next-80b-a3b-instruct": { - id: "alibaba/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 1.1 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3-coder-next": { - id: "alibaba/qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 256000, output: 256000 }, - }, - "alibaba/qwen3-embedding-4b": { - id: "alibaba/qwen3-embedding-4b", - name: "Qwen3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen3-max-thinking": { - id: "alibaba/qwen3-max-thinking", - name: "Qwen 3 Max Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 256000, output: 65536 }, - }, - "alibaba/qwen3-coder": { - id: "alibaba/qwen3-coder", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.38, output: 1.53 }, - limit: { context: 262144, output: 66536 }, - }, - "alibaba/qwen3-max-preview": { - id: "alibaba/qwen3-max-preview", - name: "Qwen3 Max Preview", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3.5-plus": { - id: "alibaba/qwen3.5-plus", - name: "Qwen 3.5 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, cache_read: 0.04, cache_write: 0.5 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen-3-14b": { - id: "alibaba/qwen-3-14b", - name: "Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-vl-instruct": { - id: "alibaba/qwen3-vl-instruct", - name: "Qwen3 VL Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 131072, output: 129024 }, - }, - "alibaba/qwen3-coder-30b-a3b": { - id: "alibaba/qwen3-coder-30b-a3b", - name: "Qwen 3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "perplexity/sonar-pro": { - id: "perplexity/sonar-pro", - name: "Sonar Pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Sonar", - family: "sonar", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-02", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar-reasoning": { - id: "perplexity/sonar-reasoning", - name: "Sonar Reasoning", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar-reasoning-pro": { - id: "perplexity/sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 8000 }, - }, - "deepseek/deepseek-v3.2-thinking": { - id: "deepseek/deepseek-v3.2-thinking", - name: "DeepSeek V3.2 Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1 }, - limit: { context: 163840, output: 128000 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.4, cache_read: 0.22 }, - limit: { context: 163842, output: 8000 }, - }, - "deepseek/deepseek-v3": { - id: "deepseek/deepseek-v3", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.77, output: 0.77 }, - limit: { context: 163840, output: 16384 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 32768 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Trinity Mini", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/trinity-large-thinking": { - id: "arcee-ai/trinity-large-thinking", - name: "Trinity Large Thinking", - family: "trinity", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.8999999999999999 }, - limit: { context: 262100, output: 80000 }, - }, - "arcee-ai/trinity-large-preview": { - id: "arcee-ai/trinity-large-preview", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 131000, output: 131000 }, - }, - "recraft/recraft-v3": { - id: "recraft/recraft-v3", - name: "Recraft V3", - family: "recraft", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "recraft/recraft-v2": { - id: "recraft/recraft-v2", - name: "Recraft V2", - family: "recraft", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "voyage/voyage-3-large": { - id: "voyage/voyage-3-large", - name: "voyage-3-large", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4-large": { - id: "voyage/voyage-4-large", - name: "voyage-4-large", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-3.5-lite": { - id: "voyage/voyage-3.5-lite", - name: "voyage-3.5-lite", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-code-3": { - id: "voyage/voyage-code-3", - name: "voyage-code-3", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-finance-2": { - id: "voyage/voyage-finance-2", - name: "voyage-finance-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4-lite": { - id: "voyage/voyage-4-lite", - name: "voyage-4-lite", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-4": { - id: "voyage/voyage-4", - name: "voyage-4", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-code-2": { - id: "voyage/voyage-code-2", - name: "voyage-code-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-law-2": { - id: "voyage/voyage-law-2", - name: "voyage-law-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-3.5": { - id: "voyage/voyage-3.5", - name: "voyage-3.5", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "morph/morph-v3-large": { - id: "morph/morph-v3-large", - name: "Morph v3 Large", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 32000, output: 32000 }, - }, - "morph/morph-v3-fast": { - id: "morph/morph-v3-fast", - name: "Morph v3 Fast", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 16000, output: 16000 }, - }, - "zai/glm-5v-turbo": { - id: "zai/glm-5v-turbo", - name: "GLM 5V Turbo", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24 }, - limit: { context: 200000, output: 128000 }, - }, - "zai/glm-4.7": { - id: "zai/glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, - limit: { context: 202752, output: 120000 }, - }, - "zai/glm-5": { - id: "zai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131072 }, - }, - "zai/glm-4.7-flashx": { - id: "zai/glm-4.7-flashx", - name: "GLM 4.7 FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "zai/glm-4.6v-flash": { - id: "zai/glm-4.6v-flash", - name: "GLM-4.6V-Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 24000 }, - }, - "zai/glm-4.5": { - id: "zai/glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 131072 }, - }, - "zai/glm-4.5-air": { - id: "zai/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 128000, output: 96000 }, - }, - "zai/glm-5-turbo": { - id: "zai/glm-5-turbo", - name: "GLM 5 Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24 }, - limit: { context: 202800, output: 131100 }, - }, - "zai/glm-4.5v": { - id: "zai/glm-4.5v", - name: "GLM 4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 66000, output: 66000 }, - }, - "zai/glm-4.6": { - id: "zai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.8 }, - limit: { context: 200000, output: 96000 }, - }, - "zai/glm-4.6v": { - id: "zai/glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, - limit: { context: 128000, output: 24000 }, - }, - "zai/glm-4.7-flash": { - id: "zai/glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.39999999999999997 }, - limit: { context: 200000, output: 131000 }, - }, - "cohere/command-a": { - id: "cohere/command-a", - name: "Command A", - family: "command", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "cohere/embed-v4.0": { - id: "cohere/embed-v4.0", - name: "Embed v4.0", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "INTELLECT 3", - family: "intellect", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 131072 }, - }, - "xai/grok-4.20-non-reasoning": { - id: "xai/grok-4.20-non-reasoning", - name: "Grok 4.20 Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-non-reasoning-beta": { - id: "xai/grok-4.20-non-reasoning-beta", - name: "Grok 4.20 Beta Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-reasoning": { - id: "xai/grok-4.20-reasoning", - name: "Grok 4.20 Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-imagine-image": { - id: "xai/grok-imagine-image", - name: "Grok Imagine Image", - family: "grok", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4.20-multi-agent-beta": { - id: "xai/grok-4.20-multi-agent-beta", - name: "Grok 4.20 Multi Agent Beta", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-imagine-image-pro": { - id: "xai/grok-imagine-image-pro", - name: "Grok Imagine Image Pro", - family: "grok", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4-fast-reasoning": { - id: "xai/grok-4-fast-reasoning", - name: "Grok 4 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 256000 }, - }, - "xai/grok-4.1-fast-non-reasoning": { - id: "xai/grok-4.1-fast-non-reasoning", - name: "Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4.20-reasoning-beta": { - id: "xai/grok-4.20-reasoning-beta", - name: "Grok 4.20 Beta Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-multi-agent": { - id: "xai/grok-4.20-multi-agent", - name: "Grok 4.20 Multi-Agent", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.1-fast-reasoning": { - id: "xai/grok-4.1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4-fast-non-reasoning": { - id: "xai/grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-2-vision": { - id: "xai/grok-2-vision", - name: "Grok 2 Vision", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "xai/grok-code-fast-1": { - id: "xai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "xai/grok-3-fast": { - id: "xai/grok-3-fast", - name: "Grok 3 Fast", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-3-mini-fast": { - id: "xai/grok-3-mini-fast", - name: "Grok 3 Mini Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "NVIDIA Nemotron 3 Super 120B A12B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.65 }, - limit: { context: 256000, output: 32000 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "Nemotron 3 Nano 30B A3B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/nemotron-nano-12b-v2-vl": { - id: "nvidia/nemotron-nano-12b-v2-vl", - name: "Nvidia Nemotron Nano 12B V2 VL", - family: "nemotron", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "Nvidia Nemotron Nano 9B V2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.024999999999999998 }, - limit: { context: 128000, output: 128000 }, - }, - "inception/mercury-coder-small": { - id: "inception/mercury-coder-small", - name: "Mercury Coder Small Beta", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-02-26", - last_updated: "2025-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 32000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "GPT 4o Mini Search Preview", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2023-09", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/codex-mini": { - id: "openai/codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.38 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "GPT-5.3 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT 5.2 ", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/text-embedding-3-large": { - id: "openai/text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT 5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/text-embedding-ada-002": { - id: "openai/text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3 Pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT 5.4 Mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT 5.4 Nano", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1-thinking": { - id: "openai/gpt-5.1-thinking", - name: "GPT 5.1 Thinking", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT 5.4 Pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-09", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, input: 12289, output: 4096 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/text-embedding-3-small": { - id: "openai/text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT 5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 131072, input: 98304, output: 32768 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 128000, output: 272000 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "gpt-oss-safeguard-20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3, cache_read: 0.04 }, - limit: { context: 131072, input: 65536, output: 65536 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-09", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 8192, input: 4096, output: 4096 }, - }, - "openai/gpt-5.1-instant": { - id: "openai/gpt-5.1-instant", - name: "GPT-5.1 Instant", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "amazon/titan-embed-text-v2": { - id: "amazon/titan-embed-text-v2", - name: "Titan Text Embeddings V2", - family: "titan-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-04", - last_updated: "2024-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "amazon/nova-2-lite": { - id: "amazon/nova-2-lite", - name: "Nova 2 Lite", - family: "nova", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 1000000 }, - }, - "amazon/nova-pro": { - id: "amazon/nova-pro", - name: "Nova Pro", - family: "nova-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, - limit: { context: 300000, output: 8192 }, - }, - "amazon/nova-lite": { - id: "amazon/nova-lite", - name: "Nova Lite", - family: "nova-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, - limit: { context: 300000, output: 8192 }, - }, - "amazon/nova-micro": { - id: "amazon/nova-micro", - name: "Nova Micro", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral/mistral-nemo": { - id: "mistral/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.17 }, - limit: { context: 60288, output: 16000 }, - }, - "mistral/ministral-14b": { - id: "mistral/ministral-14b", - name: "Ministral 14B", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/codestral-embed": { - id: "mistral/codestral-embed", - name: "Codestral Embed", - family: "codestral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "mistral/mistral-medium": { - id: "mistral/mistral-medium", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 64000 }, - }, - "mistral/mistral-embed": { - id: "mistral/mistral-embed", - name: "Mistral Embed", - family: "mistral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "mistral/devstral-2": { - id: "mistral/devstral-2", - name: "Devstral 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-large-3": { - id: "mistral/mistral-large-3", - name: "Mistral Large 3", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/devstral-small-2": { - id: "mistral/devstral-small-2", - name: "Devstral Small 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "mistral/devstral-small": { - id: "mistral/devstral-small", - name: "Devstral Small 1.1", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 64000 }, - }, - "mistral/ministral-8b": { - id: "mistral/ministral-8b", - name: "Ministral 8B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/magistral-medium": { - id: "mistral/magistral-medium", - name: "Magistral Medium (latest)", - family: "magistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 5 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral/mistral-small": { - id: "mistral/mistral-small", - name: "Mistral Small (latest)", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/magistral-small": { - id: "mistral/magistral-small", - name: "Magistral Small", - family: "magistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/pixtral-12b": { - id: "mistral/pixtral-12b", - name: "Pixtral 12B", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/mixtral-8x22b-instruct": { - id: "mistral/mixtral-8x22b-instruct", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 64000, output: 64000 }, - }, - "mistral/pixtral-large": { - id: "mistral/pixtral-large", - name: "Pixtral Large (latest)", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/ministral-3b": { - id: "mistral/ministral-3b", - name: "Ministral 3B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/codestral": { - id: "mistral/codestral", - name: "Codestral (latest)", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-05-29", - last_updated: "2025-01-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 4096 }, - }, - "meta/llama-3.2-1b": { - id: "meta/llama-3.2-1b", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.1-8b": { - id: "meta/llama-3.1-8b", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.05 }, - limit: { context: 131072, output: 16384 }, - }, - "meta/llama-3.2-90b": { - id: "meta/llama-3.2-90b", - name: "Llama 3.2 90B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-3b": { - id: "meta/llama-3.2-3b", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-11b": { - id: "meta/llama-3.2-11b", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.16, output: 0.16 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.1-70b": { - id: "meta/llama-3.1-70b", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta/llama-3.3-70b": { - id: "meta/llama-3.3-70b", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-maverick": { - id: "meta/llama-4-maverick", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-scout": { - id: "meta/llama-4-scout", - name: "Llama-4-Scout-17B-16E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "vercel/v0-1.5-md": { - id: "vercel/v0-1.5-md", - name: "v0-1.5-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "vercel/v0-1.0-md": { - id: "vercel/v0-1.0-md", - name: "v0-1.0-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "Minimax M2.7", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131000 }, - }, - "minimax/minimax-m2.7-highspeed": { - id: "minimax/minimax-m2.7-highspeed", - name: "MiniMax M2.7 High Speed", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131100 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.15, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 262114, output: 262114 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.1-lightning": { - id: "minimax/minimax-m2.1-lightning", - name: "MiniMax M2.1 Lightning", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.4, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131000 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "MiniMax M2.5 High Speed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 0, output: 0 }, - }, - "kwaipilot/kat-coder-pro-v1": { - id: "kwaipilot/kat-coder-pro-v1", - name: "KAT-Coder-Pro V1", - family: "kat-coder", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-24", - last_updated: "2025-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "kwaipilot/kat-coder-pro-v2": { - id: "kwaipilot/kat-coder-pro-v2", - name: "Kat Coder Pro V2", - family: "kat-coder", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 256000 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1000000, output: 65000 }, - }, - "google/gemini-3-pro-image": { - id: "google/gemini-3-pro-image", - name: "Nano Banana Pro (Gemini 3 Pro Image)", - family: "gemini-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 2, output: 120 }, - limit: { context: 65536, output: 32768 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1000000, output: 64000 }, - }, - "google/imagen-4.0-ultra-generate-001": { - id: "google/imagen-4.0-ultra-generate-001", - name: "Imagen 4 Ultra", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-24", - last_updated: "2025-05-24", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-embedding-001": { - id: "google/gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemma-4-31b-it": { - id: "google/gemma-4-31b-it", - name: "Gemma 4 31B IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.39999999999999997 }, - limit: { context: 262144, output: 131072 }, - }, - "google/gemini-2.5-flash-image": { - id: "google/gemini-2.5-flash-image", - name: "Nano Banana (Gemini 2.5 Flash Image)", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/text-embedding-005": { - id: "google/text-embedding-005", - name: "Text Embedding 005", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08", - last_updated: "2024-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/text-multilingual-embedding-002": { - id: "google/text-multilingual-embedding-002", - name: "Text Multilingual Embedding 002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-3.1-flash-image-preview": { - id: "google/gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image Preview (Nano Banana 2)", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 131072, output: 32768 }, - }, - "google/gemini-3-flash": { - id: "google/gemini-3-flash", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/imagen-4.0-generate-001": { - id: "google/imagen-4.0-generate-001", - name: "Imagen 4", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash-preview-09-2025": { - id: "google/gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-embedding-2": { - id: "google/gemini-embedding-2", - name: "Gemini Embedding 2", - family: "gemini-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "google/gemma-4-26b-a4b-it": { - id: "google/gemma-4-26b-a4b-it", - name: "Gemma 4 26B A4B IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-03", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.39999999999999997 }, - limit: { context: 262144, output: 131072 }, - }, - "google/imagen-4.0-fast-generate-001": { - id: "google/imagen-4.0-fast-generate-001", - name: "Imagen 4 Fast", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-flash-image-preview": { - id: "google/gemini-2.5-flash-image-preview", - name: "Nano Banana Preview (Gemini 2.5 Flash Image Preview)", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-2.0-flash-lite": { - id: "google/gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash": { - id: "google/gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "moonshotai/kimi-k2-turbo": { - id: "moonshotai/kimi-k2-turbo", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.4, output: 10 }, - limit: { context: 256000, output: 16384 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking-turbo": { - id: "moonshotai/kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262114, output: 262114 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.47, output: 2, cache_read: 0.14 }, - limit: { context: 216144, output: 216144 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "anthropic/claude-3.5-sonnet-20240620": { - id: "anthropic/claude-3.5-sonnet-20240620", - name: "Claude 3.5 Sonnet (2024-06-20)", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-3-opus": { - id: "anthropic/claude-3-opus", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo V2 Pro", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3, cache_read: 0.19999999999999998 }, - limit: { context: 1000000, output: 128000 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.29 }, - limit: { context: 262144, output: 32000 }, - }, - "bytedance/seed-1.6": { - id: "bytedance/seed-1.6", - name: "Seed 1.6", - family: "seed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 32000 }, - }, - "bytedance/seed-1.8": { - id: "bytedance/seed-1.8", - name: "Seed 1.8", - family: "seed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 64000 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "LongCat Flash Chat", - family: "longcat", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-30", - last_updated: "2025-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "meituan/longcat-flash-thinking": { - id: "meituan/longcat-flash-thinking", - name: "LongCat Flash Thinking", - family: "longcat", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 128000, output: 8192 }, - }, - "meituan/longcat-flash-thinking-2601": { - id: "meituan/longcat-flash-thinking-2601", - name: "LongCat Flash Thinking 2601", - family: "longcat", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32768, output: 32768 }, - }, - "bfl/flux-pro-1.0-fill": { - id: "bfl/flux-pro-1.0-fill", - name: "FLUX.1 Fill [pro]", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-pro-1.1": { - id: "bfl/flux-pro-1.1", - name: "FLUX1.1 [pro]", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-kontext-pro": { - id: "bfl/flux-kontext-pro", - name: "FLUX.1 Kontext Pro", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-kontext-max": { - id: "bfl/flux-kontext-max", - name: "FLUX.1 Kontext Max", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-pro-1.1-ultra": { - id: "bfl/flux-pro-1.1-ultra", - name: "FLUX1.1 [pro] Ultra", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - }, - }, - minimax: { - id: "minimax", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimax.io/anthropic/v1", - name: "MiniMax (minimax.io)", - doc: "https://platform.minimax.io/docs/guides/quickstart", - models: { - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - llmgateway: { - id: "llmgateway", - env: ["LLMGATEWAY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.llmgateway.io/v1", - name: "LLM Gateway", - doc: "https://llmgateway.io/docs", - models: { - "minimax-m2.7": { - id: "minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131100 }, - }, - "gpt-4o-mini-search-preview": { - id: "gpt-4o-mini-search-preview", - name: "GPT-4o Mini Search Preview", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-4-20-beta-0309-non-reasoning": { - id: "grok-4-20-beta-0309-non-reasoning", - name: "Grok 4.20 Beta Non-Reasoning (0309)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2 }, - limit: { context: 2000000, output: 30000 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 6, output: 60 }, - limit: { context: 1000000, output: 66000 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview (09-2025)", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65535 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-21", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 8192 }, - status: "beta", - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 32768 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "Mistral Large 3", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 16384 }, - }, - "llama-4-scout": { - id: "llama-4-scout", - name: "Llama 4 Scout", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.59 }, - limit: { context: 32768, output: 16384 }, - status: "beta", - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "minimax-m2.7-highspeed": { - id: "minimax-m2.7-highspeed", - name: "MiniMax M2.7 Highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06 }, - limit: { context: 204800, output: 131100 }, - }, - "hermes-2-pro-llama-3-8b": { - id: "hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, - status: "beta", - }, - "qwen-coder-plus": { - id: "qwen-coder-plus", - name: "Qwen Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 131072, output: 8192 }, - }, - auto: { - id: "auto", - name: "Auto Route", - family: "auto", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "gemma-3n-e4b-it": { - id: "gemma-3n-e4b-it", - name: "Gemma 3n E4B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-06-26", - last_updated: "2025-06-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 1000000, output: 16384 }, - }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude 3.5 Sonnet (2024-10-22)", - family: "claude", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 8192 }, - status: "deprecated", - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 272000 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.4 }, - limit: { context: 131072, output: 8192 }, - }, - "glm-4.6v-flashx": { - id: "glm-4.6v-flashx", - name: "GLM-4.6V FlashX", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.4, cache_read: 0 }, - limit: { context: 128000, output: 16000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite (Preview)", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.03 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen VL Plus", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.21, output: 0.64 }, - limit: { context: 131072, output: 32000 }, - }, - "gemma-2-27b-it-together": { - id: "gemma-2-27b-it-together", - name: "Gemma 2 27B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.08 }, - limit: { context: 8192, output: 16384 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131100 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, output: 8192 }, - }, - "codestral-2508": { - id: "codestral-2508", - name: "Codestral", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 16384 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7 FlashX", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "gemma-3-1b-it": { - id: "gemma-3-1b-it", - name: "Gemma 3 1B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 1000000, output: 16384 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro (Preview)", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen35-397b-a17b": { - id: "qwen35-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.6, output: 6.4 }, - limit: { context: 131072, output: 32000 }, - }, - "gpt-5.3-chat-latest": { - id: "gpt-5.3-chat-latest", - name: "GPT-5.3 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 128000, output: 16384 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1048576, output: 8192 }, - status: "deprecated", - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash (Preview)", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65535 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, - limit: { context: 131072, output: 32000 }, - }, - "glm-4-32b-0414-128k": { - id: "glm-4-32b-0414-128k", - name: "GLM-4 32B (0414-128k)", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 16384 }, - }, - "seed-1-6-flash-250715": { - id: "seed-1-6-flash-250715", - name: "Seed 1.6 Flash (250715)", - family: "seed", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen-omni-turbo": { - id: "qwen-omni-turbo", - name: "Qwen Omni Turbo", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-26", - last_updated: "2025-03-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 32768, output: 8192 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Claude 3 Haiku (2024-03-07)", - family: "claude", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03 }, - limit: { context: 200000, output: 4096 }, - }, - "seed-1-6-250615": { - id: "seed-1-6-250615", - name: "Seed 1.6 (250615)", - family: "seed", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen3-vl-235b-a22b-thinking": { - id: "qwen3-vl-235b-a22b-thinking", - name: "Qwen3 VL 235B A22B Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-vl-30b-a3b-thinking": { - id: "qwen3-vl-30b-a3b-thinking", - name: "Qwen3 VL 30B A3B Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1 }, - limit: { context: 131072, output: 32768 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1, cache_read: 0.03 }, - limit: { context: 196608, output: 131072 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5 (2025-09-29)", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-09", - last_updated: "2024-09-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 1000000, output: 32000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 16384 }, - }, - "cogview-4": { - id: "cogview-4", - name: "CogView-4", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-03-04", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen2-5-vl-32b-instruct": { - id: "qwen2-5-vl-32b-instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.2 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 1048576, output: 65536 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Sonar Pro", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-07", - last_updated: "2025-03-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 16384 }, - }, - "pixtral-large-latest": { - id: "pixtral-large-latest", - name: "Pixtral Large Latest", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-11-18", - last_updated: "2024-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 12 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 400000, output: 128000 }, - }, - "qwen3-vl-8b-instruct": { - id: "qwen3-vl-8b-instruct", - name: "Qwen3 VL 8B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "claude-3-7-sonnet": { - id: "claude-3-7-sonnet", - name: "Claude 3.7 Sonnet", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 8192 }, - }, - "grok-4-20-beta-0309-reasoning": { - id: "grok-4-20-beta-0309-reasoning", - name: "Grok 4.20 Beta Reasoning (0309)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-imagine-image": { - id: "grok-imagine-image", - name: "Grok Imagine Image", - family: "grok", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-03-02", - last_updated: "2026-03-02", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "gemini-pro-latest": { - id: "gemini-pro-latest", - name: "Gemini Pro Latest", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-27", - last_updated: "2026-02-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.08 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-3-5-haiku": { - id: "claude-3-5-haiku", - name: "Claude 3.5 Haiku", - family: "claude", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08 }, - limit: { context: 200000, output: 8192 }, - status: "deprecated", - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 15, cache_read: 0.6 }, - limit: { context: 256000, output: 32800 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1 }, - limit: { context: 196608, output: 131072 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "Gemini 3 Pro Image (Preview)", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 65536, output: 32768 }, - }, - "mixtral-8x7b-instruct-together": { - id: "mixtral-8x7b-instruct-together", - name: "Mixtral 8x7B Instruct", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2023-12-10", - last_updated: "2023-12-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen-max-latest": { - id: "qwen-max-latest", - name: "Qwen Max Latest", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.6, output: 6.4 }, - limit: { context: 131072, output: 32000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4 Mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 16384 }, - }, - "glm-4.6v-flash": { - id: "glm-4.6v-flash", - name: "GLM-4.6V Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16000 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-10-02", - last_updated: "2025-10-02", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.03 }, - limit: { context: 32768, output: 32768 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-large-latest": { - id: "mistral-large-latest", - name: "Mistral Large Latest", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 12 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-small-2506": { - id: "mistral-small-2506", - name: "Mistral Small 3.2", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "gemma-3-12b-it": { - id: "gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 1000000, output: 16384 }, - }, - "seedream-4-0": { - id: "seedream-4-0", - name: "Seedream 4.0", - family: "seed", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 8192 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax-text-01": { - id: "minimax-text-01", - name: "MiniMax Text 01", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000000, output: 131072 }, - }, - "qwen3-32b-fp8": { - id: "qwen3-32b-fp8", - name: "Qwen3 32B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, - limit: { context: 1048576, output: 65535 }, - }, - "llama-4-scout-17b-instruct": { - id: "llama-4-scout-17b-instruct", - name: "Llama 4 Scout 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 8192, output: 2048 }, - status: "beta", - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 128000, output: 16400 }, - }, - "qwen3-4b-fp8": { - id: "qwen3-4b-fp8", - name: "Qwen3 4B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 128000, output: 20000 }, - }, - "veo-3.1-generate-preview": { - id: "veo-3.1-generate-preview", - name: "Veo 3.1", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-03-14", - last_updated: "2026-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 1 }, - status: "beta", - }, - "llama-guard-4-12b": { - id: "llama-guard-4-12b", - name: "Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 131072, output: 16384 }, - }, - "gemma-3n-e2b-it": { - id: "gemma-3n-e2b-it", - name: "Gemma 3n E2B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-06-26", - last_updated: "2025-06-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 1000000, output: 16384 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3.1-flash-image-preview": { - id: "gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image (Preview)", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "ministral-8b-2512": { - id: "ministral-8b-2512", - name: "Ministral 8B", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, output: 16384 }, - }, - "grok-4-fast": { - id: "grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "gemma-3-27b": { - id: "gemma-3-27b", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-imagine-image-pro": { - id: "grok-imagine-image-pro", - name: "Grok Imagine Image Pro", - family: "grok", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-03-02", - last_updated: "2026-03-02", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen3-vl-flash": { - id: "qwen3-vl-flash", - name: "Qwen3 VL Flash", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 262144, output: 32768 }, - }, - "llama-3.1-70b-instruct": { - id: "llama-3.1-70b-instruct", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 2048 }, - status: "beta", - }, - "seed-1-8-251228": { - id: "seed-1-8-251228", - name: "Seed 1.8 (251228)", - family: "seed", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 8192 }, - status: "beta", - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 6 }, - limit: { context: 131072, output: 32768 }, - status: "beta", - }, - "seed-1-6-250915": { - id: "seed-1-6-250915", - name: "Seed 1.6 (250915)", - family: "seed", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 16384 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, output: 10000 }, - }, - "glm-4.5-x": { - id: "glm-4.5-x", - name: "GLM-4.5 X", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 8.9, cache_read: 0.45 }, - limit: { context: 128000, output: 16384 }, - status: "beta", - }, - "veo-3.1-fast-generate-preview": { - id: "veo-3.1-fast-generate-preview", - name: "Veo 3.1 Fast", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-03-14", - last_updated: "2026-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 1 }, - status: "beta", - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gemma-3-4b-it": { - id: "gemma-3-4b-it", - name: "Gemma 3 4B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 1000000, output: 16384 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen-image-max": { - id: "qwen-image-max", - name: "Qwen Image Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-04", - last_updated: "2025-08-04", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen3-30b-a3b-thinking-2507": { - id: "qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 8192 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "Grok 4 Fast Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - o1: { - id: "o1", - name: "o1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 16384 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5 Air", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.1, cache_read: 0.03 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, output: 128000 }, - }, - "claude-3-5-sonnet": { - id: "claude-3-5-sonnet", - name: "Claude 3.5 Sonnet", - family: "claude", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 16384 }, - }, - "gpt-3.5-turbo": { - id: "gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2022-11-30", - last_updated: "2022-11-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, output: 16384 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3 Mini", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 16384 }, - }, - "qwen-image-max-2025-12-30": { - id: "qwen-image-max-2025-12-30", - name: "Qwen Image Max 2025-12-30", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-31", - last_updated: "2025-12-31", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen VL Max", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 32000 }, - }, - sonar: { - id: "sonar", - name: "Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 130000, output: 16384 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.5, cache_read: 0.06 }, - limit: { context: 1000000, output: 65536 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68, cache_read: 0.11 }, - limit: { context: 128000, output: 32768 }, - }, - "ministral-3b-2512": { - id: "ministral-3b-2512", - name: "Ministral 3B", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 16384 }, - }, - "grok-4-20-multi-agent-beta-0309": { - id: "grok-4-20-multi-agent-beta-0309", - name: "Grok 4.20 Multi-Agent Beta (0309)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2 }, - limit: { context: 2000000, output: 30000 }, - }, - "qwen-plus-latest": { - id: "qwen-plus-latest", - name: "Qwen Plus Latest", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-09", - last_updated: "2024-09-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, - limit: { context: 1000000, output: 32000 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 128000, output: 16000 }, - }, - "seedream-4-5": { - id: "seedream-4-5", - name: "Seedream 4.5", - family: "seed", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "llama-3.1-nemotron-ultra-253b": { - id: "llama-3.1-nemotron-ultra-253b", - name: "Llama 3.1 Nemotron Ultra 253B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-07", - last_updated: "2025-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, output: 256000 }, - }, - "llama-4-maverick-17b-instruct": { - id: "llama-4-maverick-17b-instruct", - name: "Llama 4 Maverick 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.97 }, - limit: { context: 8192, output: 2048 }, - status: "beta", - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "Grok 4 (0709)", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, output: 256000 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 129024, output: 32768 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "qwen-image": { - id: "qwen-image", - name: "Qwen Image", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-04", - last_updated: "2025-08-04", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen-image-edit-plus": { - id: "qwen-image-edit-plus", - name: "Qwen Image Edit Plus", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 200000, output: 16384 }, - }, - "qwen3-30b-a3b-fp8": { - id: "qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "minimax-m2.1-lightning": { - id: "minimax-m2.1-lightning", - name: "MiniMax M2.1 Lightning", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.48 }, - limit: { context: 196608, output: 131072 }, - }, - "claude-3-haiku": { - id: "claude-3-haiku", - name: "Claude 3 Haiku", - family: "claude", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03 }, - limit: { context: 200000, output: 4096 }, - }, - "glm-image": { - id: "glm-image", - name: "GLM-Image", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-01-14", - last_updated: "2025-01-14", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, - limit: { context: 128000, output: 16000 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max 2026-01-23", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 65536 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, output: 128000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5 (2025-10-01)", - family: "claude", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen-image-edit-max": { - id: "qwen-image-edit-max", - name: "Qwen Image Edit Max", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-16", - last_updated: "2026-01-16", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5 Flash", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-3.2-3b-instruct": { - id: "llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.05 }, - limit: { context: 32768, output: 32000 }, - status: "beta", - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.68, cache_read: 0.06 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen-image-plus": { - id: "qwen-image-plus", - name: "Qwen Image Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-04", - last_updated: "2025-08-04", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 2000, output: 4096 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3 VL Plus", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.6, cache_read: 0.04 }, - limit: { context: 262144, output: 32768 }, - }, - "grok-4-1-fast": { - id: "grok-4-1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4 (2025-05-14)", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 16384 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.8 }, - limit: { context: 262000, output: 8192 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 1000000, output: 128000 }, - }, - "gpt-4o-search-preview": { - id: "gpt-4o-search-preview", - name: "GPT-4o Search Preview", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - custom: { - id: "custom", - name: "Custom Model", - family: "auto", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 Nano", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1000000, output: 16384 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude 3.7 Sonnet (2025-02-19)", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 8192 }, - }, - "qwen3-vl-30b-a3b-instruct": { - id: "qwen3-vl-30b-a3b-instruct", - name: "Qwen3 VL 30B A3B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-10-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 8192 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131100 }, - }, - o3: { - id: "o3", - name: "o3", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 16384 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 163840, output: 16384 }, - }, - "qwen3-235b-a22b-fp8": { - id: "qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 32766 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "minimax-m2.5-highspeed": { - id: "minimax-m2.5-highspeed", - name: "MiniMax M2.5 Highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.03 }, - limit: { context: 204800, output: 131100 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 1000000, output: 8192 }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3, cache_read: 0.5 }, - limit: { context: 131072, output: 16384 }, - }, - "llama-3-8b-instruct": { - id: "llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 8192, output: 8192 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen3-vl-235b-a22b-instruct": { - id: "qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7 Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "gemini-2.5-flash-image-preview": { - id: "gemini-2.5-flash-image-preview", - name: "Gemini 2.5 Flash Image (Preview)", - family: "gemini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-10-02", - last_updated: "2025-10-02", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 131072, output: 32766 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "GPT-5 Chat Latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4 (2025-05-14)", - family: "claude", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5 }, - limit: { context: 200000, output: 16384 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-26", - last_updated: "2025-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen25-coder-7b": { - id: "qwen25-coder-7b", - name: "Qwen2.5 Coder 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 32768, output: 8192 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 2048 }, - status: "beta", - }, - "llama-3-70b-instruct": { - id: "llama-3-70b-instruct", - name: "Llama 3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek R1 (0528)", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.4 }, - limit: { context: 64000, output: 16384 }, - status: "beta", - }, - "glm-4.5-airx": { - id: "glm-4.5-airx", - name: "GLM-4.5 AirX", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.5, cache_read: 0.22 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "devstral-small-2507": { - id: "devstral-small-2507", - name: "Devstral Small 1.1", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-07-21", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 16384 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-02-25", - last_updated: "2025-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - status: "deprecated", - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1000000, output: 16384 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 272000 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok-3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 131072, output: 16384 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-10-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "ministral-14b-2512": { - id: "ministral-14b-2512", - name: "Ministral 14B", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, output: 16384 }, - }, - "llama-3.2-11b-instruct": { - id: "llama-3.2-11b-instruct", - name: "Llama 3.2 11B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.33 }, - limit: { context: 128000, output: 16384 }, - status: "beta", - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-07", - last_updated: "2025-03-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-3-opus": { - id: "claude-3-opus", - name: "Claude 3 Opus", - family: "claude", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5 }, - limit: { context: 200000, output: 4096 }, - }, - }, - }, - "google-vertex": { - id: "google-vertex", - env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], - npm: "@ai-sdk/google-vertex", - name: "Vertex", - doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/models", - models: { - "gemini-flash-lite-latest": { - id: "gemini-flash-lite-latest", - name: "Gemini Flash-Lite Latest", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview-customtools": { - id: "gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash Preview 05-20", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-embedding-001": { - id: "gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-05", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 2048, output: 3072 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-flash-latest": { - id: "gemini-flash-latest", - name: "Gemini Flash Latest", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview 06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 65536, output: 65536 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview 04-17", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "zai-org/glm-5-maas": { - id: "zai-org/glm-5-maas", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.1 }, - limit: { context: 202752, output: 131072 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "zai-org/glm-4.7-maas": { - id: "zai-org/glm-4.7-maas", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-06", - last_updated: "2026-01-06", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "deepseek-ai/deepseek-v3.2-maas": { - id: "deepseek-ai/deepseek-v3.2-maas", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-04-04", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68, cache_read: 0.056 }, - limit: { context: 163840, output: 65536 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "deepseek-ai/deepseek-v3.1-maas": { - id: "deepseek-ai/deepseek-v3.1-maas", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.7 }, - limit: { context: 163840, output: 32768 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "openai/gpt-oss-120b-maas": { - id: "openai/gpt-oss-120b-maas", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-20b-maas": { - id: "openai/gpt-oss-20b-maas", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.25 }, - limit: { context: 131072, output: 32768 }, - }, - "meta/llama-3.3-70b-instruct-maas": { - id: "meta/llama-3.3-70b-instruct-maas", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 8192 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "meta/llama-4-maverick-17b-128e-instruct-maas": { - id: "meta/llama-4-maverick-17b-128e-instruct-maas", - name: "Llama 4 Maverick 17B 128E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.15 }, - limit: { context: 524288, output: 8192 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "qwen/qwen3-235b-a22b-instruct-2507-maas": { - id: "qwen/qwen3-235b-a22b-instruct-2507-maas", - name: "Qwen3 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 262144, output: 16384 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "moonshotai/kimi-k2-thinking-maas": { - id: "moonshotai/kimi-k2-thinking-maas", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - }, - }, - "cloudflare-workers-ai": { - id: "cloudflare-workers-ai", - env: ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", - name: "Cloudflare Workers AI", - doc: "https://developers.cloudflare.com/workers-ai/models/", - models: { - "@cf/zai-org/glm-4.7-flash": { - id: "@cf/zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "@cf/nvidia/nemotron-3-120b-a12b": { - id: "@cf/nvidia/nemotron-3-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "@cf/openai/gpt-oss-20b": { - id: "@cf/openai/gpt-oss-20b", - name: "GPT OSS 20B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/openai/gpt-oss-120b": { - id: "@cf/openai/gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-4-scout-17b-16e-instruct": { - id: "@cf/meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/google/gemma-4-26b-a4b-it": { - id: "@cf/google/gemma-4-26b-a4b-it", - name: "Gemma 4 26B A4B IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-15", - last_updated: "2025-12-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 256000, output: 16384 }, - }, - "@cf/moonshotai/kimi-k2.5": { - id: "@cf/moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - }, - }, - groq: { - id: "groq", - env: ["GROQ_API_KEY"], - npm: "@ai-sdk/groq", - name: "Groq", - doc: "https://console.groq.com/docs/models", - models: { - "gemma2-9b-it": { - id: "gemma2-9b-it", - name: "Gemma 2 9B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "mistral-saba-24b": { - id: "mistral-saba-24b", - name: "Mistral Saba 24B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-02-06", - last_updated: "2025-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.79, output: 0.79 }, - limit: { context: 32768, output: 32768 }, - status: "deprecated", - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 0.99 }, - limit: { context: 131072, output: 8192 }, - status: "deprecated", - }, - "llama-guard-3-8b": { - id: "llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 131072, output: 32768 }, - }, - "allam-2-7b": { - id: "allam-2-7b", - name: "ALLaM-2-7b", - family: "allam", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 4096 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper Large V3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 448, output: 448 }, - }, - "llama-3.1-8b-instant": { - id: "llama-3.1-8b-instant", - name: "Llama 3.1 8B Instant", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 131072, output: 131072 }, - }, - "llama3-70b-8192": { - id: "llama3-70b-8192", - name: "Llama 3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "qwen-qwq-32b": { - id: "qwen-qwq-32b", - name: "Qwen QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-27", - last_updated: "2024-11-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.39 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "whisper-large-v3-turbo": { - id: "whisper-large-v3-turbo", - name: "Whisper Large v3 Turbo", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 448, output: 448 }, - }, - "llama3-8b-8192": { - id: "llama3-8b-8192", - name: "Llama 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "canopylabs/orpheus-arabic-saudi": { - id: "canopylabs/orpheus-arabic-saudi", - name: "Orpheus Arabic Saudi", - family: "canopylabs", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-12-16", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 40, output: 0 }, - limit: { context: 4000, output: 50000 }, - }, - "canopylabs/orpheus-v1-english": { - id: "canopylabs/orpheus-v1-english", - name: "Orpheus V1 English", - family: "canopylabs", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-12-19", - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 4000, output: 50000 }, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - id: "meta-llama/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.34 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-prompt-guard-2-22m": { - id: "meta-llama/llama-prompt-guard-2-22m", - name: "Llama Prompt Guard 2 22M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 512, output: 512 }, - }, - "meta-llama/llama-guard-4-12b": { - id: "meta-llama/llama-guard-4-12b", - name: "Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 131072, output: 1024 }, - status: "deprecated", - }, - "meta-llama/llama-4-maverick-17b-128e-instruct": { - id: "meta-llama/llama-4-maverick-17b-128e-instruct", - name: "Llama 4 Maverick 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 8192 }, - status: "deprecated", - }, - "meta-llama/llama-prompt-guard-2-86m": { - id: "meta-llama/llama-prompt-guard-2-86m", - name: "Llama Prompt Guard 2 86M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 512, output: 512 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "Safety GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 65536 }, - }, - "qwen/qwen3-32b": { - id: "qwen/qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11-08", - release_date: "2024-12-23", - last_updated: "2024-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.59 }, - limit: { context: 131072, output: 40960 }, - }, - "groq/compound": { - id: "groq/compound", - name: "Compound", - family: "groq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09-04", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "groq/compound-mini": { - id: "groq/compound-mini", - name: "Compound Mini", - family: "groq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09-04", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "moonshotai/kimi-k2-instruct-0905": { - id: "moonshotai/kimi-k2-instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 262144, output: 16384 }, - }, - }, - }, - azure: { - id: "azure", - env: ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], - npm: "@ai-sdk/azure", - name: "Azure", - doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - models: { - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2-chat": { - id: "gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "codex-mini": { - id: "codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "phi-4-multimodal": { - id: "phi-4-multimodal", - name: "Phi-4-multimodal", - family: "phi", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.32, input_audio: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-3.5-mini-instruct": { - id: "phi-3.5-mini-instruct", - name: "Phi-3.5-mini-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-scout-17b-16e-instruct": { - id: "llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.78 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 128000, input: 128000, output: 8192 }, - status: "beta", - }, - "phi-3-medium-4k-instruct": { - id: "phi-3-medium-4k-instruct", - name: "Phi-3-medium-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 4096, output: 1024 }, - }, - "ministral-3b": { - id: "ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "meta-llama-3.1-8b-instruct": { - id: "meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 128000, output: 32768 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", - shape: "completions", - }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 32768 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.14, output: 4.56 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5-chat": { - id: "gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-10-24", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, output: 16384 }, - }, - "phi-3.5-moe-instruct": { - id: "phi-3.5-moe-instruct", - name: "Phi-3.5-MoE-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.64 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.3-chat": { - id: "gpt-5.3-chat", - name: "GPT-5.3 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "phi-3-mini-128k-instruct": { - id: "phi-3-mini-128k-instruct", - name: "Phi-3-mini-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-4-reasoning": { - id: "phi-4-reasoning", - name: "Phi-4-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 272000, output: 128000 }, - }, - "meta-llama-3-70b-instruct": { - id: "meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 8192, output: 2048 }, - }, - "phi-3-small-8k-instruct": { - id: "phi-3-small-8k-instruct", - name: "Phi-3-small-instruct (8k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "llama-3.2-90b-vision-instruct": { - id: "llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.04, output: 2.04 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 128000, input: 128000, output: 8192 }, - status: "beta", - }, - "deepseek-v3.2-speciale": { - id: "deepseek-v3.2-speciale", - name: "DeepSeek-V3.2-Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "cohere-command-r-08-2024": { - id: "cohere-command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere-command-a": { - id: "cohere-command-a", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "llama-3.2-11b-vision-instruct": { - id: "llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.37, output: 0.37 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama-3.1-405b-instruct": { - id: "meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 5.33, output: 16 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.1-chat": { - id: "gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4-turbo-vision": { - id: "gpt-4-turbo-vision", - name: "GPT-4 Turbo Vision", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "cohere-embed-v-4-0": { - id: "cohere-embed-v-4-0", - name: "Embed v4", - family: "cohere-embed", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0 }, - limit: { context: 128000, output: 1536 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-3.5-turbo-0125": { - id: "gpt-3.5-turbo-0125", - name: "GPT-3.5 Turbo 0125", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16384, output: 16384 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 66, cache_read: 8.25 }, - limit: { context: 128000, output: 32768 }, - }, - "cohere-embed-v3-multilingual": { - id: "cohere-embed-v3-multilingual", - name: "Embed v3 Multilingual", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "grok-4-20-non-reasoning": { - id: "grok-4-20-non-reasoning", - name: "Grok 4.20 (Non-Reasoning)", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-04-08", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 262000, output: 8192 }, - status: "beta", - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 272000, output: 128000 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "Grok 4 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "mistral-small-2503": { - id: "mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "model-router": { - id: "model-router", - name: "Model Router", - family: "model-router", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-05-19", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-3.5-turbo-1106": { - id: "gpt-3.5-turbo-1106", - name: "GPT-3.5 Turbo 1106", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 16384, output: 16384 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 131072, output: 131072 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "phi-3-mini-4k-instruct": { - id: "phi-3-mini-4k-instruct", - name: "Phi-3-mini-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 4096, output: 1024 }, - }, - "meta-llama-3.1-70b-instruct": { - id: "meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 128000, output: 32768 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "phi-4-mini-reasoning": { - id: "phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 8192, output: 8192 }, - }, - "meta-llama-3-8b-instruct": { - id: "meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "phi-4-mini": { - id: "phi-4-mini", - name: "Phi-4-mini", - family: "phi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "grok-4-20-reasoning": { - id: "grok-4-20-reasoning", - name: "Grok 4.20 (Reasoning)", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-04-08", - last_updated: "2026-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 262000, output: 8192 }, - status: "beta", - }, - "gpt-3.5-turbo-0301": { - id: "gpt-3.5-turbo-0301", - name: "GPT-3.5 Turbo 0301", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "phi-3-small-128k-instruct": { - id: "phi-3-small-128k-instruct", - name: "Phi-3-small-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "phi-3-medium-128k-instruct": { - id: "phi-3-medium-128k-instruct", - name: "Phi-3-medium-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-3.5-turbo-0613": { - id: "gpt-3.5-turbo-0613", - name: "GPT-3.5 Turbo 0613", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16384, output: 16384 }, - }, - "cohere-command-r-plus-08-2024": { - id: "cohere-command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "phi-4": { - id: "phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-4-32k": { - id: "gpt-4-32k", - name: "GPT-4 32K", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 32768, output: 32768 }, - }, - "cohere-embed-v3-english": { - id: "cohere-embed-v3-english", - name: "Embed v3 English", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "phi-4-reasoning-plus": { - id: "phi-4-reasoning-plus", - name: "Phi-4-reasoning-plus", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-3.5-turbo-instruct": { - id: "gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-09-21", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "codestral-2501": { - id: "codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "mai-ds-r1": { - id: "mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - fastrouter: { - id: "fastrouter", - env: ["FASTROUTER_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://go.fastrouter.ai/api/v1", - name: "FastRouter", - doc: "https://fastrouter.ai/models", - models: { - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 256000, output: 64000 }, - }, - "deepseek-ai/deepseek-r1-distill-llama-70b": { - id: "deepseek-ai/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-23", - last_updated: "2025-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32768 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - stackit: { - id: "stackit", - env: ["STACKIT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1", - name: "STACKIT", - doc: "https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models", - models: { - "Qwen/Qwen3-VL-Embedding-8B": { - id: "Qwen/Qwen3-VL-Embedding-8B", - name: "Qwen3-VL Embedding 8B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.09 }, - limit: { context: 32000, output: 4096 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", - name: "Qwen3-VL 235B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.64, output: 1.91 }, - limit: { context: 218000, output: 8192 }, - }, - "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": { - id: "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.27 }, - limit: { context: 128000, output: 8192 }, - }, - "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": { - id: "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", - name: "Mistral Nemo", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 131000, output: 8192 }, - }, - "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": { - id: "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 128000, output: 8192 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-05-17", - last_updated: "2025-05-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 37000, output: 8192 }, - }, - "intfloat/e5-mistral-7b-instruct": { - id: "intfloat/e5-mistral-7b-instruct", - name: "E5 Mistral 7B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 4096, output: 4096 }, - }, - }, - }, - "tencent-coding-plan": { - id: "tencent-coding-plan", - env: ["TENCENT_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.lkeap.cloud.tencent.com/coding/v3", - name: "Tencent Coding Plan (China)", - doc: "https://cloud.tencent.com/document/product/1772/128947", - models: { - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "hunyuan-turbos": { - id: "hunyuan-turbos", - name: "Hunyuan-TurboS", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-t1": { - id: "hunyuan-t1", - name: "Hunyuan-T1", - family: "hunyuan", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-2.0-instruct": { - id: "hunyuan-2.0-instruct", - name: "Tencent HY 2.0 Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 32768 }, - }, - "tc-code-latest": { - id: "tc-code-latest", - name: "Auto", - family: "auto", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-2.0-thinking": { - id: "hunyuan-2.0-thinking", - name: "Tencent HY 2.0 Think", - family: "hunyuan", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - }, - }, - "privatemode-ai": { - id: "privatemode-ai", - env: ["PRIVATEMODE_API_KEY", "PRIVATEMODE_ENDPOINT"], - npm: "@ai-sdk/openai-compatible", - api: "http://localhost:8080/v1", - name: "Privatemode AI", - doc: "https://docs.privatemode.ai/api/overview", - models: { - "gemma-3-27b": { - id: "gemma-3-27b", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper large-v3", - family: "whisper", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2023-09-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "qwen3-embedding-4b": { - id: "qwen3-embedding-4b", - name: "Qwen3-Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-06", - last_updated: "2025-06-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32000, output: 2560 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-04", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen3-coder-30b-a3b": { - id: "qwen3-coder-30b-a3b", - name: "Qwen3-Coder 30B-A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - google: { - id: "google", - env: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], - npm: "@ai-sdk/google", - name: "Google", - doc: "https://ai.google.dev/gemini-api/docs/pricing", - models: { - "gemini-flash-lite-latest": { - id: "gemini-flash-lite-latest", - name: "Gemini Flash-Lite Latest", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-live-2.5-flash-preview-native-audio": { - id: "gemini-live-2.5-flash-preview-native-audio", - name: "Gemini Live 2.5 Flash Preview Native Audio", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-09-18", - modalities: { input: ["text", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, - limit: { context: 131072, output: 65536 }, - }, - "gemini-3.1-pro-preview-customtools": { - id: "gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-1.5-flash": { - id: "gemini-1.5-flash", - name: "Gemini 1.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.01875 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemini-1.5-pro": { - id: "gemini-1.5-pro", - name: "Gemini 1.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-02-15", - last_updated: "2024-02-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 5, cache_read: 0.3125 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemma-3n-e4b-it": { - id: "gemma-3n-e4b-it", - name: "Gemma 3n 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-tts": { - id: "gemini-2.5-flash-preview-tts", - name: "Gemini 2.5 Flash Preview TTS", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 0.5, output: 10 }, - limit: { context: 8000, output: 16000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash Preview 05-20", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-embedding-001": { - id: "gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-05", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 2048, output: 3072 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-flash-latest": { - id: "gemini-flash-latest", - name: "Gemini Flash Latest", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemma-4-31b-it": { - id: "gemma-4-31b-it", - name: "Gemma 4 31B", - family: "gemma", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 256000, output: 8192 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview 06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025, input_audio: 0.3 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemma-3-12b-it": { - id: "gemma-3-12b-it", - name: "Gemma 3 12B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemma-3n-e2b-it": { - id: "gemma-3n-e2b-it", - name: "Gemma 3n 2B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "gemini-3.1-flash-image-preview": { - id: "gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 60 }, - limit: { context: 131072, output: 32768 }, - }, - "gemma-3-4b-it": { - id: "gemma-3-4b-it", - name: "Gemma 3 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview 04-17", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-tts": { - id: "gemini-2.5-pro-preview-tts", - name: "Gemini 2.5 Pro Preview TTS", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 1, output: 20 }, - limit: { context: 8000, output: 16000 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemma-3-27b-it": { - id: "gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemma-4-26b-it": { - id: "gemma-4-26b-it", - name: "Gemma 4 26B", - family: "gemma", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-04-02", - last_updated: "2026-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 256000, output: 8192 }, - }, - "gemini-2.5-flash-image-preview": { - id: "gemini-2.5-flash-image-preview", - name: "Gemini 2.5 Flash Image (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-1.5-flash-8b": { - id: "gemini-1.5-flash-8b", - name: "Gemini 1.5 Flash-8B", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-03", - last_updated: "2024-10-03", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0375, output: 0.15, cache_read: 0.01 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemini-live-2.5-flash": { - id: "gemini-live-2.5-flash", - name: "Gemini Live 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, - limit: { context: 128000, output: 8000 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - }, - }, - drun: { - id: "drun", - env: ["DRUN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://chat.d.run/v1", - name: "D.Run (China)", - doc: "https://www.d.run", - models: { - "public/deepseek-r1": { - id: "public/deepseek-r1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32000 }, - }, - "public/minimax-m25": { - id: "public/minimax-m25", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1.16 }, - limit: { context: 204800, output: 131072 }, - }, - "public/deepseek-v3": { - id: "public/deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131072, output: 8192 }, - }, - }, - }, - moonshotai: { - id: "moonshotai", - env: ["MOONSHOT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.moonshot.ai/v1", - name: "Moonshot AI", - doc: "https://platform.moonshot.ai/docs/api/chat", - models: { - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 10, cache_read: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0711-preview": { - id: "kimi-k2-0711-preview", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 131072, output: 16384 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - berget: { - id: "berget", - env: ["BERGET_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.berget.ai/v1", - name: "Berget.AI", - doc: "https://api.berget.ai", - models: { - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.3 }, - limit: { context: 128000, output: 8192 }, - }, - "BAAI/bge-reranker-v2-m3": { - id: "BAAI/bge-reranker-v2-m3", - name: "bge-reranker-v2-m3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-23", - last_updated: "2025-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 512, output: 512 }, - }, - "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct 2506", - family: "mistral-small", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32000, output: 8192 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 8192 }, - }, - "KBLab/kb-whisper-large": { - id: "KBLab/kb-whisper-large", - name: "KB-Whisper-Large", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 480000, output: 4800 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS-120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 8192 }, - }, - "intfloat/multilingual-e5-large-instruct": { - id: "intfloat/multilingual-e5-large-instruct", - name: "Multilingual-E5-large-instruct", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "intfloat/multilingual-e5-large": { - id: "intfloat/multilingual-e5-large", - name: "Multilingual-E5-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-09", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - }, - }, - "github-models": { - id: "github-models", - env: ["GITHUB_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://models.github.ai/inference", - name: "GitHub Models", - doc: "https://docs.github.com/en/github-models", - models: { - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "ai21-labs/ai21-jamba-1.5-mini": { - id: "ai21-labs/ai21-jamba-1.5-mini", - name: "AI21 Jamba 1.5 Mini", - family: "jamba", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-29", - last_updated: "2024-08-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 4096 }, - }, - "ai21-labs/ai21-jamba-1.5-large": { - id: "ai21-labs/ai21-jamba-1.5-large", - name: "AI21 Jamba 1.5 Large", - family: "jamba", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-29", - last_updated: "2024-08-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 4096 }, - }, - "microsoft/phi-3.5-mini-instruct": { - id: "microsoft/phi-3.5-mini-instruct", - name: "Phi-3.5-mini instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-4k-instruct": { - id: "microsoft/phi-3-medium-4k-instruct", - name: "Phi-3-medium instruct (4k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 1024 }, - }, - "microsoft/phi-3.5-moe-instruct": { - id: "microsoft/phi-3.5-moe-instruct", - name: "Phi-3.5-MoE instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-mini-128k-instruct": { - id: "microsoft/phi-3-mini-128k-instruct", - name: "Phi-3-mini instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-mini-instruct": { - id: "microsoft/phi-4-mini-instruct", - name: "Phi-4-mini-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-reasoning": { - id: "microsoft/phi-4-reasoning", - name: "Phi-4-Reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-8k-instruct": { - id: "microsoft/phi-3-small-8k-instruct", - name: "Phi-3-small instruct (8k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "microsoft/phi-3.5-vision-instruct": { - id: "microsoft/phi-3.5-vision-instruct", - name: "Phi-3.5-vision instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-mini-4k-instruct": { - id: "microsoft/phi-3-mini-4k-instruct", - name: "Phi-3-mini instruct (4k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 1024 }, - }, - "microsoft/phi-4-mini-reasoning": { - id: "microsoft/phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-128k-instruct": { - id: "microsoft/phi-3-small-128k-instruct", - name: "Phi-3-small instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-128k-instruct": { - id: "microsoft/phi-3-medium-128k-instruct", - name: "Phi-3-medium instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4": { - id: "microsoft/phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16000, output: 4096 }, - }, - "microsoft/phi-4-multimodal-instruct": { - id: "microsoft/phi-4-multimodal-instruct", - name: "Phi-4-multimodal-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/mai-ds-r1": { - id: "microsoft/mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "cohere/cohere-command-r-08-2024": { - id: "cohere/cohere-command-r-08-2024", - name: "Cohere Command R 08-2024", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-a": { - id: "cohere/cohere-command-a", - name: "Cohere Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-plus": { - id: "cohere/cohere-command-r-plus", - name: "Cohere Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-04-04", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r": { - id: "cohere/cohere-command-r", - name: "Cohere Command R", - family: "command-r", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-03-11", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-plus-08-2024": { - id: "cohere/cohere-command-r-plus-08-2024", - name: "Cohere Command R+ 08-2024", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-09", - last_updated: "2024-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-09", - last_updated: "2024-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/o1-mini": { - id: "openai/o1-mini", - name: "OpenAI o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 65536 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1-preview": { - id: "openai/o1-preview", - name: "OpenAI o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "meta/llama-4-scout-17b-16e-instruct": { - id: "meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/meta-llama-3.1-8b-instruct": { - id: "meta/meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/llama-3.3-70b-instruct": { - id: "meta/llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3-70b-instruct": { - id: "meta/meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "meta/llama-3.2-90b-vision-instruct": { - id: "meta/llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/meta-llama-3.1-405b-instruct": { - id: "meta/meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3.1-70b-instruct": { - id: "meta/meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3-8b-instruct": { - id: "meta/meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "meta/llama-4-maverick-17b-128e-instruct-fp8": { - id: "meta/llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "core42/jais-30b-chat": { - id: "core42/jais-30b-chat", - name: "JAIS 30b Chat", - family: "jais", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2023-08-30", - last_updated: "2023-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "mistral-ai/mistral-nemo": { - id: "mistral-ai/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral-ai/ministral-3b": { - id: "mistral-ai/ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral-ai/mistral-large-2411": { - id: "mistral-ai/mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/mistral-small-2503": { - id: "mistral-ai/mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/mistral-medium-2505": { - id: "mistral-ai/mistral-medium-2505", - name: "Mistral Medium 3 (25.05)", - family: "mistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/codestral-2501": { - id: "mistral-ai/codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32000, output: 8192 }, - }, - }, - }, - togetherai: { - id: "togetherai", - env: ["TOGETHER_API_KEY"], - npm: "@ai-sdk/togetherai", - name: "Together AI", - doc: "https://docs.together.ai/docs/serverless-models", - models: { - "essentialai/Rnj-1-Instruct": { - id: "essentialai/Rnj-1-Instruct", - name: "Rnj-1 Instruct", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-05", - last_updated: "2025-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 130000 }, - }, - "Qwen/Qwen3-Coder-Next-FP8": { - id: "Qwen/Qwen3-Coder-Next-FP8", - name: "Qwen3 Coder Next FP8", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-03", - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", - name: "Qwen3 235B A22B Instruct 2507 FP8", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "zai-org/GLM-5.1": { - id: "zai-org/GLM-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 4.4 }, - limit: { context: 202752, output: 131072 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.88, output: 0.88 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 7 }, - limit: { context: 163839, output: 163839 }, - }, - "deepseek-ai/DeepSeek-V3-1": { - id: "deepseek-ai/DeepSeek-V3-1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.7 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemma-4-31B-it": { - id: "google/gemma-4-31B-it", - name: "Gemma 4 31B Instruct", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-04-07", - last_updated: "2026-04-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 262144, output: 131072 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "qihang-ai": { - id: "qihang-ai", - env: ["QIHANG_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.qhaigc.net/v1", - name: "QiHang", - doc: "https://www.qhaigc.net/docs", - models: { - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.71, output: 3.57 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.43, context_over_200k: { input: 0.07, output: 0.43 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.29 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.57, output: 3.43 }, - limit: { context: 1000000, output: 65000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.43, output: 2.14 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.71, context_over_200k: { input: 0.09, output: 0.71 } }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.71 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - anthropic: { - id: "anthropic", - env: ["ANTHROPIC_API_KEY"], - npm: "@ai-sdk/anthropic", - name: "Anthropic", - doc: "https://docs.anthropic.com/en/docs/about-claude/models", - models: { - "claude-3-sonnet-20240229": { - id: "claude-3-sonnet-20240229", - name: "Claude Sonnet 3", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-opus-20240229": { - id: "claude-3-opus-20240229", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-3-5-haiku-20241022": { - id: "claude-3-5-haiku-20241022", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "claude-opus-4-0": { - id: "claude-opus-4-0", - name: "Claude Opus 4 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-haiku-latest": { - id: "claude-3-5-haiku-latest", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-sonnet-4-0": { - id: "claude-sonnet-4-0", - name: "Claude Sonnet 4 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-sonnet-20240620": { - id: "claude-3-5-sonnet-20240620", - name: "Claude Sonnet 3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - experimental: { - modes: { - fast: { - cost: { input: 30, output: 150, cache_read: 3, cache_write: 37.5 }, - provider: { body: { speed: "fast" }, headers: { "anthropic-beta": "fast-mode-2026-02-01" } }, - }, - }, - }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - modelscope: { - id: "modelscope", - env: ["MODELSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api-inference.modelscope.cn/v1", - name: "ModelScope", - doc: "https://modelscope.cn/docs/model-service/API-Inference/intro", - models: { - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "ZhipuAI/GLM-4.5": { - id: "ZhipuAI/GLM-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "ZhipuAI/GLM-4.6": { - id: "ZhipuAI/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 202752, output: 98304 }, - }, - }, - }, - gitlab: { - id: "gitlab", - env: ["GITLAB_TOKEN"], - npm: "gitlab-ai-provider", - name: "GitLab Duo", - doc: "https://docs.gitlab.com/user/duo_agent_platform/", - models: { - "duo-chat-gpt-5-4-nano": { - id: "duo-chat-gpt-5-4-nano", - name: "Agentic Chat (GPT-5.4 Nano)", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-mini": { - id: "duo-chat-gpt-5-mini", - name: "Agentic Chat (GPT-5 Mini)", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-sonnet-4-6": { - id: "duo-chat-sonnet-4-6", - name: "Agentic Chat (Claude Sonnet 4.6)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "duo-chat-gpt-5-2": { - id: "duo-chat-gpt-5-2", - name: "Agentic Chat (GPT-5.2)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-codex": { - id: "duo-chat-gpt-5-codex", - name: "Agentic Chat (GPT-5 Codex)", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-1": { - id: "duo-chat-gpt-5-1", - name: "Agentic Chat (GPT-5.1)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-2-codex": { - id: "duo-chat-gpt-5-2-codex", - name: "Agentic Chat (GPT-5.2 Codex)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-sonnet-4-5": { - id: "duo-chat-sonnet-4-5", - name: "Agentic Chat (Claude Sonnet 4.5)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-gpt-5-4": { - id: "duo-chat-gpt-5-4", - name: "Agentic Chat (GPT-5.4)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "duo-chat-haiku-4-5": { - id: "duo-chat-haiku-4-5", - name: "Agentic Chat (Claude Haiku 4.5)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-gpt-5-3-codex": { - id: "duo-chat-gpt-5-3-codex", - name: "Agentic Chat (GPT-5.3 Codex)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-4-mini": { - id: "duo-chat-gpt-5-4-mini", - name: "Agentic Chat (GPT-5.4 Mini)", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-opus-4-5": { - id: "duo-chat-opus-4-5", - name: "Agentic Chat (Claude Opus 4.5)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-opus-4-6": { - id: "duo-chat-opus-4-6", - name: "Agentic Chat (Claude Opus 4.6)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - }, - }, - xiaomi: { - id: "xiaomi", - env: ["XIAOMI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.xiaomimimo.com/v1", - name: "Xiaomi", - doc: "https://platform.xiaomimimo.com/#/docs", - models: { - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.08 }, - limit: { context: 256000, output: 128000 }, - }, - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, cache_read: 0.2 }, - limit: { context: 1000000, output: 128000 }, - }, - "mimo-v2-flash": { - id: "mimo-v2-flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12-01", - release_date: "2025-12-16", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 256000, output: 64000 }, - }, - }, - }, - clarifai: { - id: "clarifai", - env: ["CLARIFAI_PAT"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.clarifai.com/v2/ext/openai/v1", - name: "Clarifai", - doc: "https://docs.clarifai.com/compute/inference/", - models: { - "arcee_ai/AFM/models/trinity-mini": { - id: "arcee_ai/AFM/models/trinity-mini", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/completion/models/Ministral-3-14B-Reasoning-2512": { - id: "mistralai/completion/models/Ministral-3-14B-Reasoning-2512", - name: "Ministral 3 14B Reasoning 2512", - family: "ministral", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-01", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 1.7 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/completion/models/Ministral-3-3B-Reasoning-2512": { - id: "mistralai/completion/models/Ministral-3-3B-Reasoning-2512", - name: "Ministral 3 3B Reasoning 2512", - family: "ministral", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12", - last_updated: "2026-02-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.039, output: 0.54825 }, - limit: { context: 262144, output: 262144 }, - }, - "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR": { - id: "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR", - name: "DeepSeek OCR", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-02-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 8192, output: 8192 }, - }, - "openai/chat-completion/models/gpt-oss-20b": { - id: "openai/chat-completion/models/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.18 }, - limit: { context: 131072, output: 16384 }, - }, - "openai/chat-completion/models/gpt-oss-120b-high-throughput": { - id: "openai/chat-completion/models/gpt-oss-120b-high-throughput", - name: "GPT OSS 120B High Throughput", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 131072, output: 16384 }, - }, - "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput": { - id: "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput", - name: "MiniMax-M2.5 High Throughput", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct": { - id: "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11458, output: 0.74812 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507": { - id: "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.36, output: 1.3 }, - limit: { context: 262144, output: 131072 }, - }, - "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507": { - id: "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 262144, output: 262144 }, - }, - "clarifai/main/models/mm-poly-8b": { - id: "clarifai/main/models/mm-poly-8b", - name: "MM Poly 8B", - family: "mm-poly", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-06", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.658, output: 1.11 }, - limit: { context: 32768, output: 4096 }, - }, - }, - }, - "minimax-cn": { - id: "minimax-cn", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimaxi.com/anthropic/v1", - name: "MiniMax (minimaxi.com)", - doc: "https://platform.minimaxi.com/docs/guides/quickstart", - models: { - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "xiaomi-token-plan-ams": { - id: "xiaomi-token-plan-ams", - env: ["XIAOMI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://token-plan-ams.xiaomimimo.com/v1", - name: "Xiaomi Token Plan (Europe)", - doc: "https://platform.xiaomimimo.com/#/docs", - models: { - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1000000, output: 128000 }, - }, - "mimo-v2-tts": { - id: "mimo-v2-tts", - name: "MiMo-V2-TTS", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8000, output: 16000 }, - }, - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 256000, output: 128000 }, - }, - }, - }, - zhipuai: { - id: "zhipuai", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://open.bigmodel.cn/api/paas/v4", - name: "Zhipu AI", - doc: "https://docs.z.ai/guides/overview/pricing", - models: { - "glm-5v-turbo": { - id: "glm-5v-turbo", - name: "glm-5v-turbo", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-04-01", - last_updated: "2026-04-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 22, cache_read: 1.2, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5.1": { - id: "glm-5.1", - name: "GLM-5.1", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-27", - last_updated: "2026-03-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 24, cache_read: 1.3, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - nova: { - id: "nova", - env: ["NOVA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.nova.amazon.com/v1", - name: "Nova", - doc: "https://nova.amazon.com/dev/documentation", - models: { - "nova-2-lite-v1": { - id: "nova-2-lite-v1", - name: "Nova 2 Lite", - family: "nova-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, reasoning: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "nova-2-pro-v1": { - id: "nova-2-pro-v1", - name: "Nova 2 Pro", - family: "nova-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2026-01-03", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, reasoning: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - }, - }, -}